admin管理员组文章数量:1030972
告别复杂 API 调用!OllamaSharp 让 .NET 开发者轻松上手 AI,附带完整示例
大家好,我是深山踏红叶,今天要介绍一个名为 OllamaSharp 的库。一个用于与 Ollama API 进行交互的 C# 库, 让您轻松地与 Ollama 进行交互。 下面让我们看看是怎么来简化的。
功能
- • 易于使用:仅需几行代码即可与 Ollama 交互。
- • 可靠性:支持 Microsoft Semantic Kernel、.NET Aspire 和 Microsoft.Extensions.AI。
- • API 覆盖:涵盖 Ollama 的每个 API 端点,包括聊天、嵌入、列出模型、拉取和创建新模型等。
- • 实时流式传输:直接将响应流式传输到您的应用程序。
- • 进度报告:在拉取模型等任务中提供实时进度反馈。
- • 工具引擎:使用源代码生成器提供复杂工具支持。
- • 多模态支持:支持 视觉模型。
使用方法
OllamaSharp 将每个 Ollama API 端点封装为支持响应流式传输的可等待方法。
代码语言:javascript代码运行次数:0运行复制 <PackageReference Include="OllamaSharp" Version="5.1.2" />
代码语言:javascript代码运行次数:0运行复制Install-Package OllamaSharp
初始化
代码语言:javascript代码运行次数:0运行复制// 设置客户端
var uri = new Uri("http://localhost:11434");
var ollama = new OllamaApiClient(uri);
// 选择用于后续操作的模型
ollama.SelectedModel = "deepseek-r1:7b";
列出本地可用的所有模型
代码语言:javascript代码运行次数:0运行复制var models = await ollama.ListLocalModelsAsync();
拉取模型并报告进度
代码语言:javascript代码运行次数:0运行复制await foreach (var status in ollama.PullModelAsync("llama3.1:405b"))
Console.WriteLine($"{status.Percent}% {status.Status}");
直接在控制台中生成补全
代码语言:javascript代码运行次数:0运行复制await foreach (var stream in ollama.GenerateAsync("How are you today?"))
Console.Write(stream.Response);
构建交互式聊天
代码语言:javascript代码运行次数:0运行复制// 消息(包括角色和工具调用)将自动在聊天对象中跟踪,并可通过 Messages 属性访问
var chat = new Chat(ollama);
while (true)
{
var message = Console.ReadLine();
await foreach (var answerToken in chat.SendAsync(message))
Console.Write(answerToken);
}
与 Microsoft.Extensions.AI 的使用
Microsoft 提供了一个抽象库,用于简化不同 AI 提供商的使用。如果您计划构建可能使用不同提供商(如 ChatGPT、Claude 和本地 Ollama 模型)的应用程序,这是一个非常有趣的概念。
建议您阅读他们的公告 Microsoft.Extensions.AI 预览版 —— 统一的 .NET AI 构建模块。
OllamaSharp 是他们 IChatClient
和 IEmbeddingGenerator
的第一个完整实现,使您能够像使用其他聊天提供商一样使用 Ollama。
为此,只需将 OllamaApiClient
用作 IChatClient
,而不是 IOllamaApiClient
。
// 安装 Microsoft.Extensions.AI.Abstractions 包
private static IChatClient CreateChatClient(Arguments arguments)
{
if (arguments.Provider.Equals("ollama", StringComparison.OrdinalIgnoreCase))
return new OllamaApiClient(arguments.Uri, arguments.Model);
else
return new OpenAIChatClient(new OpenAI.OpenAIClient(arguments.ApiKey), arguments.Model); // ChatGPT 或兼容
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-12,如有侵权请联系 cloudcommunity@tencent 删除开发者模型api对象工具告别复杂 API 调用!OllamaSharp 让 .NET 开发者轻松上手 AI,附带完整示例
大家好,我是深山踏红叶,今天要介绍一个名为 OllamaSharp 的库。一个用于与 Ollama API 进行交互的 C# 库, 让您轻松地与 Ollama 进行交互。 下面让我们看看是怎么来简化的。
功能
- • 易于使用:仅需几行代码即可与 Ollama 交互。
- • 可靠性:支持 Microsoft Semantic Kernel、.NET Aspire 和 Microsoft.Extensions.AI。
- • API 覆盖:涵盖 Ollama 的每个 API 端点,包括聊天、嵌入、列出模型、拉取和创建新模型等。
- • 实时流式传输:直接将响应流式传输到您的应用程序。
- • 进度报告:在拉取模型等任务中提供实时进度反馈。
- • 工具引擎:使用源代码生成器提供复杂工具支持。
- • 多模态支持:支持 视觉模型。
使用方法
OllamaSharp 将每个 Ollama API 端点封装为支持响应流式传输的可等待方法。
代码语言:javascript代码运行次数:0运行复制 <PackageReference Include="OllamaSharp" Version="5.1.2" />
代码语言:javascript代码运行次数:0运行复制Install-Package OllamaSharp
初始化
代码语言:javascript代码运行次数:0运行复制// 设置客户端
var uri = new Uri("http://localhost:11434");
var ollama = new OllamaApiClient(uri);
// 选择用于后续操作的模型
ollama.SelectedModel = "deepseek-r1:7b";
列出本地可用的所有模型
代码语言:javascript代码运行次数:0运行复制var models = await ollama.ListLocalModelsAsync();
拉取模型并报告进度
代码语言:javascript代码运行次数:0运行复制await foreach (var status in ollama.PullModelAsync("llama3.1:405b"))
Console.WriteLine($"{status.Percent}% {status.Status}");
直接在控制台中生成补全
代码语言:javascript代码运行次数:0运行复制await foreach (var stream in ollama.GenerateAsync("How are you today?"))
Console.Write(stream.Response);
构建交互式聊天
代码语言:javascript代码运行次数:0运行复制// 消息(包括角色和工具调用)将自动在聊天对象中跟踪,并可通过 Messages 属性访问
var chat = new Chat(ollama);
while (true)
{
var message = Console.ReadLine();
await foreach (var answerToken in chat.SendAsync(message))
Console.Write(answerToken);
}
与 Microsoft.Extensions.AI 的使用
Microsoft 提供了一个抽象库,用于简化不同 AI 提供商的使用。如果您计划构建可能使用不同提供商(如 ChatGPT、Claude 和本地 Ollama 模型)的应用程序,这是一个非常有趣的概念。
建议您阅读他们的公告 Microsoft.Extensions.AI 预览版 —— 统一的 .NET AI 构建模块。
OllamaSharp 是他们 IChatClient
和 IEmbeddingGenerator
的第一个完整实现,使您能够像使用其他聊天提供商一样使用 Ollama。
为此,只需将 OllamaApiClient
用作 IChatClient
,而不是 IOllamaApiClient
。
// 安装 Microsoft.Extensions.AI.Abstractions 包
private static IChatClient CreateChatClient(Arguments arguments)
{
if (arguments.Provider.Equals("ollama", StringComparison.OrdinalIgnoreCase))
return new OllamaApiClient(arguments.Uri, arguments.Model);
else
return new OpenAIChatClient(new OpenAI.OpenAIClient(arguments.ApiKey), arguments.Model); // ChatGPT 或兼容
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-12,如有侵权请联系 cloudcommunity@tencent 删除开发者模型api对象工具本文标签: 告别复杂 API 调用!OllamaSharp 让 NET 开发者轻松上手 AI,附带完整示例
版权声明:本文标题:告别复杂 API 调用!OllamaSharp 让 .NET 开发者轻松上手 AI,附带完整示例 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747708599a2206951.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论