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

52 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 端到端语音知识库优化方案
> 目标:确保端到端语音调用知识库成功,回答内容基于知识库内容
> 妥势确保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模式验证
- 如果需要重新测试,可以手动触发
- 考虑服务器日志,确认问题是否解决
- 如果问题仍然存在,可以进一步排查