using BotSharp.Abstraction.MLTasks; using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.AI.Embeddings; using Microsoft.SemanticKernel.Memory; using Microsoft.SemanticKernel.Plugins.Memory; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BotSharp.Plugin.SemanticKernel { /// /// Use Semantic Kernel Memory as text embedding provider /// public class SemanticKernelTextEmbeddingProvider : ITextEmbedding { private readonly ITextEmbeddingGeneration _embedding; /// /// Constructor of /// public SemanticKernelTextEmbeddingProvider(ITextEmbeddingGeneration embedding) { this._embedding = embedding; } /// public int Dimension { get; } /// public async Task GetVectorAsync(string text) { return (await this._embedding.GenerateEmbeddingAsync(text)).ToArray(); } /// public async Task> GetVectorsAsync(List texts) { var embeddings = await this._embedding.GenerateEmbeddingsAsync(texts); return embeddings.Select(_ => _.ToArray()) .ToList(); } } }