当前位置: 首页 > news >正文

万网 网站深圳制作网站软件

万网 网站,深圳制作网站软件,防城港做网站的,蓬莱建设局规划处网站C#与ai的交互 与AI的交互使用的Http请求的方式,通过发送请求,服务器响应ai生成的文本 下面是完整的代码,我这里使用的是Ollama本地部署的deepseek,在联网调用api时,则url会有不同 public class OllamaRequester {[Se…

C#与ai的交互

与AI的交互使用的Http请求的方式,通过发送请求,服务器响应ai生成的文本
下面是完整的代码,我这里使用的是Ollama本地部署的deepseek,在联网调用api时,则url会有不同

public class OllamaRequester
{[Serializable]public class RequestData{public string model;	//模型名称public string prompt;	//对话文本public int[] context;	//上下文public bool stream;	//是否使用流式传输}[Serializable]public class ResponseData{public string model;public string created_at;public string response;	//相应内容public bool done;	//生成是否结束public string done_reason;	//结束的状态public int[] context;	//上下文public long total_duration;public long load_duration;}private static OllamaRequester instance;public static OllamaRequester Instance{get{if(instance == null){instance = new OllamaRequester();instance.Init();}return instance;}}private int[] context;private HttpClient client;private void Init(){client = new HttpClient();}public async Task SendReq(string str, Action<ResponseData> onResOnce){//注意!这里是本地Ollama的地址,如果你是联网调用ai接口的的话,需要改成官网提供的urlstring url = "http://localhost:11434/api/generate"; //ollama端口默认11434//如果使用联网调用ai接口,则请求的参数会有不同,我这使用的是本地部署的请求参数RequestData data = new RequestData(){model = "deepseek-r1:7b",prompt = str,context = context,stream = true, //建议用流式传输,不然响应比较慢};string json = JsonUtility.ToJson(data);HttpContent content = new StringContent(json);content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");Debug.Log("发送请求..");try{var request = new HttpRequestMessage(HttpMethod.Post, url);request.Content = content;//这个HttpCompletionOption.ResponseHeadersRead至关重要,流式传输必须使用这个HttpResponseMessage msg = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);try{//不是200则直接报错if (msg.StatusCode != System.Net.HttpStatusCode.OK){Debug.LogError($"错误!statusCode=={msg.StatusCode}, 错误消息=={msg.Content}");return;}Stream stream = await msg.Content.ReadAsStreamAsync();StreamReader reader = new StreamReader(stream);while (true){string resStr = await reader.ReadLineAsync();Debug.Log("str==" + resStr);ResponseData res = JsonUtility.FromJson<ResponseData>(resStr);onResOnce?.Invoke(res);if (res.done){break;}}reader.Dispose();stream.Dispose();}catch (Exception e){Debug.LogError(e);}}catch(Exception e){Debug.LogError(e);}}
}

注意代码中SendAynsc时,使用了HttpCompletionOption.ResponseHeadersRead,这个枚举表示的是读取响应头部信息,并且允许你从响应流中逐步读取信息。
默认情况下,Http会等待整个响应体全部下载完,才会返回响应,这样在文本很长时响应会非常慢!所以通常建议开启流式传输

下面是ai响应的数据格式示例

--api返回的数据格式是json(因为csdn没有json格式的代码段,所以我用了lua表示)
{"model": "deepseek-r1:7b",	--模型"created_at": "2025-02-24T02:03:41.8641806Z","response": "",	--响应内容,我这里因为已经结束生成了,所以resposne是空"done": true,	--done==true,表示结束生成"done_reason": "stop",	--done_reason==stop,表示正常结束,会有其他非正常结束的情况"context": [	--上下文,在下次发送请求的时候,需要发送context,可以让ai保持连续对话151644,108386,151645,151648,271,151649,271,108386,6313,112169,104639,56568,3837,104139,109944,106128,9370,101037,11319,102215,86119,5373,101898,99998,100836,100281,3837,35946,102070,108896,101036,6313,144236],"total_duration": 4234560000,"load_duration": 18329400,"prompt_eval_count": 4,"prompt_eval_duration": 274000000,"eval_count": 31,"eval_duration": 3941000000
}
http://www.laogonggong.com/news/86738.html

相关文章:

  • ui培训哪里好苏州网站优化
  • 东阳网站建设公司影视头像logo设计
  • 搭建网站做淘宝客手表网站 海马300米潜水表
  • 海北wap网站建设智能建站模版
  • 阿里云服务器责任怎么做网站做网站怎么注册营业执照
  • app开发流程 网站开发wordpress 微信 抓取
  • 外贸网站用什么空间建筑工程网格化管理实施方案
  • 陕西省建设厅人力资源网站wordpress全站ajax插件
  • 做外汇网站卖判刑多少年做营销的一般逛哪些网站
  • 株洲网红打卡地成都网站优化维护
  • 如何做网站相册网站备份网站
  • 建设网站 系统占用空间学校网站群建设
  • 移动端网站做排名育婴师培训
  • 电子商务查询网站济南市商务局官方网站
  • 网站栏目的分类怎样清理网站后门
  • 公司宣传网站怎么做西昌市做网站的公司
  • 网站诊断与优化的作用刷赞网站推广ks
  • 竹溪网站建设分享设计作品网站
  • 做购物网站骗人六安信息网
  • 微餐饮建站费用鲜花外贸网站建设
  • 海口专业网站建设加强网站微信公众号平台建设
  • 网站logo尺寸一般多大今天兰州最新消息
  • 宁德网站建设公司模板建网站价格
  • 可以找题目做的网站电商运营招聘
  • 自己做动漫头像的网站网站建设基础培训
  • 网站做海康直播村庄建设网站
  • 金湖县网站建设无锡本地模板网站建设
  • 公司网站建设怎么o2o网站建设资讯
  • 苏州seo网站系统wordpress怎么加插件
  • 秒速网站建设网站公司源码