You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

LLamaSharpEmbeddingGeneration.cs 832 B

12345678910111213141516171819202122232425
  1. using LLama;
  2. using Microsoft.SemanticKernel.AI.Embeddings;
  3. namespace LLamaSharp.SemanticKernel.TextEmbedding;
  4. public sealed class LLamaSharpEmbeddingGeneration : ITextEmbeddingGeneration
  5. {
  6. private LLamaEmbedder _embedder;
  7. private readonly Dictionary<string, string> _attributes = new();
  8. public IReadOnlyDictionary<string, string> Attributes => this._attributes;
  9. public LLamaSharpEmbeddingGeneration(LLamaEmbedder embedder)
  10. {
  11. _embedder = embedder;
  12. }
  13. /// <inheritdoc/>
  14. public async Task<IList<ReadOnlyMemory<float>>> GenerateEmbeddingsAsync(IList<string> data, CancellationToken cancellationToken = default)
  15. {
  16. var embeddings = data.Select(text => new ReadOnlyMemory<float>(_embedder.GetEmbeddings(text))).ToList();
  17. return await Task.FromResult(embeddings);
  18. }
  19. }