Add V2 RAG answer skeleton
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# 阶段二记录:RAG 问答链路骨架
|
||||
|
||||
日期:2026-07-06
|
||||
|
||||
## 本次目标
|
||||
|
||||
把用户端 `/chat/completions` 从单一 mock 回复,升级为可替换的问答服务链路。当前仍不接真实飞书和真实大模型,但先把权限过滤、检索、Prompt、模型调用和 AI 请求日志的职责拆出来。
|
||||
|
||||
## 已完成
|
||||
|
||||
- 新增知识库权限服务 `KnowledgeAccessService`:
|
||||
- 优先读取用户已授权、未禁用、未过期的知识库。
|
||||
- 开发阶段如果没有配置知识库授权,允许通过 `MOCK_RAG_ENABLED=true` 使用默认 mock 知识库,方便本地演示。
|
||||
- 新增 RAG 服务 `RagService`:
|
||||
- 负责构建用户可访问知识库范围。
|
||||
- 负责调用 mock 飞书知识库检索。
|
||||
- 负责组装 Prompt。
|
||||
- 新增模型服务 `ModelClientService`:
|
||||
- 优先读取当前启用模型配置。
|
||||
- 当前返回 mock 模型答案,后续替换为真实大模型流式调用。
|
||||
- 新增 AI 请求日志服务 `AiRequestLogService`:
|
||||
- 每次问答记录 session、message、user、model、prompt、knowledge_ids、命中数、token 估算、耗时和状态。
|
||||
- 更新聊天服务:
|
||||
- `/chat/completions` 已接入 RAG 骨架。
|
||||
- 提问前校验用户每日额度。
|
||||
- 提问成功后增加 `daily_chat_used`。
|
||||
- 保存用户消息、助手消息和 AI 请求日志。
|
||||
|
||||
## 当前 mock 规则
|
||||
|
||||
- 问题命中 mock 文档关键词时,返回基于知识片段整理的 Markdown 文本。
|
||||
- 问题没有命中任何知识片段时,固定返回:
|
||||
|
||||
```text
|
||||
当前知识库中未检索到相关内容,请联系管理员补充相关知识。
|
||||
```
|
||||
|
||||
## 当前边界
|
||||
|
||||
- 真实飞书知识库 API 尚未接入。
|
||||
- 真实大模型 API 尚未接入。
|
||||
- 每日额度目前使用 `sys_user.daily_chat_used` 简单计数,尚未做按自然日自动重置。
|
||||
- 停止生成接口仍是占位能力,后续接真实流式模型时再实现中断状态。
|
||||
|
||||
## 后续建议
|
||||
|
||||
1. 补前端 Markdown 渲染,让 mock RAG 的结构化回答在手机端可读。
|
||||
2. 做飞书知识库接口技术验证脚本,确认 SpaceID、NodeID、权限和返回结构。
|
||||
3. 接入后台 Prompt 和模型配置管理页面。
|
||||
4. 把每日额度改为按日期维度统计,避免长期累加。
|
||||
|
||||
## 验证记录
|
||||
|
||||
- `python -m compileall app` 已通过。
|
||||
- FastAPI OpenAPI 导入检查已通过,当前仍为 13 个接口路径。
|
||||
- Alembic MySQL 静态迁移 SQL 生成已通过。
|
||||
- RAG/模型服务级验证已通过:
|
||||
- 命中问题可以返回带来源的 mock 回答。
|
||||
- 无命中问题会返回固定兜底文案。
|
||||
- SQLite 内存库不适合完整模拟当前 MySQL `BIGINT AUTO_INCREMENT` 主键行为,因此本次未使用 SQLite 做完整聊天端到端写库测试。
|
||||
@@ -28,3 +28,4 @@
|
||||
| `2026-07-06-phase2-backend-foundation.md` | 阶段二后端基础工程第一批记录。 |
|
||||
| `2026-07-06-phase2-user-client.md` | 阶段二用户端 Vue 3 H5 第一批记录。 |
|
||||
| `2026-07-06-phase2-dev-compose.md` | 阶段二本地开发编排记录。 |
|
||||
| `2026-07-06-phase2-rag-skeleton.md` | 阶段二 RAG 问答链路骨架记录。 |
|
||||
|
||||
Reference in New Issue
Block a user