欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 典籍知识问答模块AI问答bug修改

典籍知识问答模块AI问答bug修改

2025/6/18 21:52:45 来源:https://blog.csdn.net/2301_76212858/article/details/148031469  浏览:    关键词:典籍知识问答模块AI问答bug修改

一、修改流式数据处理问题
1.问题描述:由于传来的数据形式如下:

event:START
data:350

data:<

data:t

data:h

data:i

data:n

data:k

data:>

data:
data:

data:
data:

data:嗯

data:,
导致需要修改获取正常的当前信息id并更新的逻辑
2.修改代码如下:
 

  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) {

  if (line.startsWith('event:')) {

    currentEvent = line.replace('event:', '').trim();

    continue;

  }

  if (line.startsWith('data:')) {

    const data = line.replace('data:', '').trim();

    // 处理 START 事件

    if (currentEvent === 'START') {

      serverAIId = data;

      currentMessages.value.push({

        id: serverAIId,

        role: 'assistant',

        content: '',

        createdAt: new Date().toISOString(),

        streaming: true

      });

      currentEvent = null; // 重置事件状态

      //console.log('START event received, serverAIId:', serverAIId);

      continue;

    }

    // 处理普通内容(MESSAGE 或未指定 event)

    if (currentEvent === null) {

      aiContent += data;

      currentMessages.value = currentMessages.value.map(msg =>

        msg.id === serverAIId ? { ...msg, content: aiContent } : msg

      );

    }

    // 处理 COMPLETE 事件(结束)

    if (currentEvent === 'COMPLETE') {

      currentMessages.value = currentMessages.value.map(msg =>

        msg.id === serverAIId ? { ...msg, streaming: false } : msg

      );

    }

  }

}

        }

        currentMessages.value = currentMessages.value.map(msg =>

            msg.id === serverAIId ? { ...msg, streaming: false } : msg

        );

        await fetchSessions(classic.value.id);
二、重新编辑问题时出现的问题
1.问题描述:由于发送信息后的userId也没能及时更新到前端,导致在使用修改问题获取msgid时无法获取原始id的信息.

2.解决方法:后端返回时加上问题的id信息,具体返回如下:
 

event:USER_MSG
data:347

event:START
data:348

data:<

data:t
因此就可以正常更新问题id了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词