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

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

Project Cover

Kimi

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

Project Cover

阿里绘蛙

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

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

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

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