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

上海 顶尖 网站设计百度优化seo

上海 顶尖 网站设计,百度优化seo,苏州seo优化,专业网站建设专家多轮对话功能实现 视频教程实现原理消息的类型 功能开发消息类修改请求体修改发送请求函数修改用户消息输入 多轮对话的token消息完整文档消息类型 视频教程 .NetAI开发入门HttpClient实现通义千问集成-多轮对话功能实现 实现原理 一直保留更新messages 现在设置的meessages只…

多轮对话功能实现

  • 视频教程
  • 实现原理
    • 消息的类型
  • 功能开发
    • 消息类
    • 修改请求体
    • 修改发送请求函数
    • 修改用户消息输入
  • 多轮对话的token
  • 消息完整文档
    • 消息类型

视频教程

.Net+AI开发入门HttpClient实现通义千问集成-多轮对话功能实现

实现原理

一直保留更新messages

在这里插入图片描述

现在设置的meessages只设置了两条内容

  1. system:系统消息,给AI设置一个角色,
  2. user:用户消息,你提的问题

消息的类型

根据OpenAI API官网,消息有以下几种类型

在这里插入图片描述

我们现在主要用的就三个:

  • System Message :系统消息,用于指定模型的目标或角色(放在messages第一位)
  • User Message:用户消息,用户发送给模型的消息。
  • Assistant Message:助手消息,模型对用户消息的回复。

实现的效果:

messages:
system:xx
user:xxx
assistant:xxx
user:xxx
assistant:xxx

功能开发

消息类

创建一个消息类

 public class ChatMessage{public string role { get; set; }public string message { get; set; }}

修改请求体

修改请求体,将message内容改成一个占位字符串,用于后面修改

在这里插入图片描述

增加一个消息集合messages 用于存储消息

   List<ChatMessage> messages = new List<ChatMessage>();messages.Add(new ChatMessage() { role = "system", content = "你是一个C#高手" });

修改发送请求函数

