Project Icon

OllamaSharp

简洁直观的Ollama API .NET 客户端 支持流式响应和进度报告

OllamaSharp是Ollama API的.NET绑定,旨在简化.NET语言与Ollama的交互。其主要功能包括直观的API客户端、全面的API端点支持、实时流式响应和进度报告。通过简单几行代码即可设置和操作Ollama,并支持多模式模型的图像聊天。OllamaSharp还提供现成的API控制台,方便远程管理和聊天,无论是列出本地模型还是实时拉取模型进度,都能显著提升开发效率。

OllamaSharp 项目介绍

OllamaSharp 是一个为 .NET 开发者设计的工具,它提供了与 Ollama API 的绑定,使得用户可以更加轻松地在本地或远程与 Ollama 进行交互。这一工具不仅简化了与 Ollama 的交互过程,还兼容了 Microsoft 的一些扩展技术,为开发者提供了更多选择。

项目特色

  • 易于使用:通过 OllamaSharp,仅需几行代码即可与 Ollama 进行交互。
  • API 端点支持:全面支持所有 Ollama API 端点,包括聊天、嵌入、列出和创建模型等多种功能。
  • 实时流处理:可以将响应流直接传送到应用程序中,实现即时反馈。
  • 进度报告:对于模型的提取等操作,可以实时获得进度反馈。
  • 支持视觉模型和工具功能调用:适用于各种复杂的模型支持需求。

使用指南

OllamaSharp 使用异步方法封装了每个 Ollama API 端点,完整支持响应流。

初始化

// 设置客户端
var uri = new Uri("http://localhost:11434");
var ollama = new OllamaApiClient(uri);

// 选择一个模型用于后续操作
ollama.SelectedModel = "llama3.1:8b";

列出本地可用的所有模型

var models = await ollama.ListLocalModelsAsync();

提取模型并报告进度

await foreach (var status in ollama.PullModelAsync("llama3.1:405b"))
    Console.WriteLine($"{status.Percent}% {status.Status}");

直接在控制台生成输出

await foreach (var stream in ollama.GenerateAsync("How are you today?"))
    Console.Write(stream.Response);

构建交互式聊天

var chat = new Chat(ollama);
while (true)
{
    var message = Console.ReadLine();
    await foreach (var answerToken in chat.SendAsync(message))
        Console.Write(answerToken);
}
// 消息及其角色和工具调用会自动记录在 chat 对象中,并可通过 Messages 属性访问

与 Microsoft.Extensions.AI 的结合使用

微软建立了一个抽象库以简化不同 AI 提供者的使用。这对于计划使用多个提供者的开发者来说是一个非常有趣的概念,例如使用 ChatGPT、Claude 和 Ollama 的本地模型。

OllamaSharp 是第一个完整实现微软 IChatClientIEmbeddingGenerator 接口的工具,这使得 Ollama 的用法类似于其他聊天供应商。

// 安装包 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 或兼容版本
}

注意IOllamaApiClient 提供了很多 Ollama 特定的方法,而 IChatClientIEmbeddingGenerator 作为抽象层不会实现 Ollama API 的完整规格。然而,OllamaApiClient 实现了三个接口:原生 IOllamaApiClient 以及微软的 IChatClientIEmbeddingGenerator<string, Embedding<float>>,允许用户在需要时将其转换为任一接口。

致谢

感谢来自 Ollama 项目 的图标和名称。我想感谢所有抽出时间改进 OllamaSharp 的贡献者,尤其是 mili-tan,我们非常感谢他们对 OllamaSharp 与 Ollama API 同步的支持。❤

通过 OllamaSharp,.NET 开发者可以以更直观、高效的方式利用 Ollama 提供的 AI 模型和功能,提升开发效率和应用性能。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号