- 添加Dockerfile用于容器化部署 - 添加docker-compose.yml用于本地开发环境 - 添加build.sh构建脚本 - 添加README.md项目文档 - 添加API文档
104 lines
2.3 KiB
Markdown
104 lines
2.3 KiB
Markdown
# 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`
|