Files
life-echo/api/app/features/conversation/ws/protocol.md

756 B
Raw Blame History

WebSocket 消息协议

连接

  • URL: /ws/conversation/{conversation_id}?token={jwt_access_token}
  • 鉴权: query 参数 tokenJWT access_token

消息类型 (client → server)

  • TEXT: 文本消息
  • AUDIO_SEGMENT: 语音分段
  • AUDIO_MESSAGE: 完整语音消息
  • TRANSCRIBE_ONLY: 仅转写不回复
  • END_CONVERSATION: 结束对话

消息类型 (server → client)

  • TRANSCRIPT: ASR 转写结果
  • AGENT_RESPONSE: AI 回复文本
  • TTS_AUDIO: 语音合成音频 (base64)
  • MEMOIR_UPDATE: 回忆录更新通知
  • ERROR: 错误信息

状态流转

CONNECT → (TEXT|AUDIO_*) ↔ (TRANSCRIPT|AGENT_RESPONSE|TTS_AUDIO) → END_CONVERSATION

重连

客户端断连后可用相同 conversation_id 重连,历史消息从 Redis 恢复。