Files
bigwo/test2/VOICE_KB_FIX_PLAN.md

52 lines
2.4 KiB
Markdown
Raw Normal View History

2026-03-12 12:47:56 +08:00
# 端到端语音知识库优化方案
> 目标:确保端到端语音调用知识库成功,回答内容基于知识库内容
> 妥势确保S2S模型使用知识库回答
> - 如果知识库没有相关信息,使用通用知识回答
>
> **核心问题**当前FC回调的cooldown机制20秒阻止了连续的工具调用
>
> **架构**:
```
用户语音 → S2S处理 → FC回调触发 → 工具执行 → 工具结果注入 → S2S回答
```
> **关键发现**:
1. FC回调被触发工具执行成功
2. 但工具结果注入时S2S可能没有使用知识库结果
3. **cooldown机制阻止了连续的工具调用**
> 当同一会话中有多个轮次的工具调用时使用相同的TaskID
4. **日志显示不完整** 工具调用链路追踪困难
5. **工具结果注入机制不够完善**:
- ToolCallID可能为空字符串
- function命令效果不稳定
- 结果格式可能不符合S2S预期
- ExternalTextToSpeech方案可能不可靠
6. **S2S配置问题**:
- `Output_mode=1`S2S优先处理普通对话可能跳过工具调用
- `system_prompt`中没有强制要求每次都调用知识库
- OutputMode=1时S2S会优先处理普通对话工具调用会延迟
- 如果知识库返回相关内容,基于知识库回答
- 如果知识库没有相关信息,用自己的知识回答
- **建议**:考虑使用 `interrupt` +`ExternalTextToSpeech` 方案
- 如果function命令效果不好使用 `ExternalTextToSpeech` 方案
- 如果function命令成功尝试使用 `ExternalTextToSpeech` 方案, - 发送提示信息,用户等待
- 如果用户在等待,使用 `ExternalTextToSpeech` 发送等待提示
- 如果知识库返回结果较慢,使用 `ExternalTextToSpeech` 方案
- 如果知识库查询成功,立即发送 `function`
结果
- 如果知识库查询失败,使用本地知识库
- 如果使用本地知识库,确保回答内容简洁
- 如果知识库没有相关信息,使用通用知识回答
- 如果使用本地知识库,回答内容可能过长,影响用户体验
- 如果知识库查询时间过长(>15秒考虑使用异步方式
- 如果同步部署后问题仍然存在可以临时切换到纯S2s模式验证
- 如果需要重新测试,可以手动触发
- 考虑服务器日志,确认问题是否解决
- 如果问题仍然存在,可以进一步排查