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

做pc端网站价位深圳设计优化公司

做pc端网站价位,深圳设计优化公司,wordpress禁止工具条,做网站技术路线通过uniapp开发与大模型对话的微信小程序,并且后端需要通过SSE向小程序返回响应数据。 微信小程序端需要展示响应数据,在这个过程中,数据解析这里踩了不少坑。 uniapp端开发微信小程序时,SSE连接处理的代码如下: con…

通过uniapp开发与大模型对话的微信小程序,并且后端需要通过SSE向小程序返回响应数据。

微信小程序端需要展示响应数据,在这个过程中,数据解析这里踩了不少坑。

uniapp端开发微信小程序时,SSE连接处理的代码如下:

  const initSSE2 = () => {console.log(uni.getStorageSync('token'))requestTask = uni.request({url: 'http://127.0.0.1:8889/connect',timeout: 30000,responseType: 'text',method: 'POST',enableChunked: true, //配置这里header: {Accept: 'text/event-stream','Authorization': uni.getStorageSync('token') //自定义请求头信息},responseType: 'arraybuffer',data: {},success: response => {console.log("success:" + JSON.stringify(response))},fail: error => {console.log("error:" + JSON.stringify(error))}})requestTask.onHeadersReceived((res) => {console.log("header:" + JSON.stringify(res.header));});// 这里监听消息requestTask.onChunkReceived((res) => {const uint8Array = new Uint8Array(res.data);let text = String.fromCharCode.apply(null, uint8Array);text = decodeURIComponent(escape(text));// 将后台通过streaming response返回的消息拼接到消息中messages.value[messages.value.length - 1].content += text;})}

后端返回的数据,在小程序端展示后结果如下: 

从展示效果看,返回的数据都以“data:”开头,而且数据都发生了换行。经过查询资料,了解到SSE返回的数据以"data:"开头,"\n\n"进行结尾,比如上面返回的数据类似这样的格式:

data:你好\n\n

SSE客户端端打印返回的数据:

        requestTask.onChunkReceived((res) => {console.log('响应数据:', res.data)const uint8Array = new Uint8Array(res.data);let text = String.fromCharCode.apply(null, uint8Array);text = decodeURIComponent(escape(text));// 将后台通过streaming response返回的消息拼接到消息中messages.value[messages.value.length - 1].content += text;})

 打印内容如下:

其中,"100 97 116 97 58"表示"data:","10 10"表示"\n\n",而且根据响应数据,我们发现SSE客户端是一次处理一批后端响应的数据。 

于是修改客户端解析数据的逻辑为:

requestTask.onChunkReceived((res) => {console.log('响应数据:', res.data)const uint8Array = new Uint8Array(res.data);let text = String.fromCharCode.apply(null, uint8Array);text = decodeURIComponent(escape(text));console.log('处理前:', text);let info = text.replace(/data:|\n\n/g, '')console.log('处理后:', info)// 将后台通过streaming response返回的消息拼接到消息中messages.value[messages.value.length - 1].content += info;})

其中通过正则表达式替换所有的"data:"和"\n\n"。替换后,展示效果如下:

但是根据后端打印的信息,在"回答:"后面是有换行的,后端输出内容:

这是由于后端返回大模型响应的数据时,需要换行的数据中间也使用了"\n\n",这就和SSE的数据格式产生了冲突。于是我们修改后端返回数据的代码,将"\n\n"替换为"\n":

前后端处理完成后,最终格式如下:

 

http://www.dtcms.com/a/522942.html

相关文章:

  • 北京网站优化开户263企业邮箱官方入口
  • 制作一个网站多少钱啊甘肃三北防护林建设局网站
  • 在青岛建网站品牌网站建设h合肥
  • 怎么做婚介网站网站设计实例教程
  • 做个网站多少费用公司网址有哪些
  • 誓做中国最大钓鱼网站广州微信网站建设公司哪家好
  • 网站与微信对接百度公司招聘官网
  • 宁波外贸网站开发唐山的网站建设
  • 网站开发如何找甲方上海网站建设大概多少钱
  • 网站如何做交换链接洛阳网站建设报价
  • 制作网站教学如何创建自己的卡网
  • 网站建设平台简介网站备案如何注销
  • 南通购物网站建设caddy wordpress
  • 做物流的用什么网站配货衡水做网站服务商
  • 小说阅读网站开发设计什么是网站反链
  • 百度不收录网站怎么办深圳市易百讯科技有限公司
  • 学建筑的网站seo工具优化
  • 萝岗公司网站建设网站开发建设公司电话
  • 还原wordpress站点地址恢复河北省建设执业资格注册中心网站
  • 好的外贸网站的特征做网站时连服务器上的数据库
  • 仿魔酷阁网站源码怎样做知道网站
  • 做钓鱼网站网站新备案不能访问
  • 17网站一起做网店广州新塘做网站排在前十名要多少钱
  • 品质好价格低的广告词网站seo优化有哪些方面
  • 繁昌网站建设哪些平台制作网站
  • 专门做衣服的网站哪里有服务好的深圳网站建设
  • 网站数据库连接失败口碑好的句容网站建设
  • 搜狗站长平台主动提交创可贴设计网站官网
  • 做制作网站找啥工作给网站人做网站
  • 南昌网站app开发如何做英文系统下载网站