# 故障排查 本文档汇总常见问题的排查步骤和解决方案。 ## 连接问题 ### WebSocket 连接失败 **症状**:无法建立 WebSocket 连接,控制台显示连接错误。 **排查步骤**: 1. **检查服务状态** ```bash # 检查 Engine 服务是否运行 curl http://localhost:8000/health ``` 2. **验证连接地址** - 确认 host 和 port 正确 - 确认 assistant_id 参数存在 3. **检查网络** - 确认防火墙未阻止 WebSocket - 检查 Nginx 代理配置(如有) 4. **查看服务日志** ```bash docker logs ai-assistant-engine ``` **常见原因**: - Engine 服务未启动 - assistant_id 无效 - 防火墙阻止 WebSocket 端口 --- ### API 请求失败 **症状**:REST API 返回错误或超时。 **排查步骤**: 1. **检查 API 服务** ```bash curl http://localhost:8080/health ``` 2. **验证请求格式** - Content-Type 是否为 application/json - 请求体是否为有效 JSON 3. **检查认证** - Authorization header 是否正确 - API Key 是否有效 4. **查看响应详情** ```bash curl -v http://localhost:8080/api/v1/assistants ``` --- ## 助手问题 ### 助手不回复 **症状**:发送消息后没有收到助手回复。 **排查步骤**: 1. **检查会话状态** - 确认收到 `session.started` 事件 - 确认没有 `error` 事件 2. **检查 LLM 配置** - API Key 是否有效 - 模型配置是否正确 - 测试模型连接 3. **查看日志** - 检查 LLM 调用是否成功 - 查看是否有超时错误 **常见原因**: - LLM API Key 无效或过期 - 模型服务不可用 - 请求超时 --- ### 回复质量差 **症状**:助手回复不准确、不相关或格式混乱。 **排查步骤**: 1. **检查提示词** - 是否有明确的角色定义 - 是否有清晰的任务描述 - 是否有必要的约束 2. **调整参数** - 降低 temperature 提高一致性 - 调整 max_tokens 控制长度 3. **检查知识库** - 确认知识库已关联 - 测试检索结果是否相关 4. **查看对话历史** - 分析问题出现的模式 - 收集典型的失败案例 --- ## 语音问题 ### 语音识别不准确 **症状**:ASR 识别结果与实际说话内容不符。 **排查步骤**: 1. **检查音频质量** - 麦克风是否正常工作 - 环境是否嘈杂 - 采样率是否正确(16kHz) 2. **验证 ASR 配置** - 语言设置是否正确 - 是否配置了热词 3. **测试不同引擎** - 尝试切换 ASR 服务提供商 - 对比识别效果 **改进建议**: - 添加业务相关的热词 - 使用降噪麦克风 - 选择针对中文优化的 ASR 引擎 --- ### 语音无法播放 **症状**:TTS 合成成功但没有声音输出。 **排查步骤**: 1. **检查浏览器设置** - 是否允许自动播放音频 - 音量是否静音 2. **验证音频数据** - 确认收到 `output.audio.start` 事件 - 确认收到二进制音频帧 - 确认收到 `output.audio.end` 事件 3. **检查音频解码** - PCM 格式是否正确解析 - AudioContext 是否正确初始化 4. **测试 TTS 服务** - 单独测试 TTS 配置 - 检查 TTS API 状态 --- ## 部署问题 ### Docker 容器启动失败 **症状**:容器无法启动或立即退出。 **排查步骤**: 1. **查看容器日志** ```bash docker logs ``` 2. **检查资源限制** ```bash docker stats ``` 3. **验证配置文件** - 环境变量是否正确 - 配置文件路径是否存在 4. **检查端口冲突** ```bash netstat -an | grep ``` --- ### 页面加载空白 **症状**:浏览器打开页面但内容为空。 **排查步骤**: 1. **检查浏览器控制台** - 打开 F12 开发者工具 - 查看 Console 错误信息 2. **验证静态资源** - 检查 Network 标签页 - 确认 JS/CSS 文件加载成功 3. **检查 API 连接** - 确认 VITE_API_URL 配置正确 - 测试 API 是否可访问 4. **清除缓存** ```bash # 强制刷新 Ctrl + Shift + R ``` --- ## 性能问题 ### 响应延迟高 **症状**:从发送消息到收到回复时间过长。 **排查步骤**: 1. **定位延迟环节** - ASR 处理时间 - LLM 推理时间 - TTS 合成时间 2. **查看性能指标** - 检查 `metrics.ttfb` 事件 - 分析各环节耗时 3. **优化配置** - 使用更快的模型 - 减少 max_tokens - 启用流式输出 4. **检查网络** - 测试到各 API 的延迟 - 考虑使用更近的服务区域 --- ## 日志查看 ### 服务端日志 ```bash # Docker 容器日志 docker logs -f ai-assistant-engine # 查看最近 100 行 docker logs --tail 100 ai-assistant-engine ``` ### 客户端日志 在浏览器开发者工具中: 1. **Console** - 查看 JavaScript 错误和日志 2. **Network** - 查看网络请求和响应 3. **WebSocket** - 查看 WS 消息(在 Network 标签页) ### 启用详细日志 设置环境变量启用调试日志: ```bash # Engine 服务 LOG_LEVEL=debug # API 服务 DEBUG=true ``` ## 获取帮助 如果以上方法无法解决问题: 1. 收集相关日志和错误信息 2. 描述复现步骤 3. 提交 Issue 或联系技术支持