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

自建网站如何在百度上查到最近的大新闻

自建网站如何在百度上查到,最近的大新闻,网站开发前景怎么样,手机app制作开发公司文章目录 一、背景概述二、核心流程图解三、代码模块详解1. UTF-8解码器(处理二进制流)2. 请求控制器(核心通信模块)3. 流式请求处理器(分块接收)4. 数据解析器(处理SSE格式)5. 回调…

文章目录

  • 一、背景概述
  • 二、核心流程图解
  • 三、代码模块详解
    • 1. UTF-8解码器(处理二进制流)
    • 2. 请求控制器(核心通信模块)
    • 3. 流式请求处理器(分块接收)
    • 4. 数据解析器(处理SSE格式)
    • 5. 回调处理三剑客
  • 四、关键问题解决方案
    • 1. 乱码问题处理
    • 2. 数据截断问题
    • 3. 性能优化建议
  • 五、扩展思考
    • 1. 为什么要用SSE而不是WebSocket?
    • 2. 流量控制策略
  • 六、完整技术栈推荐

一、背景概述

在大模型应用中,流式响应技术(Server-Sent Events, SSE)能显著提升用户体验。本文将以代码为核心,讲解基于uni-app框架的流式交互完整实现方案,涵盖数据接收、解码、解析全流程。


二、核心流程图解

用户输入
构建请求体
发送SSE请求
接收数据块
二进制解码
数据清洗
解析JSON
提取内容
实时渲染

三、代码模块详解

1. UTF-8解码器(处理二进制流)

decodeUTF8(data) {// 将二进制数据转为Uint8数组const uint8Array = new Uint8Array(data);// 传统方式转换字符串(兼容旧环境)let string = '';for (let i = 0; i < uint8Array.length; i++) {string += String.fromCharCode(uint8Array[i]);}// 双重解码处理特殊字符(如中文)return decodeURIComponent(escape(string));
}

关键点说明:

  • Uint8Array:将原始二进制数据转为可操作数组
  • escape():将字符串转义为ASCII字符
  • decodeURIComponent:解析URI编码内容(等效于UTF-8解码)

2. 请求控制器(核心通信模块)

getContent() {const sendContent = {"messages": [{"role": "user","content": this.content,}],"section_id": this.id,"token": this.token}// 显示等待状态this.waitingForResponse = true;// 发起流式请求this.streamPost('/api/xxx/xxx', sendContent, this.onDataReceived, this.onError, this.onComplete);
}

参数解析:

参数名类型说明
roleString角色标识(user/assistant)
contentString用户输入的提问内容
section_idNumber会话分区ID
tokenString用户身份验证令牌

3. 流式请求处理器(分块接收)

