Update code
This commit is contained in:
51
test2/VOICE_KB_FIX_PLAN.md
Normal file
51
test2/VOICE_KB_FIX_PLAN.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# 端到端语音知识库优化方案
|
||||
|
||||
> 目标:确保端到端语音调用知识库成功,回答内容基于知识库内容
|
||||
> 妥势::确保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模式验证
|
||||
- 如果需要重新测试,可以手动触发
|
||||
|
||||
- 考虑服务器日志,确认问题是否解决
|
||||
- 如果问题仍然存在,可以进一步排查
|
||||
Reference in New Issue
Block a user