【亲测免费】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 的强大功能吧!
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C0134
let_datasetLET数据集 基于全尺寸人形机器人 Kuavo 4 Pro 采集,涵盖多场景、多类型操作的真实世界多任务数据。面向机器人操作、移动与交互任务,支持真实环境下的可扩展机器人学习00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python059
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
AgentCPM-ReportAgentCPM-Report是由THUNLP、中国人民大学RUCBM和ModelBest联合开发的开源大语言模型智能体。它基于MiniCPM4.1 80亿参数基座模型构建,接收用户指令作为输入,可自主生成长篇报告。Python00