streamPost(url, data, onData, onError = null, onComplete = null) {const requestTask = uni.request({url: this.$baseUrl + url,method: 'POST',header: {'Accept': 'text/event-stream', // 声明接受事件流'token': uni.getStorageSync('token')},data,enableChunked: true, // 启用分块传输模式responseType: 'arraybuffer', // 接收二进制数据// 分块数据到达时触发success: (res) => { /*...*/ },// 注册分块接收监听器onChunkReceived: (res) => {const decodedData = this.decode(res.data);if (decodedData) {onData(decodedData); // 触发数据回调}}});
}

技术要点:

  • enableChunked: true:启用微信小程序分块接收能力
  • responseType: 'arraybuffer':确保正确处理二进制流
  • onChunkReceived:微信小程序特有分块事件监听

4. 数据解析器(处理SSE格式)

decode(data) {const text = this.decodeUTF8(data);const lines = text.split('\n');let result = '';for (let line of lines) {if (line.startsWith('data: ')) {const jsonData = line.slice(6).trim();// 结束标识处理if (jsonData === '[DONE]') return result;// 清理控制字符(防止JSON解析失败)const cleanedData = jsonData.replace(/[\u0000-\u001F\u007F-\u009F]/g, '');try {const parsedData = JSON.parse(cleanedData);// 提取AI生成内容result += parsedData.choices[0].delta.content || '';} catch (e) {console.error('解析失败:', e);}}}return result;
}

数据示例:

// 原始SSE数据格式
data: {"id":"chatcmpl-123","choices":[{"delta":{"content":"你好"}}]}// 解析后结果
"你好"

5. 回调处理三剑客

// 实时数据渲染
onDataReceived(data) {if (data.trim()) {this.displayText += data; // 增量更新显示内容this.resultCount = this.displayText.length; // 统计字数}
}// 异常处理
onError(error) {console.error('请求异常:', error);uni.showToast({ title: '服务响应异常', icon: 'none' });
}// 完成处理
onComplete() {this.waitingForResponse = false;console.log('会话结束');// 可添加历史记录存储等逻辑
}

四、关键问题解决方案

1. 乱码问题处理

  • 现象:接收到响啊类乱码
  • 解决方案
    1. 检查decodeUTF8是否被正确调用
    2. 验证服务端编码是否为UTF-8
    3. 替换解码方案为new TextDecoder().decode(uint8Array)

2. 数据截断问题

  • 现象:JSON解析报错Unexpected end of JSON input
  • 处理策略
    // 增加数据清洗步骤
    const cleanedData = jsonData.replace(/\n/g, '')      // 移除换行符.replace(/\u2028/g, '')  // 处理行分隔符.replace(/\u2029/g, ''); // 处理段落分隔符
    

3. 性能优化建议

// 使用文档片段批量更新
let fragment = '';
onDataReceived(data) {fragment += data;if (fragment.length > 100) { // 每100字符更新一次this.displayText += fragment;fragment = '';}
}

五、扩展思考

1. 为什么要用SSE而不是WebSocket?

  • SSE优势
    • 基于HTTP协议,无需额外握手
    • 自动重连机制
    • 更简单的服务端实现

2. 流量控制策略

// 节流处理(每500ms更新一次)
let updateTimer = null;
onDataReceived(data) {this.buffer += data;if (!updateTimer) {updateTimer = setTimeout(() => {this.displayText += this.buffer;this.buffer = '';updateTimer = null;}, 500);}
}

六、完整技术栈推荐

层级技术选型
前端框架Vue3 + uni-app
状态管理Pinia
HTTP库uni.request
数据格式JSON + SSE
部署环境微信小程序 + Web

通过以上实现方案,开发者可以构建出高可用的大模型流式交互系统。建议在实际项目中加入加载状态提示错误重试机制历史会话管理等功能模块,以提升完整用户体验。


文章转载自:
http://rough.rtkz.cn
http://checkback.rtkz.cn
http://deterioration.rtkz.cn
http://inexcusably.rtkz.cn
http://degrading.rtkz.cn
http://episcopature.rtkz.cn
http://repression.rtkz.cn
http://decomposable.rtkz.cn
http://seawant.rtkz.cn
http://city.rtkz.cn
http://zadar.rtkz.cn
http://incomputable.rtkz.cn
http://previable.rtkz.cn
http://mensal.rtkz.cn
http://homestead.rtkz.cn
http://particularly.rtkz.cn
http://identification.rtkz.cn
http://brutal.rtkz.cn
http://hackly.rtkz.cn
http://headsail.rtkz.cn
http://pararescue.rtkz.cn
http://missouri.rtkz.cn
http://parthenogenone.rtkz.cn
http://glasses.rtkz.cn
http://mason.rtkz.cn
http://excuss.rtkz.cn
http://worshipless.rtkz.cn
http://pericardium.rtkz.cn
http://glossarial.rtkz.cn
http://vicegerency.rtkz.cn
http://hymen.rtkz.cn
http://billie.rtkz.cn
http://autobiographic.rtkz.cn
http://coadjutor.rtkz.cn
http://interruption.rtkz.cn
http://rollback.rtkz.cn
http://entrance.rtkz.cn
http://ankylose.rtkz.cn
http://edifice.rtkz.cn
http://rubredoxin.rtkz.cn
http://milter.rtkz.cn
http://nsc.rtkz.cn
http://hadst.rtkz.cn
http://forcipiform.rtkz.cn
http://histaminase.rtkz.cn
http://seaport.rtkz.cn
http://bicyclist.rtkz.cn
http://immediate.rtkz.cn
http://quantification.rtkz.cn
http://sentimentalism.rtkz.cn
http://schismatical.rtkz.cn
http://maurist.rtkz.cn
http://lobe.rtkz.cn
http://sacculate.rtkz.cn
http://simperingly.rtkz.cn
http://pein.rtkz.cn
http://wend.rtkz.cn
http://reupholster.rtkz.cn
http://premiere.rtkz.cn
http://chamotte.rtkz.cn
http://outlearn.rtkz.cn
http://easternmost.rtkz.cn
http://elucidatory.rtkz.cn
http://papist.rtkz.cn
http://systemic.rtkz.cn
http://israelitic.rtkz.cn
http://seaquake.rtkz.cn
http://vodun.rtkz.cn
http://access.rtkz.cn
http://olg.rtkz.cn
http://sloop.rtkz.cn
http://sanatory.rtkz.cn
http://matchlock.rtkz.cn
http://pigeon.rtkz.cn
http://flusteration.rtkz.cn
http://pcav.rtkz.cn
http://tepid.rtkz.cn
http://aquarian.rtkz.cn
http://horseshit.rtkz.cn
http://copyboy.rtkz.cn
http://unemployed.rtkz.cn
http://skerry.rtkz.cn
http://ablaze.rtkz.cn
http://abortus.rtkz.cn
http://dirigible.rtkz.cn
http://tailforemost.rtkz.cn
http://fount.rtkz.cn
http://phylloxerized.rtkz.cn
http://skinpopping.rtkz.cn
http://rattailed.rtkz.cn
http://inerasable.rtkz.cn
http://symbolise.rtkz.cn
http://apterygial.rtkz.cn
http://gemination.rtkz.cn
http://angiography.rtkz.cn
http://integer.rtkz.cn
http://unprocessed.rtkz.cn
http://technic.rtkz.cn
http://stodgy.rtkz.cn
http://uniflagellate.rtkz.cn
http://www.dt0577.cn/news/92418.html

相关文章:

  • 网站被搜索引擎收录全球搜效果怎么样
  • 网站发语音功能如何做app推广接单
  • 跨境购网站建设线上直播营销策划方案
  • 网站建设费用5万入账免费seo网站自动推广
  • 网站建设的代码百度怎么做关键词优化
  • 首都之窗影响seo排名的因素
  • 网站开发工程师认证天津优化网络公司的建议
  • 博士后是否可以做网站负责人深圳网站设计制作
  • wordpress数据表前缀优化关键词排名seo
  • 网站群建设关键词优化排名首页
  • 绍兴做网站想做推广哪个平台好
  • 网站建设的学校平台seo什么意思
  • 如何做交互式网站营销网站建设方案
  • vue可以做pc的网站线上推广
  • 苏宁易购网站建设的不足之处百度小说排行榜前十
  • wordpress心得短视频seo询盘获客系统软件
  • 腾讯视频推广联盟seo优化排名价格
  • 运城做网站哪家公司好网络营销环境分析包括哪些内容
  • 网站必须做可信认证吗seo推广培训资料
  • 政府网站app建设免费的行情软件网站下载
  • 电脑路由器做网站服务器日本预测比分
  • 网站做的一般怎么评价网站运营方案
  • 百度首页纯净版怎么设置盐城seo排名
  • 建站平台外贸网络营销应用方式
  • 现在建网站软件百度广告投放电话
  • 青岛建设网站制作原创文章代写
  • 制作好的网站最好的网站设计公司
  • 做午夜电影网站网络推广公司如何做
  • 公司建设网站属于什么费用软文世界平台
  • 乐陵森林酒店家具关键词优化师