Files
life-echo/api/docs/文字交流模式说明.md
徐在坤 ebfd705b93 feat: 添加Docker和部署配置
- 添加Dockerfile用于容器化部署
- 添加docker-compose.yml用于本地开发环境
- 添加build.sh构建脚本
- 添加README.md项目文档
- 添加API文档
2026-01-18 15:58:05 +08:00

3.1 KiB
Raw Blame History

文字交流模式说明

概述

当前系统已配置为纯文字交流模式暂时不接通语音模块ASR/TTS。用户可以通过WebSocket发送文字消息与AI进行对话系统会自动将对话记录整理成书的多个章节。

功能特性

1. 文字对话

  • 用户通过WebSocket发送 TEXT 类型的消息
  • AI Agent 生成文字回应
  • 所有对话记录保存到数据库

2. 章节自动整理

  • 对话结束后,系统自动调用 Memory Agent
  • 将对话段落整理成结构化的章节
  • 章节按类别分类(童年、教育、职业、家庭、信念、总结等)

3. 用户认证

  • 所有操作需要用户登录
  • 使用JWT访问令牌进行认证
  • WebSocket连接需要传递token参数

WebSocket 消息格式

客户端发送

文字消息

{
  "type": "text",
  "conversation_id": "conversation-id",
  "data": {
    "text": "我小时候住在北京"
  },
  "timestamp": "2024-01-15T10:30:00.000Z"
}

结束对话

{
  "type": "end_conversation",
  "conversation_id": "conversation-id"
}

服务端返回

连接确认

{
  "type": "connect",
  "conversation_id": "conversation-id",
  "data": {
    "status": "connected"
  },
  "timestamp": "2024-01-15T10:30:00.000Z"
}

Agent 回应

{
  "type": "agent_response",
  "conversation_id": "conversation-id",
  "data": {
    "text": "听起来很有趣!能告诉我更多关于你在北京的生活吗?"
  },
  "timestamp": "2024-01-15T10:30:05.000Z"
}

对话结束确认

{
  "type": "end_conversation",
  "conversation_id": "conversation-id",
  "data": {
    "status": "ended"
  },
  "timestamp": "2024-01-15T10:35:00.000Z"
}

使用流程

1. 用户注册/登录

POST /api/auth/register
{
  "phone": "13800138000",
  "password": "password123",
  "nickname": "用户昵称"
}

# 返回 access_token 和 refresh_token

2. 创建对话

POST /api/conversations
Authorization: Bearer {access_token}

# 返回 conversation_id

3. 连接 WebSocket

ws://localhost:8000/ws/conversation/{conversation_id}?token={access_token}

4. 发送文字消息

发送 TEXT 类型消息,接收 AGENT_RESPONSE 回应

5. 结束对话

发送 END_CONVERSATION 消息,系统自动整理章节

6. 查看章节

GET /api/chapters
Authorization: Bearer {access_token}

已移除的功能

  • 音频块处理(AUDIO_CHUNK
  • 语音转文字ASR
  • 文字转语音TTS
  • 转写结果消息(TRANSCRIPT
  • TTS音频消息TTS_AUDIO

保留的功能

  • 文字消息处理(TEXT
  • Agent 文字回应(AGENT_RESPONSE
  • 对话阶段检测
  • 章节自动整理
  • 用户认证
  • 对话管理

注意事项

  1. WebSocket 连接必须提供 tokenws://.../ws/conversation/{id}?token={access_token}
  2. 所有对话记录都会保存:用于后续章节整理
  3. 章节整理在对话结束时触发:发送 END_CONVERSATION 消息
  4. 章节按类别自动分类:系统会根据内容自动判断章节类别