1、背景
C#開發中,可以通過Semantic Kernel實現本地模型的調用和實現。
本地的Ollama的版本如下:
安裝的Package如下:
2、代碼實現
// See https://aka.ms/new-console-template for more information
using Microsoft.Extensions.AI;
using Microsoft.SemanticKernel;var kernelBuilder = Kernel.CreateBuilder();var embeddingModelID = "all-minilm";
var endpoint=new Uri("http://localhost:11434");#pragma warning disable SKEXP0070 // 類型僅用于評估,在將來的更新中可能會被更改或刪除。取消此診斷以繼續。
kernelBuilder.AddOllamaEmbeddingGenerator(embeddingModelID, endpoint);
#pragma warning restore SKEXP0070 // 類型僅用于評估,在將來的更新中可能會被更改或刪除。取消此診斷以繼續。var kernel=kernelBuilder.Build();var embeddingGenerator = kernel.GetRequiredService<IEmbeddingGenerator<string, Embedding<float>>>();var queryStr =new List<string>() { "Hello SemanticKernel" };var response=await embeddingGenerator.GenerateAsync(queryStr);foreach (var item in response.ToList<Embedding<float>>())
{Console.WriteLine(item.Dimensions);//展示拆分后的向量維度
}Console.ReadLine();