欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 将树莓派5当做Ollama服务器,C#调用generate的API的示例

将树莓派5当做Ollama服务器,C#调用generate的API的示例

2025/4/2 7:55:25 来源:https://blog.csdn.net/ki1381/article/details/146778859  浏览:    关键词:将树莓派5当做Ollama服务器,C#调用generate的API的示例

其实完全没这个必要,性能用脚后跟想都会很差。但基于上一篇文章的成果,来都来了就先简单试试吧。

先来看看这个拼夕夕上五百多块钱能达到的效果:

只要对速度没要求,那感觉就还行。

Ollama默认只在本地回环(127.0.0.1)上提供服务,树莓派下可以修改/etc/systemd/system/ollama.service,在[Service]节中加一句:

Environment="OLLAMA_HOST=0.0.0.0:11434"

注意,这可能会导致一些潜在的网络安全风险,比如未经授权的访问等,请谨慎评估。

然后重启服务:

sudo systemctl daemon-reload
sudo systemctl restart ollama

这样别的设备也能访问Ollama的API了。

C#代码很简单,本质上就是一个异步的POST调用。

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;namespace OllamaClient
{public partial class frmMain : Form{public frmMain(){InitializeComponent();}private async void btnPost_Click(object sender, EventArgs e){string ollamaUrl = txtURL.Text.Trim();string modelName = txtModel.Text.Trim();string question = txtQuestion.Text.Trim();string response = await GenerateAnswer(ollamaUrl, question, modelName,false);txtResponse.Text = response;}private async Task<string> GenerateAnswer(string ollamaUrl, string question, string modelName,bool useStreamMode){// 创建 HttpClient 实例using (HttpClient client = new HttpClient()){client.Timeout = TimeSpan.FromMilliseconds(Timeout.Infinite);// 构建请求的 URLstring requestUrl = $"{ollamaUrl}/api/generate";// 构建请求的 JSON 数据var requestBody = new{model = modelName,prompt = question,stream = useStreamMode};// 将请求数据序列化为 JSON 字符串string json = JsonConvert.SerializeObject(requestBody);// 创建 HttpContent 对象StringContent content = new StringContent(json, Encoding.UTF8, "application/json");// 发送 POST 请求HttpResponseMessage response = await client.PostAsync(requestUrl, content);// 确保请求成功response.EnsureSuccessStatusCode();// 读取返回的 JSON 数据string jsonResponse = await response.Content.ReadAsStringAsync();//return jsonResponse;// 解析 JSON 数据,提取回答内容dynamic jsonResponseObj = JsonConvert.DeserializeObject(jsonResponse);string answer = jsonResponseObj.response;// 返回回答内容// 换行符默认\n,Windows下不太友好return answer.Replace("\n","\r\n");}}}}

需事先用NuGet工具装好Newtonsoft.Json。

RPI5表示情绪稳定。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词