Files
life-echo/api/docs/WebSocket快速测试指南.md

104 lines
2.3 KiB
Markdown
Raw Normal View History

# Life Echo WebSocket 快速测试指南
## 🚀 快速开始
### 1. 连接地址
```
ws://localhost:8000/ws/conversation/{conversation_id}
```
### 2. 生成对话ID
```bash
# Python
python -c "import uuid; print(uuid.uuid4())"
# 或使用在线工具https://www.uuidgenerator.net/
```
### 3. 在 Apifox 中操作
1. **新建 WebSocket 请求**
- 协议WebSocket
- URL`ws://localhost:8000/ws/conversation/你的对话ID`
2. **点击连接**
- 应该立即收到 `connect` 消息
3. **发送音频块**
```json
{
"type": "audio_chunk",
"conversation_id": "你的对话ID",
"data": {
"audio_base64": "UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAAB9AAACABAAZGF0YQAAAAA="
}
}
```
4. **接收响应**(按顺序)
- `transcript` - 语音转文字
- `agent_response` - Agent 回应
- `tts_audio` - TTS 音频
5. **结束对话**
```json
{
"type": "end_conversation",
"conversation_id": "你的对话ID"
}
```
---
## 📋 消息类型速查
### 客户端发送
| 类型 | 说明 | JSON 示例 |
|------|------|-----------|
| `audio_chunk` | 发送音频 | `{"type":"audio_chunk","data":{"audio_base64":"..."}}` |
| `end_conversation` | 结束对话 | `{"type":"end_conversation"}` |
### 服务端返回
| 类型 | 说明 | 包含字段 |
|------|------|---------|
| `connect` | 连接确认 | `data.status` |
| `transcript` | 语音转文字 | `data.text` |
| `agent_response` | Agent 回应 | `data.text` |
| `tts_audio` | TTS 音频 | `data.audio_base64` |
| `end_conversation` | 结束确认 | `data.status` |
| `error` | 错误信息 | `data.message` |
---
## 🧪 测试场景
### 场景1基础对话
1. 连接 → 2. 发送音频 → 3. 接收3条响应 → 4. 结束对话
### 场景2多轮对话
重复场景1的步骤2-3多次
### 场景3错误处理
发送无效的 `audio_base64` 数据,查看 `error` 消息
---
## ⚠️ 常见问题
**Q: 连接失败?**
A: 检查后端服务是否运行:`curl http://localhost:8000/health`
**Q: 收不到响应?**
A: 检查消息格式和必需字段,查看后端日志
**Q: 音频处理失败?**
A: 检查音频格式和 Base64 编码,确保 ASR/TTS 服务配置正确
---
## 📝 完整文档
详细测试文档请参考:`WebSocket测试文档.md`