首页 > 其他分享 >.NET使用OllamaSharp实现大模型推理对话的简单演示

.NET使用OllamaSharp实现大模型推理对话的简单演示

时间:2024-10-25 12:11:36浏览次数:7  
标签:演示 OllamaSharp 模型 获取 var Console NET ollama

https://www.cnblogs.com/weskynet/p/18497936

 

前提条件:请确保你本地已经安装了ollama以及有关本地离线模型。或者已有远程模型环境等。如果没有,请自行部署。如果需要帮助,可以文末获取联系方式咨询。由于部署离线大模型过于简单,在线资料也很多,我就省略这个步骤了。

  创建一个项目,添加使用MIT开源协议的一个nuget包 OllamaSharp 0 确保Ollama应用已经启动。 0   默认本地ollama的端口是11434,也可以自行部署时候更改环境变量进行修改大模型存放地址、默认端口、是否允许远程访问等等。创建连接,并且验证下连接是不是正常,返回true,代表连接正常。 0   可以遍历出已有的模型有哪些,咱们写个选择模型的输入,通过输入来选择模型。由于获取的是IEnumerable集合,所以此处为了方便,之间转为数组来获取下标,从而获取模型名称。大家自己使用时候记得优化下写法。 运行,可以看到我本地罗列的模型列表等信息。 0   选择模型完毕,并绑定prompt提示词进行创建聊天对话。创建对话以后,根据用户输入的内容进行推理并获取返回内容。 0   运行结果如下: 如果需要以上演示的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);
复制代码

 

标签:演示,OllamaSharp,模型,获取,var,Console,NET,ollama
From: https://www.cnblogs.com/chinasoft/p/18502244

相关文章

  • 机床 发那科 转 profinet IO 项目案例
    目录1 案例说明 12 VFBOX网关工作原理 13 准备工作 24 网关采集发那科机床数据 25 用PROFINETIO协议转发数据 56 案例总结 71 案例说明设置网关采集发那科机床数据把采集的数据转成profinetIO协议转发给其他系统。2 VFBOX网关工作原理VFBOX网关是协议转换网关,是把......
  • Unet网络搭建Day1
    Pycharm内搭建虚拟环境:一、将PyCharm中的终端运行前面的PS修改成当前环境解决方法:只需要在pycharm的设置中修改一些terminal的环境即可,具体步骤如下:1.打开pycharm中的settings;2.找到Terminal选项;3.将shellpath的位置改为cmd.exe;4.点击ok;5.重启pycharm即可。二、wandb......
  • 谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc
    本文基于Netty4.1.112.Final版本进行讨论在之前的Netty系列中,笔者是以4.1.56.Final版本为基础和大家讨论的,那么从本文开始,笔者将用最新版本4.1.112.Final对Netty的相关设计展开解析,之所以这么做的原因是Netty的内存池设计一直在不断地演进优化。在4.1.52.Final......
  • .NET 开源扁平化、美观的 C/S 控件库
    前言给大家推荐一个优秀的控件集,它基于.NETFramework4.0,采用纯原生开发,不包含任何第三方插件或类库。该控件集涵盖了常用的窗体和控件,同时还包括工业工具和类Web控件。使用这套控件库我们可以快速的搭建一个漂亮的应用程序。项目介绍HZHControls包含了200多个控件、窗......
  • Agent.exe:让Claude 3.5 Sonnet控制你的电脑
    简介Agent.exe是一个开源的Electron应用程序,它允许Claude3.5Sonnet直接控制你的本地计算机。这个项目的特色在于它的操作界面简洁,并且对Firefox浏览器有特别的优化支持。功能亮点简单易用:通过一个简单的Electron应用,让Claude3.5Sonnet接管你的电脑。操作直......
  • DCN-Digital Communications and Networks
    @目录一、征稿简介二、重要信息三、服务简述四、投稿须知一、征稿简介二、重要信息期刊官网:https://ais.cn/u/3eEJNv三、服务简述人工智能原生网络6G通信网络中的人工智能自主网络管理网络功能虚拟化(NFV)软件定义网络(SDN)网络机器学习无线联合学习动态频谱管理网......
  • 在 Windows Server 2008 R2 中,您可以使用批处理(.bat)文件来查询 Win32_NetworkAdapterC
    在WindowsServer2008R2中,Win32_NetworkAdapterConfiguration类是Windows管理工具(WMI)基础结构的一部分。它提供了有关服务器上网络适配器配置的详细信息。您可以使用此类查询各种网络设置,例如IP地址、子网掩码、DNS服务器和DHCP设置。Win32_NetworkAdapterConfigurat......
  • 要使用 netsh 命令更新以太网连接的 IPv6 DNS 服务器地址,可以通过以下步骤进行操作。
    要使用netsh命令更新以太网连接的IPv6DNS服务器地址,可以通过以下步骤进行操作。以下是设置IPv6DNS的命令示例。使用 netsh 设置以太网的IPv6DNS打开命令提示符:以管理员身份运行命令提示符。输入以下命令:bashCopyCodenetshinterfaceipv6setdnsname......
  • 使用 Windows Management Instrumentation (WMI) 更新用户的 DNS 设置可以通过几种方
    使用WindowsManagementInstrumentation(WMI)更新用户的DNS设置可以通过几种方法实现,主要是使用Win32_NetworkAdapterConfiguration类来修改网络适配器的DNS设置。以下是一个使用PowerShell脚本的示例,展示如何通过WMI更新DNS设置。使用PowerShell更新DNS设置......
  • 如何在WPF程序中启用ASP.NET Core的功能
    本文介绍一种如何在WPF程序中启用ASP.NETCore功能的方法关于ASP.NETCore,如果之前不太了解,那么简介就是ASP.NETCore是一个跨平台、高性能的开源框架,用于构建支持云的现代Internet连接应用程序。简单来说,就是启用web服务器的功能,以实现WebAPI,亦或是Razor网页等功能。......