# CamTalk 设计文档

CamTalk 是一款多模态实时 AI 视觉对话助手。用户通过摄像头和麦克风与 AI 交互，AI 理解视觉场景和语音输入后，以文字和语音形式给出自然回应。

## 文档索引

| 文档 | 说明 |
|------|------|
| [01-架构设计](01-架构设计.md) | 系统架构、技术栈、模块设计、数据库、部署架构（含 Mermaid 图） |
| [02-接口文档](02-接口文档.md) | WebSocket 协议、REST API、AI 服务层、Eino 编排器、Session Manager、配置管理、数据模型、错误码 |
| [03-技术选型](03-技术选型.md) | 各技术的选型对比与决策理由（含 Eino 框架选型、关键技术术语） |
| [04-用户故事](04-用户故事.md) | P0/P1/P2 用户故事、验收标准 |
| [05-语音交互](05-语音交互.md) | VAD → STT → LLM → TTS 全链路、延迟优化 |
| [06-视觉理解](06-视觉理解.md) | 帧采样策略、图像编码、多模态 LLM 输入机制 |
| [07-成本控制](07-成本控制.md) | 智能采样、端云协同、模型分级、缓存复用 |
| [08-Eino框架与编排设计](08-Eino框架与编排设计.md) | Eino 框架核心概念、Graph 设计、节点实现、测试策略 |
| [09-情景切换](09-情景切换.md) | 多情景 AI 角色扮演系统（面试官、英语老师、辩论对手、翻译员、自由对话） |
| [10-鉴权体系](10-鉴权体系.md) | JWT 双 token 轮转认证、bcrypt 密码哈希、Refresh Token Rotation、安全机制 |
| [11-令牌桶限流](11-令牌桶限流.md) | 令牌桶限流算法、内存/Redis 双实现、Gin 中间件、WebSocket query 限流 |
| [12-自定义情景](12-自定义情景.md) | 用户自定义情景的完整设计 |
| [13-日志追踪](13-日志追踪.md) | 全链路日志追踪系统（trace ID、敏感内容保护、日志规范） |


## 推荐阅读顺序

1. **01-架构设计** — 理解三层架构、技术栈和模块全貌
2. **02-接口文档** — 前后端通信契约，实现时的最高依据
3. **03-技术选型** — 了解为什么选这些技术（含 Eino 框架、关键技术术语）
4. **04-用户故事** — 明确功能优先级
5. **05~07** — 各技术领域的详细设计
6. **08-Eino框架与编排设计** — Eino 框架核心概念、Graph 编排、节点实现
7. **09-情景切换** — 多情景 AI 角色扮演系统
8. **10-鉴权体系** — 认证授权机制详细设计
9. **11-令牌桶限流** — 速率限制设计
10. **12-自定义情景** — 用户自定义情景
11. **13-日志追踪** — 全链路日志追踪（trace ID、敏感内容保护、开发参考）

## 功能扩展方向

以下是未来可能的功能创意和扩展方向：

1. **视频录制** — 支持录制对话过程中的视频画面
2. **对话翻译** — 实时多语言翻译能力
3. **对话总结** — 自动生成对话摘要和关键点
4. **手动对话功能** — 支持用户手动触发对话而非自动 VAD
5. **视频框自定义** — 视频框大小可调整，支持最小化和拖动

