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

典籍知识问答重新生成和消息修改Bug修改

1.Bug:

{messageId: "temp-user-1747051925999",…} messageId : "temp-user-1747051925999" newContent : "关于选中的内容:\"The ancient people lived long by following natural laws\",我的问题是:翻译成法文是什么意思\n"  负载是这个

{ "timestamp": "2025-05-12T12:17:39.268+00:00", "status": 400, "error": "Bad Request", "path": "/api/qa/stream-edit" } 响应是这个

2.错误原因

用户消息的ID在创建时是临时的,但在流式响应中未正确更新为持久化ID。

3.修改代码

// 修改流式响应处理部分
while (true) {
  const { done, value } = await reader.read();
  if (done) break;

  buffer += decoder.decode(value, { stream: true });
  const lines = buffer.split('\n');
  buffer = lines.pop() || '';

  for (const line of lines) {
    // 捕获持久化ID事件
    if (line.startsWith('event: START')) {
      const persistedId = line.replace('event: START\ndata:', '').trim();
      // 更新临时消息ID
      const tempMsg = currentMessages.value.find(m => m.id === aiMsg.id);
      if (tempMsg) {
        tempMsg.id = persistedId; // 更新为真实ID
        tempMsg.temp = false;     // 移除临时标记
        currentMessages.value = [...currentMessages.value]; // 触发响应式更新
      }
    }
    // 原有内容
  }
}

// 修改编辑消息方法
const saveEdit = async (msgId) => {
  if (isSavingEdit.value) return;
  
  // 新增ID有效性检查
  if (msgId.startsWith('temp-')) {
    alert('请等待消息生成完成后再操作');
    return;
  }

  isSavingEdit.value = true;
  try {
    await qastore.editMessage(msgId, editingStates.value[msgId].editedContent);
    editingStates.value[msgId].editing = false;
  } finally {
    isSavingEdit.value = false;
  }
}

//原有内容

http://www.xdnf.cn/news/405487.html

相关文章:

  • 从零搭建AI工作站:Gemma3大模型本地部署+WebUI配置全套方案
  • sqlmap使用入门
  • Linux 系统中设置开机启动脚本
  • AAAI-2025 | 中科院无人机导航新突破!FELA:基于细粒度对齐的无人机视觉对话导航
  • 【JAVA】业务系统订单号,流水号生成规则工具类
  • python练习-20250512
  • C++23 views::slide (P2442R1) 深入解析
  • AnaTraf:深度解析网络性能分析(NPM)
  • C语言:深入理解指针(3)
  • 基于 Nexus 在 Dockerfile 配置 yum, conda, pip 仓库的方法和参考
  • T2000云腾边缘计算盒子在数猪场景中的应用|YOLOv8+NodeRED
  • 湖北理元理律师事务所:企业债务危机的“止血”与“造血”平衡术
  • 01背包和完全背包
  • 基于Qt6 + MuPDF在 Arm IMX6ULL运行的PDF浏览器——MuPDF Tools
  • 大项目k8s集群有多大规模,多少节点,有多少pod
  • 智能指针入门:深入理解 C++ 的 shared_ptr
  • AI中的MCP是什么?MCP的作用及未来方向预测 (使用go-zero 快速搭建MCP服务器)
  • 2025年北京市积分落户申报
  • 经典案例 | 智能眼镜中瞳距调节和近视调节的应用
  • web 自动化之 Unittest 四大组件
  • 【NextPilot日志移植】ULog
  • 文档外发安全:企业数据防护的最后一道防线
  • RabbitMQ 工作模式
  • JWT的介绍与在Fastapi框架中的应用
  • 单片机-STM32部分:13-1、蜂鸣器
  • 常用依赖文件库
  • kubernetes服务自动伸缩-VPA
  • ESP32开发入门(九):HTTP服务器开发实践
  • Day22打卡-复习
  • 【K8S学习之探针】详细了解就绪探针 readinessProbe 和存活探针 livenessProbe 的配置