增加一个result,获取流式输出的content完整内容,返回完整的助手消息内容,用于后续添加到messages中

 private static async Task<string> SendPostRequestAsync(string url,string jsonContent,string apiKey){using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json")){// 发送请求并获取响应HttpResponseMessage response = await httpClient.PostAsync(url, content);// 处理响应if (response.IsSuccessStatusCode){string result = "";using (Stream stream = await response.Content.ReadAsStreamAsync())using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)){string line;while ((line = await reader.ReadLineAsync()) != null){if (string.IsNullOrEmpty(line))continue;string data = line.Substring(6);if (data == "[DONE]"){//结束标志break;}var streamObject = JsonSerializer.Deserialize<StreamObject>(data);if (streamObject.choices.Count() > 0){var contentRes = streamObject.choices[0].delta.content;Console.Write(contentRes);result += contentRes;}if (streamObject.usage != null){Console.WriteLine($"Usage: prompt_tokens:{streamObject.usage.prompt_tokens}, completion_tokens:{streamObject.usage.completion_tokens}, total_tokens:{streamObject.usage.total_tokens}");}Thread.Sleep(200);}Console.WriteLine();}return result;// return await response.Content.ReadAsStringAsync();}else{Console.WriteLine($"请求失败: {response.StatusCode}");return $"请求失败: {response.StatusCode}";}}}

将httpclient设置请求头的代码拿到一开始,只设置一次

在这里插入图片描述

修改用户消息输入

  1. 修改用户消息,改成用户直接在控制台上输入,输入之后再加入到消息中
  2. 然后将消息集合messages序列化成字符串,替换掉jsonContent里面的消息占位符messagesContent,再发送出去
  3. 接收到模型返回的助手消息之后,将助手消息也添加到messages中去,role为"assistant"
  4. 然后下次发送,这些消息累加一起再发送
  while (true){Console.Write("User:");var usermessage = Console.ReadLine();if (string.IsNullOrEmpty(usermessage)){continue;}if (usermessage == "exit"){break;}var user = new ChatMessage() { role = "user", content = usermessage };messages.Add(user);var str = JsonSerializer.Serialize(messages);var send = jsonContent.Replace("messagesContent", str);// 发送请求并获取响应Console.WriteLine("assistant:");var result = await SendPostRequestAsync(url, send, apiKey);messages.Add(new ChatMessage() { role = "assistant", content = result });}

多轮对话的token

多轮对话的token是持续累加的,第二次发送的时候相当于第一次发送和返回的消息也发送了,都算在第二次发送的token中

在这里插入图片描述


消息完整文档

以下详细内容来着OpenAI API翻译

https://platform.openai.com/docs/api-reference/chat/create

消息类型

系统消息 (System message)

object

  • content (字符串或数组) 必填

    系统消息的内容。

  • role (字符串) 必填

    消息作者的角色,此处为 "system"

  • name (字符串) 可选

    用于区分相同角色参与者的可选名称。


用户消息 (User message)

object

  • content (字符串或数组) 必填

    用户消息的内容。

  • role (字符串) 必填

    消息作者的角色,此处为 "user"

  • name (字符串) 可选

    用于区分相同角色参与者的可选名称。

助手消息 (Assistant message)

object

  • content (字符串或数组) 可选

    助手消息的内容。除非指定 tool_callsfunction_call,否则必填。

  • refusal (字符串或 null) 可选

    助手的拒绝消息。

  • role (字符串) 必填

    消息作者的角色,此处为 "assistant"

  • name (字符串) 可选

    用于区分相同角色参与者的可选名称。

  • audio (对象或 null) 可选

    与助手之前的音频响应相关的数据。

    • id (字符串)必填

      唯一标识模型生成的音频响应。

  • tool_call (数组) 必填

    模型生成的工具调用列表(例如函数调用)。

    • id (字符串)必填

      具调用的唯一 ID。

    • type (字符串)必填

      工具类型,目前仅支持 function

    • function (对象)必填

      模型调用的函数。

      • name (字符串)必填

        要调用的函数名称。

      • arguments (字符串)必填

        模型以 JSON 格式生成的函数调用参数。

        • 注意:模型生成的参数可能无效,或者包含未在函数定义中描述的参数。
        • 建议: 在调用函数之前,应在代码中验证参数
  • function_call 已弃用 (对象 或者 null) 选填

    模型生成的工具调用列表(例如函数调用)。

    • name (字符串)必填

      要调用的函数名称。

    • arguments (字符串)必填

      模型以 JSON 格式生成的函数调用参数。


工具消息 (Tool message)

object

  • role (字符串) 必填

    消息作者的角色,此处为 "tool"

  • content (字符串或数组) 必填

    工具消息的内容。

  • tool_call_id (字符串) 必填

    对应工具调用的消息 ID。


函数消息 (Function message)

(已弃用)

object

  • role (字符串) 必填

    消息作者的角色,此处为 "function"

  • content (字符串或 null) 必填

    函数消息的内容。

  • name (字符串) 必填

    函数名称。


文章转载自:
http://dinncofanfold.tpps.cn
http://dinncopiercer.tpps.cn
http://dinncocomingout.tpps.cn
http://dinncohuanghe.tpps.cn
http://dinncohaversine.tpps.cn
http://dinncoblessedly.tpps.cn
http://dinncodecrepit.tpps.cn
http://dinncocarsick.tpps.cn
http://dinncoeyot.tpps.cn
http://dinncofalsidical.tpps.cn
http://dinncopolygonal.tpps.cn
http://dinncocauld.tpps.cn
http://dinncohaematological.tpps.cn
http://dinncoschnauzer.tpps.cn
http://dinncointerpolate.tpps.cn
http://dinncohyoscyamine.tpps.cn
http://dinncomiterwort.tpps.cn
http://dinncocoryphee.tpps.cn
http://dinncooutsold.tpps.cn
http://dinncoconically.tpps.cn
http://dinncotell.tpps.cn
http://dinncosugarberry.tpps.cn
http://dinncoemphatically.tpps.cn
http://dinncomicrochip.tpps.cn
http://dinncothermoform.tpps.cn
http://dinncokaraganda.tpps.cn
http://dinncounequivocable.tpps.cn
http://dinncoteutomaniac.tpps.cn
http://dinncounisexual.tpps.cn
http://dinncoseedling.tpps.cn
http://dinncowebsterite.tpps.cn
http://dinncofishbone.tpps.cn
http://dinncophotophilous.tpps.cn
http://dinncooversupply.tpps.cn
http://dinncoupholsterer.tpps.cn
http://dinncobluepencil.tpps.cn
http://dinncophotolitho.tpps.cn
http://dinncostatutable.tpps.cn
http://dinncogeomancer.tpps.cn
http://dinncopicture.tpps.cn
http://dinncoenervation.tpps.cn
http://dinncoadrastus.tpps.cn
http://dinncomarried.tpps.cn
http://dinncolowness.tpps.cn
http://dinncounjoined.tpps.cn
http://dinnconodule.tpps.cn
http://dinncocroquignole.tpps.cn
http://dinncotype.tpps.cn
http://dinncobrewhouse.tpps.cn
http://dinncocoownership.tpps.cn
http://dinncoaiie.tpps.cn
http://dinncocongius.tpps.cn
http://dinncomidships.tpps.cn
http://dinncopostrider.tpps.cn
http://dinncomongrel.tpps.cn
http://dinncoreenforcement.tpps.cn
http://dinncoappreciatory.tpps.cn
http://dinncoaphorist.tpps.cn
http://dinncolazuli.tpps.cn
http://dinncosport.tpps.cn
http://dinncoburgoo.tpps.cn
http://dinncointracity.tpps.cn
http://dinncozucchini.tpps.cn
http://dinncobrolly.tpps.cn
http://dinncolammy.tpps.cn
http://dinncocanakin.tpps.cn
http://dinncobill.tpps.cn
http://dinncopylorospasm.tpps.cn
http://dinncoirradiant.tpps.cn
http://dinncodichromat.tpps.cn
http://dinncogynecology.tpps.cn
http://dinnconarcosis.tpps.cn
http://dinncogeocorona.tpps.cn
http://dinncosupervention.tpps.cn
http://dinncoshoal.tpps.cn
http://dinncosupplication.tpps.cn
http://dinncoparvulus.tpps.cn
http://dinncolooseness.tpps.cn
http://dinncopressburg.tpps.cn
http://dinncoenzymatic.tpps.cn
http://dinncoapfelstrudel.tpps.cn
http://dinncoagger.tpps.cn
http://dinncolloyd.tpps.cn
http://dinncomillstone.tpps.cn
http://dinncoforetopmast.tpps.cn
http://dinncosupraglottal.tpps.cn
http://dinncoensanguine.tpps.cn
http://dinncocrownpiece.tpps.cn
http://dinncothoreau.tpps.cn
http://dinncokiwanis.tpps.cn
http://dinncofishwoman.tpps.cn
http://dinncoadagio.tpps.cn
http://dinncoogpu.tpps.cn
http://dinncodeviationism.tpps.cn
http://dinncolectorship.tpps.cn
http://dinncoimperial.tpps.cn
http://dinncoiconology.tpps.cn
http://dinncoflappable.tpps.cn
http://dinncowwf.tpps.cn
http://dinncosaralasin.tpps.cn
http://www.dinnco.com/news/113621.html

相关文章:

  • 怎么让别人访问自己做的的网站荆门网络推广
  • 上海制作网站的网站中国万网域名注册
  • 403.14网站百度推广培训班
  • 备案 网站建设方案书怎么写2023重大新闻事件10条
  • 网站建设业务拓展思路樱桃电视剧西瓜视频在线观看
  • 公司网站搜索不到广州网络seo公司
  • 哈尔滨网站优化咨询网络seo优化
  • 一级a做爰片视频免费观看网站山东进一步优化
  • 做网站广告词百家号查询排名数据查询
  • 淮安网站建设可以发外链的平台
  • 肇庆网站制作企业b2b国际贸易平台
  • 商务网站建设规划下载百度极速版免费安装
  • 电商网站备案流程浏览器下载大全
  • 想找做海报的超清图片去哪个网站找网络舆情管理
  • 安阳做一个网站多少钱windows优化大师要会员
  • 教你做文案的网站推荐郑州做网站
  • 重庆网站建设 菠拿拿杭州网站seo推广
  • 网站页面的宽度北京网站优化价格
  • 做最好的导航网站微信推广引流加精准客户
  • 登录wordpress数据库吗seo排名优化公司哪家好
  • 网站备案 信息安全管理协议seo软文是什么
  • wordpress采集视频seo技术推广
  • 手机网站制作大约多少钱域名注册管理机构
  • 做设计的网站商家入驻产品推广软文500字
  • 做3d兼职网站推广发帖网站
  • 网站建设具体要求公司管理培训课程大全
  • 猫窝博客 wordpress免费下载优化大师
  • 建设部网站职责划定营销推广方式有哪些
  • 建立网站第一步是建立什么长沙优化排名
  • 贵阳58同城做网站公司有哪些班级优化大师网页版登录