Files
bigwo/test2/VOICE_KB_FIX_PLAN.md
2026-03-12 12:47:56 +08:00

2.4 KiB
Raw Permalink Blame History

端到端语音知识库优化方案

目标:确保端到端语音调用知识库成功,回答内容基于知识库内容 妥势确保S2S模型使用知识库回答

  • 如果知识库没有相关信息,使用通用知识回答

核心问题当前FC回调的cooldown机制20秒阻止了连续的工具调用

架构:

用户语音 → S2S处理 → FC回调触发 → 工具执行 → 工具结果注入 → S2S回答

关键发现:

  1. FC回调被触发工具执行成功
  2. 但工具结果注入时S2S可能没有使用知识库结果
  3. cooldown机制阻止了连续的工具调用

当同一会话中有多个轮次的工具调用时使用相同的TaskID

  1. 日志显示不完整 工具调用链路追踪困难

  2. 工具结果注入机制不够完善:

    • ToolCallID可能为空字符串
    • function命令效果不稳定
    • 结果格式可能不符合S2S预期
    • ExternalTextToSpeech方案可能不可靠
  3. S2S配置问题:

    • Output_mode=1S2S优先处理普通对话可能跳过工具调用

    • system_prompt中没有强制要求每次都调用知识库

    • OutputMode=1时S2S会优先处理普通对话工具调用会延迟

    • 如果知识库返回相关内容,基于知识库回答

    • 如果知识库没有相关信息,用自己的知识回答

    • 建议:考虑使用 interrupt +ExternalTextToSpeech 方案

    • 如果function命令效果不好使用 ExternalTextToSpeech 方案

    • 如果function命令成功尝试使用 ExternalTextToSpeech 方案, - 发送提示信息,用户等待

    • 如果用户在等待,使用 ExternalTextToSpeech 发送等待提示

    • 如果知识库返回结果较慢,使用 ExternalTextToSpeech 方案

    • 如果知识库查询成功,立即发送 function 奖 结果

    • 如果知识库查询失败,使用本地知识库

    • 如果使用本地知识库,确保回答内容简洁

    • 如果知识库没有相关信息,使用通用知识回答

    • 如果使用本地知识库,回答内容可能过长,影响用户体验

    • 如果知识库查询时间过长(>15秒考虑使用异步方式

    • 如果同步部署后问题仍然存在可以临时切换到纯S2s模式验证

    • 如果需要重新测试,可以手动触发

    • 考虑服务器日志,确认问题是否解决

    • 如果问题仍然存在,可以进一步排查