版本 0.10 API 接口设计
生成时间:2026-01-09 18:53:39
最后更新:2026-01-13 (WebSocket 实时对话协议)
YOLOX 项目 API 设计方案 (v0.10)
本方案基于 React Native 前端、Golang (Eino) 后端、PostgreSQL 关系数据库及 Milvus 向量数据库构建,旨在实现用户冷启动、动态 Prompt 对话及 Memory 管理核心逻辑。
API 分类说明
| 类型 | 路径前缀 | 说明 |
|---|---|---|
| 对外 API | /api/v1/* | Mobile App 调用,由 Backend 提供 |
| 内部 API | /internal/v1/* | Backend ↔ RAG 服务间调用 |
1. 认证与用户模块
1.1 发送验证码
- 路径:
/api/v1/auth/send-code - 方法:
POST - 描述: 向指定手机号发送登录/注册验证码(6位数字,有效期5-10分钟)。
- 请求体:
{
"phone_number": "+8613812345678"
}
- 响应体:
{
"status": "success",
"message": "验证码已发送",
"expires_in": 600
}
- 错误响应:
400: 手机号格式错误429: 发送频率过高(如1分钟内重复发送)
1.2 验证码登录/注册
- 路径:
/api/v1/auth/login - 方法:
POST - 描述: 使用手机号和验证码进行登录(新用户自动注册)。需要先验证邀请码(如果社区处于邀请制阶段)。
- 请求体:
{
"phone_number": "+8613812345678",
"code": "123456",
"invitation_code": "INVITE20260109ABC" // 可选,邀请制阶段必填
}
- 响应体:
{
"status": "success",
"user_id": "uuid-xxx",
"token": "jwt-token-xxx",
"is_new_user": true,
"is_onboarded": false
}
- 错误响应:
400: 验证码错误或已过期403: 邀请码无效、已使用或已过期404: 手机号未注册(如果仅支持登录,不支持注册)
1.3 验证邀请码(可选独立接口)
- 路径:
/api/v1/auth/verify-invitation - 方法:
POST - 描述: 在注册前验证邀请码是否有效(可选,也可在登录接口中一并验证)。
- 请求体:
{
"invitation_code": "INVITE20260109ABC"
}
- 响应体:
{
"status": "valid",
"code": "INVITE20260109ABC",
"expires_at": "2026-02-09T00:00:00Z"
}
- 错误响应:
400: 邀请码格式错误403: 邀请码已使用或已过期404: 邀请码不存在
1.4 用户冷启动提交
- 路径:
/api/v1/user/onboarding - 方法:
POST - 描述: 提交新用户问卷结果,初始化用户画像并触发首次话题推荐。
- 请求体:
{
"answers": [
{"question_id": "q1", "selected_options": ["opt_a"]},
{"question_id": "q2", "selected_options": ["opt_b", "opt_c"]}
],
"channel": "xiaohongshu"
}
- 响应体:
{
"status": "success",
"recommended_topics": [
{
"topic_id": "t_001",
"title": "分手后的深夜难熬时刻",
"cover_url": "https://r2.yolox.ai/assets/t1.png",
"level": "banner",
"button_text": "开始倾诉"
}
]
}
2. 话题与 Feed 模块
2.1 获取话题 Feed
- 路径:
/api/v1/topics/feed - 方法:
GET - 描述: 基于用户 Memory 和配置获取个性化话题列表。
- 请求参数:
page,page_size - 响应体:
{
"items": [
{
"topic_id": "t_002",
"title": "职场倦怠:我在逃避什么?",
"cover_url": "https://r2.yolox.ai/assets/t2.png",
"level": "normal",
"reason": "基于你最近提到的职业压力"
}
],
"next_cursor": "..."
}
3. 对话 (Jot) 模块
技术选型:对话模块采用 WebSocket 实现全双工实时通信,支持文本消息、流式 AI 回复、状态推送,并为后续双工语音通话预留扩展能力。
3.1 创建/进入会话 (HTTP)
- 路径:
/api/v1/chat/session - 方法:
POST - 描述: 根据话题 ID 初始化对话,获取 session_id 和欢迎语。
- 请求体:
{
"topic_id": "t_001",
"entry_point": "homepage_long_press"
}