
OllamaSharp
在 .NET 中几行代码调用 Ollama 模型,快速集成 AI 能力
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1413
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- 已安装 .NET SDK(项目基于 .NET Standard 2.0,可被多种 .NET 框架引用)
- 一个可访问的 Ollama 服务,本地或远程均可(README 强调同时支持本地与远程调用)
- 如使用统一接口,需要 Microsoft.Extensions.AI 抽象包
- 想直接体验完整功能时,需要 Git 用于克隆示例仓库
安装与启动步骤
-
1克隆项目仓库
README 指出仓库内含功能完整的 demo 应用,先克隆下来可对照示例代码学习。
git clone https://github.com/awaescher/OllamaSharp.git -
2安装 OllamaSharp 包
在你的 C# 项目中通过 NuGet 引入 OllamaSharp,它封装了 Ollama 的全部 API 端点。
dotnet add package OllamaSharp -
3安装 M.E.AI 抽象包
README 在 Microsoft.Extensions.AI 章节明确要求安装该抽象包,才可把客户端当 IChatClient 使用。
dotnet add package Microsoft.Extensions.AI.Abstractions -
4创建 Ollama 客户端
用服务地址与模型名构造 OllamaApiClient,本地或远程 Ollama 都通过同一个地址参数指定。
var ollama = new OllamaApiClient(arguments.Uri, arguments.Model); -
5当作 IChatClient 使用
OllamaApiClient 同时实现 IChatClient 与 IEmbeddingGenerator,按需强制转换即可替换其他提供商。
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); } -
6运行验证
运行你的项目,确认能拿到模型返回内容,流式响应会边生成边输出。
dotnet run
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
Uri | 是 | Ollama 服务地址,本地或远程推理服务都指向这里 | http://localhost:11434 |
Model | 是 | 要调用的模型名称,需与 Ollama 中已有模型一致 | llama3.2 |
Provider | 否 | 代码示例中用于区分 ollama 与其他提供商的判断字段 | ollama |
ApiKey | 否 | 使用 ChatGPT 等兼容提供商时的密钥,走 Ollama 时不需要 | sk-xxxxxxxx |
如何确认成功
运行程序后,控制台能收到模型返回内容(流式响应会逐段输出),说明客户端与 Ollama 服务连通。
常见问题
Q:必须使用本地 Ollama 吗?
A:不必。README 说明 OllamaSharp 同时支持本地和远程调用,只要把 Uri 指向可访问的 Ollama 服务地址即可。
Q:OllamaApiClient 能当 IChatClient 用吗?
A:可以。OllamaApiClient 是 IChatClient 和 IEmbeddingGenerator 的完整实现,按需强制转换即可,用于模型推理或嵌入生成。
Q:想在同一个项目里切换 ChatGPT 怎么办?
A:README 示例按 Provider 判断,是 ollama 就用 OllamaApiClient,否则用 OpenAIChatClient 并传入 ApiKey,接口保持一致。
Q:哪里能看到可运行的完整示例?
A:仓库中自带功能完整的 demo 应用,克隆仓库后进入 demo 目录即可参考其调用方式。
注意事项
- 具体安装命令以 NuGet 包页面为准,README 章节只明确给出了 Microsoft.Extensions.AI.Abstractions 的安装提示。
- 运行前请确认目标 Ollama 服务已启动并可访问,否则客户端无法获得响应。
- 除聊天外,库还覆盖模型列出、拉取、创建、嵌入、流式响应与工具调用等端点,进阶用法见官方文档站。
- 需要 Native AOT 或视觉模型支持时,请查阅文档站对应的专门说明页面。
核心亮点
- API 设计简洁,与 Ollama 官方接口高度对齐,上手成本极低
- 支持流式响应和函数调用,适合构建交互式 AI 应用
- 基于 .NET Standard 2.0,兼容 .NET Framework、Core 和 MAUI 等多平台
不足之处
- 文档和示例相对较少,社区资源有限
- 依赖 Ollama 服务,无法独立运行模型
适用场景
- 在 .NET 桌面应用中集成本地大模型助手
- 构建基于 ASP.NET Core 的 AI 聊天后端服务
- 在 Unity 或 MAUI 应用中调用 Ollama 模型实现智能交互
替代项目
Semantic Kernel、LangChain.NET、Ollama Api Client
同类项目推荐
YiVal
开源
自动优化提示词,让 AI 输出更稳定更优质
Your Automatic Prompt Engineering Assistant for GenAI Applications
claude-code-tools
开源
给 Claude Code 装上瑞士军刀,日常开发效率翻倍
Practical productivity tools for Claude Code, Codex-CLI, and similar CLI coding agen···
ChatOpsLLM
开源
用聊天方式搞定 LLM 运维,省心又高效
To simplify and streamline LLM operations, empowering developers and organizations t···
PaddleMIX
开源
飞桨多模态全家桶,一站式搞定图文理解与生成
Paddle Multimodal Integration and eXploration, supporting mainstream multi-modal tas···
Langchain-Projects-LLM
开源
照着 Notebook 跑通大模型应用
Various projects using Large Language Model (GPT & LLAMA) other open source model fr···
mcp-toolbox-sdk-python
开源
用 Python 快速接入 MCP 数据库工具,让 LLM 安全操作数据库。
Python SDK for interacting with the MCP Toolbox for Databases.
text-generation-webui-colab
开源
在免费 Colab 上跑大模型,一键启动网页聊天界面
A colab gradio web UI for running Large Language Models
smile
开源
Java开发者一站式机器学习工具箱,高效构建智能应用
Statistical Machine Intelligence & Learning Engine
awesome-ai-apps
开源
一个列表,看遍AI应用主流玩法,找灵感、选方案。
A collection of projects showcasing RAG, agents, workflows, and other AI use cases