【亲测免费】OllamaSharp 项目安装和配置指南:让 .NET 轻松对接 Ollama API
OllamaSharp 是一款专为 .NET 开发者设计的 Ollama API 绑定库,能够简化与 Ollama 的本地和远程交互。无论是构建聊天应用还是调用 AI 模型,OllamaSharp 都提供了直观的接口和强大的功能支持,让 .NET 开发者轻松集成 Ollama 的强大能力。
Ollama 官方标志,OllamaSharp 正是为其提供 .NET 绑定支持的工具
为什么选择 OllamaSharp?
OllamaSharp 已成为 Microsoft 推荐的 Ollama 交互工具,在 NuGet 上获得了广泛认可。从官方推荐页面可以看到,Microsoft.Extensions.AI.Ollama 包已明确建议使用 OllamaSharp 作为替代方案,因为它提供了更完整的 Ollama API 支持。
 NuGet 页面显示 Microsoft 推荐使用 OllamaSharp 作为官方包的替代方案
OllamaSharp 的核心优势包括:
- 完整支持 Ollama API 所有端点
- 异步流式响应处理
- 工具引擎支持,带有源代码生成器
- Native AOT 支持,提升性能
- 与 Microsoft.Extensions.AI 抽象接口兼容
准备工作:安装必要组件
开始使用 OllamaSharp 前,需要确保系统中已安装以下软件:
-
Ollama 服务器
- 从 Ollama 官方网站 下载并安装
- 安装后会自动启动服务,默认端口为 11434
-
.NET 环境
- 支持 .NET 8.0 及以上版本
- 可从 .NET 官方下载页面 获取
快速安装 OllamaSharp
安装 OllamaSharp 非常简单,通过 NuGet 包管理器即可完成。打开终端,执行以下命令:
dotnet add package OllamaSharp
或者在项目文件中添加 PackageReference:
<PackageReference Include="OllamaSharp" Version="最新版本" />
提示:可以通过 NuGet 官网 查看最新版本号
基础配置:初始化客户端
安装完成后,首先需要创建并配置 OllamaApiClient 实例。最基本的初始化代码如下:
using OllamaSharp;
// 设置 Ollama 服务器地址(默认本地地址)
var uri = new Uri("http://localhost:11434");
var ollama = new OllamaApiClient(uri);
// 选择要使用的模型
ollama.SelectedModel = "llama3.1:8b";
常用操作指南
列出本地可用模型
要查看已下载到本地的 Ollama 模型,可以使用 ListLocalModelsAsync 方法:
var models = await ollama.ListLocalModelsAsync();
foreach (var model in models)
{
Console.WriteLine($"模型名称: {model.Name}, 大小: {model.Size}");
}
下载新模型
从 Ollama 模型库下载新模型非常简单,还可以实时跟踪下载进度:
await foreach (var status in ollama.PullModelAsync("llama3.1:405b"))
{
Console.WriteLine($"{status.Percent}% {status.Status}");
}
生成文本响应
直接生成文本响应并流式输出到控制台:
await foreach (var stream in ollama.GenerateAsync("请介绍一下 .NET 8 的新特性"))
{
Console.Write(stream.Response);
}
构建交互式聊天
OllamaSharp 提供了 Chat 类来简化交互式聊天功能的实现:
var chat = new Chat(ollama);
while (true)
{
Console.Write("你: ");
var message = Console.ReadLine();
Console.Write("AI: ");
await foreach (var answerToken in chat.SendAsync(message))
{
Console.Write(answerToken);
}
Console.WriteLine();
}
高级用法:与 Microsoft.Extensions.AI 集成
OllamaSharp 实现了 Microsoft.Extensions.AI 抽象接口,可与其他 AI 服务提供商无缝切换:
// 安装 Microsoft.Extensions.AI.Abstractions 包
private static IChatClient CreateChatClient(string provider, string uri, string model, string apiKey = null)
{
if (provider.Equals("ollama", StringComparison.OrdinalIgnoreCase))
return new OllamaApiClient(new Uri(uri), model);
else
return new OpenAIChatClient(new OpenAI.OpenAIClient(apiKey), model); // 其他 AI 提供商
}
官方文档与资源
- 完整文档:docs/getting-started.md
- 工具支持:docs/tool-support.md
- Native AOT 支持:docs/native-aot-support.md
故障排除小贴士
- 连接问题:确保 Ollama 服务正在运行,默认地址为 http://localhost:11434
- 模型问题:使用
ollama pull 模型名命令确保模型已下载 - 版本问题:确保使用最新版本的 OllamaSharp 和 .NET SDK
- 性能问题:考虑启用 Native AOT 编译提升性能
通过以上步骤,你已经掌握了 OllamaSharp 的基本安装、配置和使用方法。无论是构建简单的命令行工具还是复杂的 AI 应用,OllamaSharp 都能为你提供高效、可靠的 .NET 绑定支持。现在就开始探索 Ollama 的强大功能吧!
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0194- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00