- Revised site name and description for clarity and detail. - Updated navigation structure to better reflect the organization of content. - Improved changelog entries for better readability and consistency. - Migrated assistant configuration and prompt guidelines to new documentation paths. - Enhanced core concepts section to clarify the roles and capabilities of assistants and engines. - Streamlined workflow documentation to provide clearer guidance on configuration and usage.
163 lines
3.9 KiB
Markdown
163 lines
3.9 KiB
Markdown
# 测试调试
|
||
|
||
本指南介绍如何测试和调试 AI 助手,确保其行为符合预期。
|
||
|
||
## 测试面板
|
||
|
||
在助手详情页,点击 **测试** 按钮打开测试面板。
|
||
|
||
### 功能介绍
|
||
|
||
| 功能 | 说明 |
|
||
|------|------|
|
||
| 文本对话 | 直接输入文字进行测试 |
|
||
| 语音测试 | 使用麦克风进行语音对话 |
|
||
| 查看日志 | 实时查看系统日志 |
|
||
| 事件追踪 | 查看 WebSocket 事件流 |
|
||
|
||
## 测试用例设计
|
||
|
||
### 基础功能测试
|
||
|
||
| 测试项 | 输入 | 预期结果 |
|
||
|--------|------|---------|
|
||
| 问候响应 | "你好" | 友好的问候回复 |
|
||
| 功能介绍 | "你能做什么?" | 准确描述能力范围 |
|
||
| 开场白 | 连接后自动 | 播放配置的开场白 |
|
||
|
||
### 业务场景测试
|
||
|
||
根据助手定位设计测试用例:
|
||
|
||
```
|
||
场景:产品咨询助手
|
||
|
||
测试用例 1:常见问题
|
||
- 输入:"产品有哪些功能?"
|
||
- 预期:准确列出主要功能
|
||
|
||
测试用例 2:价格询问
|
||
- 输入:"多少钱?"
|
||
- 预期:提供价格信息或引导方式
|
||
|
||
测试用例 3:超出范围
|
||
- 输入:"帮我写一首诗"
|
||
- 预期:礼貌拒绝并引导回业务话题
|
||
```
|
||
|
||
### 边界测试
|
||
|
||
| 测试项 | 输入 | 预期结果 |
|
||
|--------|------|---------|
|
||
| 空输入 | "" | 提示用户输入内容 |
|
||
| 超长输入 | 1000+ 字符 | 正常处理或提示过长 |
|
||
| 特殊字符 | "<script>alert(1)</script>" | 安全处理,不执行 |
|
||
| 敏感内容 | 不当言论 | 拒绝回复并提示 |
|
||
|
||
## 日志分析
|
||
|
||
### 查看日志
|
||
|
||
在测试面板的 **日志** 标签页,可以看到:
|
||
|
||
- ASR 识别结果
|
||
- LLM 推理过程
|
||
- TTS 合成状态
|
||
- 工具调用记录
|
||
|
||
### 常见日志
|
||
|
||
```
|
||
[ASR] transcript.final: "你好,请问有什么可以帮你"
|
||
[LLM] request: messages=[...]
|
||
[LLM] response: "您好!我是..."
|
||
[TTS] synthesizing: "您好!我是..."
|
||
[TTS] audio.start
|
||
[TTS] audio.end
|
||
```
|
||
|
||
## 事件追踪
|
||
|
||
在 **事件** 标签页查看完整的 WebSocket 事件流:
|
||
|
||
```json
|
||
{"type": "session.started", "timestamp": 1704067200000}
|
||
{"type": "input.speech_started", "timestamp": 1704067201000}
|
||
{"type": "transcript.delta", "data": {"text": "你"}}
|
||
{"type": "transcript.delta", "data": {"text": "好"}}
|
||
{"type": "transcript.final", "data": {"text": "你好"}}
|
||
{"type": "assistant.response.delta", "data": {"text": "您"}}
|
||
{"type": "assistant.response.final", "data": {"text": "您好!..."}}
|
||
{"type": "output.audio.start"}
|
||
{"type": "output.audio.end"}
|
||
```
|
||
|
||
## 性能指标
|
||
|
||
关注以下性能指标:
|
||
|
||
| 指标 | 说明 | 建议值 |
|
||
|------|------|--------|
|
||
| TTFB | 首字节时间 | < 500ms |
|
||
| 识别延迟 | ASR 处理时间 | < 1s |
|
||
| 回复延迟 | LLM 推理时间 | < 2s |
|
||
| 合成延迟 | TTS 处理时间 | < 500ms |
|
||
|
||
## 常见问题排查
|
||
|
||
### 助手不响应
|
||
|
||
1. **检查连接状态**
|
||
- 确认 WebSocket 连接成功
|
||
- 查看是否收到 `session.started` 事件
|
||
|
||
2. **检查模型配置**
|
||
- 确认 LLM 模型 API Key 有效
|
||
- 测试模型连接是否正常
|
||
|
||
3. **查看错误日志**
|
||
- 打开浏览器开发者工具
|
||
- 检查 Console 和 Network 标签
|
||
|
||
### 回复质量差
|
||
|
||
1. **优化提示词**
|
||
- 增加更明确的指令
|
||
- 添加示例和约束
|
||
|
||
2. **调整温度参数**
|
||
- 降低 temperature 提高一致性
|
||
- 适当值通常在 0.3-0.7
|
||
|
||
3. **补充知识库**
|
||
- 上传相关文档
|
||
- 提高检索相关性
|
||
|
||
### 语音问题
|
||
|
||
1. **ASR 识别不准**
|
||
- 检查麦克风权限
|
||
- 尝试更换 ASR 引擎
|
||
- 添加热词提高识别率
|
||
|
||
2. **TTS 不播放**
|
||
- 检查浏览器自动播放限制
|
||
- 确认 TTS 配置正确
|
||
|
||
## 自动化测试
|
||
|
||
使用自动化测试功能进行批量测试:
|
||
|
||
1. 进入 **自动化测试** 页面
|
||
2. 创建测试任务
|
||
3. 配置测试用例
|
||
4. 运行测试并查看报告
|
||
|
||
详见 [自动化测试](../../analysis/autotest.md)。
|
||
|
||
## 下一步
|
||
|
||
- [自动化测试](../../analysis/autotest.md) - 批量测试
|
||
- [历史记录](../../analysis/history.md) - 查看对话记录
|
||
- [效果评估](../../analysis/evaluation.md) - 评估对话质量
|