前提条件:请确保你本地已经安装了ollama以及有关本地离线模型。或者已有远程模型环境等。如果没有,请自行部署。如果需要帮助,可以文末获取联系方式咨询。由于部署离线大模型过于简单,在线资料也很多,我就省略这个步骤了。
 
创建一个项目,添加使用MIT开源协议的一个nuget包 OllamaSharp
确保Ollama应用已经启动。
 
默认本地ollama的端口是11434,也可以自行部署时候更改环境变量进行修改大模型存放地址、默认端口、是否允许远程访问等等。创建连接,并且验证下连接是不是正常,返回true,代表连接正常。
 
可以遍历出已有的模型有哪些,咱们写个选择模型的输入,通过输入来选择模型。由于获取的是IEnumerable集合,所以此处为了方便,之间转为数组来获取下标,从而获取模型名称。大家自己使用时候记得优化下写法。
运行,可以看到我本地罗列的模型列表等信息。
 
选择模型完毕,并绑定prompt提示词进行创建聊天对话。创建对话以后,根据用户输入的内容进行推理并获取返回内容。
 
运行结果如下:
如果需要以上演示的demo源码,可以在个人公众号 Dotnet Dancer 内,回复 【代码演示】 即可获取代码开源地址。
核心代码片段:
var uri = new Uri("http://localhost:11434");
var ollama = new OllamaApiClient(uri); var models = await ollama.ListLocalModels();

foreach (var model in models)
 {
    Console.WriteLine($"{index++}:{model.Name} {model.Size / 1024 / 1024} MB"); // 输出模型名称和大小
 }
 int selectIndex = Convert.ToInt32(Console.ReadLine());
 ollama.SelectedModel = models.ToArray()[selectIndex].Name; // 选择模型名称

var chat = new Chat(ollama, prompt);

await foreach (var answerToken in chat.Send(message))
Console.Write(answerToken);

.NET使用OllamaSharp实现大模型推理对话的简单演示的更多相关文章

  1. 优化故事: BLOOM 模型推理

    经过"九九八十一难",大模型终于炼成.下一步就是架设服务,准备开门营业了.真这么简单?恐怕未必!行百里者半九十,推理优化又是新的雄关漫道.如何进行延迟优化?如何进行成本优化 (别忘 ...

  2. DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

    DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮. 这场风潮对数字世 ...

  3. 天猫精灵业务如何使用机器学习PAI进行模型推理优化

    引言 天猫精灵(TmallGenie)是阿里巴巴人工智能实验室(Alibaba A.I.Labs)于2017年7月5日发布的AI智能语音终端设备.天猫精灵目前是全球销量第三.中国销量第一的智能音箱品牌 ...

  4. 【翻译】借助 NeoCPU 在 CPU 上进行 CNN 模型推理优化

    本文翻译自 Yizhi Liu, Yao Wang, Ruofei Yu.. 的  "Optimizing CNN Model Inference on CPUs" 原文链接: h ...

  5. MindSpore模型推理

    MindSpore模型推理 如果想在应用中使用自定义的MindSpore Lite模型,需要告知推理器模型所在的位置.推理器加载模型的方式有以下三种: 加载本地模型. 加载远程模型. 混合加载本地和远 ...

  6. 移动端 CPU 的深度学习模型推理性能优化——NCHW44 和 Record 原理方法详解

    用户实践系列,将收录 MegEngine 用户在框架实践过程中的心得体会文章,希望能够帮助有同样使用场景的小伙伴,更好地了解和使用 MegEngine ~ 作者:王雷 | 旷视科技 研发工程师 背景 ...

  7. 【模型推理】量化实现分享一:详解 min-max 对称量化算法实现

      欢迎关注我的公众号 [极智视界],回复001获取Google编程规范   O_o   >_<   o_O   O_o   ~_~   o_O   大家好,我是极智视界,本文剖析一下 m ...

  8. 【模型推理】量化实现分享二:详解 KL 对称量化算法实现

      欢迎关注我的公众号 [极智视界],回复001获取Google编程规范   O_o   >_<   o_O   O_o   ~_~   o_O   大家好,我是极智视界,本文剖析一下 K ...

  9. 千亿参数开源大模型 BLOOM 背后的技术

    假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...

  10. 无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 – 12:00

    武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数 ...

随机推荐

  1. 【转载】流形学习 (Manifold Learning) ——(学习笔记)

    第一篇:   摘抄自:https://zhuanlan.zhihu.com/p/54516805 从度量空间到拓扑空间 拓扑这门学科的一个方向涉及到去研究集合在"连续变形"下一些不 ...

  2. 学历史有什么用——视频分享:學歷史的大用:呂世浩(Shih-Hao Lu) at TEDxTaipei 2014

    网上看到的不错的视频: https://www.youtube.com/watch?v=Ap0w3PgSK7g ============================================ ...

  3. css 样式 element.style 覆盖问题

    问题: 我们在写网页定制样式的时候发现展示效果跟我们预想的不一样? 打开F12一看原来是element.style 覆盖的我定义的效果. 解决: 只要在定义的内容后面加上 !important 就行啦 ...

  4. LVS-TUN隧道模式

    当然可以.以下是按照您的要求整理的表格形式的实验手册: 主机名称 网卡信息 安装应用 系统 Client客户端 192.168.2.101 无 RHEL8/CentOS8 Lvs服务器(DR) DIP ...

  5. SpringBoot 用的 spring-jcl 打印日志,与 LoggingSystem 有鸡毛关系?

    开心一刻 现实中,我有一个异性游戏好友,昨天我心情不好,找她聊天 我:我们两个都好久没有坐下来好好聊天了 她:你不是有女朋友吗 我:人家不需要我这种穷人啊 她:难道我需要吗 前情回顾 从源码分析 Sp ...

  6. 西瓜杯 WP

    RE 一个西瓜切两半你一半我一半 有点谜语,文本给的是输出和key # Visit https://www.lddgo.net/string/pyc-compile-decompile for mor ...

  7. manim边学边做--带箭头直线

    带箭头的直线就是有方向的直线,既可以用来表示矢量,也可以用来标记某个关键位置.manim中提供了4种常用的带箭头的直线模块: Arrow:单箭头的直线 DoubleArrow:双箭头的直线 Label ...

  8. HTB-Runner靶机笔记

    HTB-Runner靶机笔记 概述 Runner是HTB上一个中等难度的Linux靶机,它包含以下teamcity漏洞(CVE-2023-42793)该漏洞允许用户绕过身份验证并提取API令牌.以及d ...

  9. 【YashanDB知识库】swap空间使用超大报错

    问题描述 问题单 使用GROUP_CONCAT函数时,数据库swap表空间上涨厉害 测试用例 drop table tmp1; create table tmp1(c1 int,c2 double,c ...

  10. CSS – Transition & Animation

    前言 之前的笔记 CSS – W3Schools 学习笔记 (3) 就有讲过 CSS Transitions 和 CSS Animations. 这里做一个整理, 补上一些细节. Transition ...