Files
rag/docs/数据归属与协作方案.md
lacerate551 100d1a06eb init: RAG 知识库服务初始提交
- 后端 API(Flask + Gunicorn)
- RAG 引擎(混合检索 + 云端 Reranker + 引用溯源)
- 文档解析(MinerU + 多格式支持)
- Docker 生产部署配置
- 排除前端项目、敏感配置、模型文件
2026-06-04 17:35:27 +08:00

7.7 KiB
Raw Blame History

RAG 系统数据归属与前后端协作方案

文档类型: 架构设计 创建日期: 2026-04-13 状态: 已确认 目标: 梳理数据存储归属、明确前后端组与 RAG 组的职责边界


一、数据存储清单

1.1 当前系统中的所有数据库

数据库文件 存储内容 表数量
data/sessions.db 会话管理 2 表
data/exam_local.db 出题批卷 5 表
data/feedback.db 问答质量闭环 4 表
data/outline_cache.db 纲要缓存 3 表
data/sync_data.db 同步服务 5 表
data/exam_analysis.db 题库分析 7 表
knowledge/vector_store/chroma/ 向量数据库 9 集合

1.2 涉及用户信息的数据

数据库 用户字段 敏感程度
sessions.db sessions user_id 仅ID
sessions.db messages 通过session关联
feedback.db feedbacks user_id
sync_data.db subscriptions user_id
sync_data.db notifications user_id
exam_local.db student_answers student_id
exam_local.db grade_reports student_id

二、数据归属划分

2.1 前后端组管理的数据

数据类型 说明
用户账户信息 账号、密码、个人信息
用户认证 Token Token 生成与验证
权限角色定义 角色与权限的映射关系
组织架构 部门、岗位信息
业务主数据 学生学籍、课程安排等

存储:前后端组的用户数据库/认证系统 传递方式:通过网关注入 HTTP Header

2.2 RAG 组管理的数据

数据类型 说明
向量数据库 所有知识库向量
文档内容 PDF/Word/Excel 原始文件
题目与试卷数据 出题相关
批阅报告 考试批卷结果
知识点与关联关系 题库分析
文档变更追踪 同步服务
会话历史 对话记录
纲要与缓存 文档结构化数据

存储:本地 SQLite + ChromaDB


三、核心原则

原则 说明
用户认证归前后端 登录、密码、Token 生成由前后端组负责
业务数据归 RAG 与知识库、出题、批卷相关的数据由 RAG 组管理
用户 ID 作为关联键 使用 user_id 关联两边数据,不存储完整用户信息
网关传递用户信息 通过 HTTP Header 注入RAG 系统不实现登录

四、数据流向图

4.1 用户信息流向

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   用户登录   │────▶│  前后端认证  │────▶│  网关注入    │
│             │     │  系统       │     │  Header     │
└─────────────┘     └─────────────┘     └──────┬──────┘
                           │                   │
                           ▼                   ▼
                    ┌─────────────┐     ┌─────────────┐
                    │ 用户数据库   │     │  RAG 系统    │
                    │ (前后端组)   │     │  接收用户信息 │
                    │             │     │             │
                    │ • 账号密码   │     │ • X-User-ID │
                    │ • 个人信息   │     │ • X-User-Role│
                    │ • 角色权限   │     │ • X-User-Dept│
                    └─────────────┘     └──────┬──────┘
                                               │
                                               ▼
                                        ┌─────────────┐
                                        │  RAG 数据库  │
                                        │             │
                                        │ 存储 user_id │
                                        │ 不存用户详情 │
                                        └─────────────┘

五、接口协作

5.1 前后端组调用 RAG 系统的接口

场景 API Header 需要
用户聊天 POST /chat/rag X-User-ID, X-User-Role
获取历史 GET /sessions, GET /history/<id> X-User-ID
上传文档 POST /documents/upload X-User-ID, X-User-Role, X-User-Department
出题 POST /exam/generate X-User-ID, X-User-Role
批卷 POST /exam/grade X-User-ID, X-User-Role

5.2 RAG 系统调用前后端组的接口

需要前后端组提供

GET /api/users/{user_id}

响应:
{
  "user_id": "xxx",
  "username": "用户名",
  "name": "真实姓名",
  "role": "admin/manager/user",
  "department": "部门名称"
}

六、确认结果

用户选择

问题 用户选择 说明
会话历史归属 RAG组管理 会话历史由 RAG 系统存储,前后端组通过 API 查询
学生姓名处理 存ID调接口 只存储 student_id需要时调用前后端接口获取姓名
需要的前后端接口 获取用户信息接口 需要前后端组提供根据 user_id 获取用户信息的 API

RAG 系统需要修改的地方

修改项 文件 说明
学生答卷存储 exam_pkg/manager.py 改为只存储 student_id不存 student_name
批阅报告生成 exam_pkg/manager.py 生成报告时调用前后端接口获取姓名
用户信息获取 services/user_info.py(新建) 封装调用前后端接口的逻辑

七、最终方案

┌─────────────────────────────────────────────────────────────────────────┐
│  前后端组                               │  RAG 组                        │
├─────────────────────────────────────────┼─────────────────────────────────┤
│  ✓ 用户账户与认证                       │  ✓ 知识库与向量存储              │
│  ✓ 权限角色管理                         │  ✓ 会话历史存储                  │
│  ✓ 组织架构数据                         │  ✓ 题目试卷管理                  │
│  ✓ 业务主数据(学生/课程等)             │  ✓ 批阅报告(仅存 student_id   │
│  ✓ 网关配置                             │  ✓ 反馈与质量分析                │
│  ✓ 提供用户信息查询 API                 │  ✓ 文档变更追踪                  │
├─────────────────────────────────────────┴─────────────────────────────────┤
│  数据关联:通过 user_id / student_id                                      │
│  RAG 系统调用前后端 API 获取用户详情                                       │
└─────────────────────────────────────────────────────────────────────────┘