# Clare AI Agent:前后端配合说明 & Podcast 集成到独立网站 ## 一、前后端需要配合做什么 整体上:**前端负责 UI 和用户操作,后端负责会话状态、RAG、LLM 调用和音频生成**。具体分工如下。 ### 1. 会话与身份 | 能力 | 后端 | 前端 | |------|------|------| | 登录 | `POST /api/login` 校验并建立会话(内存里存 `user_id`) | 收集姓名/ID,调用 login,存 `user`(如 `user_id` = email) | | 会话状态 | 按 `user_id` 存 history、course_outline、weaknesses、cognitive_state、上传文件等 | 所有需要会话的请求都带 `user_id`(如 `user.email`) | ### 2. 对话与内容 | 能力 | 后端 | 前端 | |------|------|------| | 对话 | `POST /api/chat`:RAG 检索 + LLM 生成,返回回复 + 可选 references | 发 message、learning_mode、language_preference,渲染回复和引用 | | 上传 | `POST /api/upload`:解析文件、更新该用户的 course_outline / RAG chunks | 选文件、doc_type,上传后刷新侧边栏/状态 | | 导出 | `POST /api/export`:根据当前会话 history 生成 Markdown 文本 | 调 export,展示或下载文本 | | 总结 | `POST /api/summary`:对当前会话做总结,返回 Markdown | 调 summary,展示在右侧或弹窗 | ### 3. 音频(TTS / Podcast) | 能力 | 后端 | 前端 | |------|------|------| | TTS | `POST /api/tts`:接收一段 text,调用 OpenAI TTS,返回 **MP3 二进制**(`audio/mpeg`) | 传 `user_id` + `text`,用 `response.blob()` 得到 Blob → `URL.createObjectURL(blob)` 给 `