通过将我们的 API 项目设置来使用聊天模型,我们现在可以使用
OllamaSharp
库连接到 Ollama 服务器并与模型进行交互。为此,我们将使用 .NET Aspire 社区工具包中的
OllamaSharp 集成
:
dotnet add package CommunityToolkit.Aspire.OllamaSharp
该集成允许我们将 OllamaSharp 客户端注册为
Microsoft.Extensions.AI 包
中的
IChatClient
或
IEmbeddingsGenerator
服务。这种抽象机制意味着我们可以将本地 Ollama 服务器切换为云托管选项(例如 Azure OpenAI 服务),而无需更改使用该客户端的代码:
builder.AddOllamaSharpChatClient("chat");
注意:如果您使用的是嵌入模型并想要注册
IEmbeddingsGenerator
服务,可以使用
AddOllamaSharpEmbeddingsGenerator
方法。
为了充分利用 Microsoft.Extensions.AI 管道,我们可以将该服务提供给
ChatClientBuilder
:
builder.AddKeyedOllamaSharpChatClient("chat");
builder.Services.AddChatClient(b => b
.UseFunctionInvocation()
.UseOpenTelemetry(configure: t => t.EnableSensitiveData = true)
.UseLogging()
.Use(b.Services.GetRequiredKeyedService("chat")));
最后,我们可以将
IChatClient
注入到路由处理程序中:
app.MapPost("/chat", async (IChatClient chatClient, string question) =>
{
var response = await chatClient.CompleteAsync(question);
return response.Message;
});
OllamaSharp
https://github.com/awaescher/OllamaSharp
OllamaSharp 集成
https://www.nuget.org/packages/communityToolkit.Aspire.OllamaSharp
Microsoft.Extensions.AI 包
https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-ai-preview/