Document V2 plan in Chinese

This commit is contained in:
2026-07-06 17:02:16 +08:00
parent 4eac7351a9
commit dbd59a84df
7 changed files with 382 additions and 172 deletions

View File

@@ -0,0 +1,208 @@
# V2 开发流程规划
日期2026-07-06
## 目标
这份文档用于统一 AI 知识库系统 V2 的开发顺序、交付节奏和风险控制方式。它既给开发执行使用,也给项目沟通和阶段验收使用。
V2 的核心目标不是在旧“答疑资产后台”上继续补功能,而是基于新需求重新建立一套“企业飞书知识库 AI 问答系统”。
## 总体原则
1. **先定边界,再写代码**:先把 V2 的模块、数据模型、接口边界和一期范围确定下来。
2. **先主链路,再补管理能力**:优先跑通用户提问到 AI 回答的闭环,再逐步补后台配置和运营能力。
3. **先 mock再接真实外部服务**:短信、飞书检索、大模型都先做可替换 mock保证本地可测再逐个替换为真实服务。
4. **权限先行**:知识库权限是系统底线,不能等后期再补。
5. **文档同步更新**:重要决策、接口变化、范围变化都写入 `development_records/`
6. **每次代码和内容改动都提交并推送**:保持远端仓库可追踪。
## 阶段一:需求和架构收口
### 目标
把新需求从“文档集合”整理成可以执行的工程计划。
### 要做的事
1. 梳理 PRD、SRS、API、数据库、RAG、权限矩阵之间的一致性。
2. 确认一期必须做、一期不做、后续扩展三类范围。
3. 明确 V2 是否在当前仓库中新建应用目录,还是拆独立仓库。
4. 确认数据库选型:按文档使用 MySQL 8.x还是记录原因后沿用 PostgreSQL。
5. 输出 V2 模块划分、目录结构和接口分层方案。
### 交付物
- V2 架构设计记录
- 一期范围清单
- 待确认问题清单
- 数据库和部署选型决策记录
## 阶段二:后端基础工程和数据模型
### 目标
建立 V2 后端的骨架,先把核心领域模型和基础接口跑起来。
### 要做的事
1. 新建 V2 后端目录。
2. 建立配置、日志、数据库连接、异常响应、统一返回结构。
3. 建立核心数据表模型:
- 用户:`sys_user`
- 管理员:`sys_admin`
- 角色:`sys_role`
- 知识库:`sys_knowledge`
- 用户知识库权限:`sys_user_kb`
- 聊天会话:`sys_chat_session`
- 聊天消息:`sys_chat_message`
- Prompt`sys_prompt`
- 模型配置:`sys_model`
- 系统配置:`sys_system_config`
- AI 请求日志:`sys_ai_request_log`
- 操作日志:`sys_operation_log`
4. 建立 mock 短信验证码和 Token 登录能力。
5. 建立管理员登录基础能力。
### 验收标准
- 后端可以本地启动。
- 数据库表可以初始化。
- 用户 mock 登录可以拿到 Token。
- 管理员可以登录后台接口。
- 基础接口有统一错误码和响应结构。
## 阶段三:用户端 H5 主链路
### 目标
优先让用户端“能用”:登录、创建会话、发送问题、看到 AI 回答、查看历史。
### 要做的事
1. 新建或调整 H5 用户端入口。
2. 实现手机号验证码登录页面,先接 mock 短信。
3. 实现首页/会话列表/新建会话。
4. 实现聊天页面:
- 文本输入
- Enter 发送
- Shift+Enter 换行Web
- 自动滚动
- Markdown 渲染
- 停止生成按钮
5. 实现 mock SSE 问答接口,先不依赖真实飞书和模型。
6. 实现聊天历史读取和会话标题修改。
### 验收标准
- 手机端优先体验可用。
- 用户可以完成从登录到提问再到查看回答的闭环。
- 即使外部飞书和模型未接入mock 模式也能完整演示流程。
## 阶段四RAG 和外部服务接入
### 目标
把 mock 问答替换为真实的权限过滤、飞书实时检索、Prompt 组装和大模型流式输出。
### 要做的事
1. 实现用户知识库权限过滤。
2. 实现 FeishuKnowledgeService
- 根据 SpaceID/NodeID 检索知识库
- 处理飞书异常和重试
- 返回可追踪的知识片段
3. 实现 Prompt 组装:
- 系统 Prompt
- 用户问题
- 授权知识片段
- 上下文
4. 实现 ModelClient
- 从启用模型配置读取参数
- 支持流式输出
- 支持超时控制
5. 实现 AI 请求日志。
6. 实现无命中、飞书异常、模型异常的统一提示。
### 验收标准
- 用户只能检索自己有权限的知识库。
- 无命中时不编造答案。
- 飞书异常和模型异常有清晰提示并写日志。
- SSE 流式输出稳定。
- 停止生成可以中断请求,并保留已生成内容。
## 阶段五:管理后台
### 目标
补齐运营和配置能力,让系统可以由后台管理。
### 要做的事
1. 后台登录和基础布局。
2. 首页统计。
3. 用户管理:
- 查询
- 详情
- 启用/禁用
- 批量授权知识库
- 聊天次数配置
4. 管理员管理。
5. 知识库管理:
- 新增
- 编辑
- 删除
- 启用/禁用
6. Prompt 管理。
7. 模型管理。
8. 系统配置。
9. 聊天记录查询和详情。
10. 操作日志。
### 验收标准
- 后台可以完成一期文档要求的主要管理动作。
- 批量操作有二次确认和操作日志。
- 关键配置保存后能影响用户端问答行为。
## 阶段六:测试、验收和部署
### 目标
按测试用例和 UAT 文档进行收口,保证主流程、权限和异常都可验收。
### 要做的事
1.`08-测试用例` 执行功能测试。
2.`09-UAT` 执行业务验收。
3. 重点测试:
- 登录
- 聊天
- 多知识库权限
- 权限过期
- 知识库禁用
- 无命中兜底
- 飞书异常
- 模型异常
- 后台权限
4. 补充部署脚本和部署手册。
5. 明确备份、回滚、日志和配置检查清单。
### 验收标准
- 用户端主链路通过。
- 后台核心管理链路通过。
- 权限隔离通过。
- 异常处理通过。
- 部署流程可复现。
## 建议的第一步
下一步建议先做 **阶段一:需求和架构收口**,具体从这三件事开始:
1. 输出 V2 一期范围清单,明确“必须做”和“暂不做”。
2. 输出 V2 技术架构草案,确定是否新建应用目录、数据库选型、后端/前端模块边界。
3. 输出后端接口优先级,先锁定用户端主链路接口:登录、会话、聊天、历史、停止生成。
这三件事完成后,再开始脚手架和代码开发,风险会低很多。

View File

@@ -1,44 +1,46 @@
# 2026-07-06 Initial Context
# 2026-07-06 初始上下文记录
## Background
## 背景
The project requirement changed significantly on 2026-07-06. The previous implementation focused on a backend/admin MVP for extracting, cleaning, reviewing, and marking "大本营答疑资产" as callable QA assets. The new requirement package defines an **AI 企业知识库问答系统**.
2026-07-06项目需求发生较大变化。旧实现主要围绕“大本营答疑资产后台系统”展开目标是把飞书资料、转写稿或答疑内容经过 AI 清洗、人工审核、标准问答沉淀后,再由人工标记为可调用内容。
## Source Package Archived
新需求包定义的是 **AI 企业知识库问答系统**,核心目标已经变成:基于企业飞书知识库,为内部用户提供带权限控制的 AI 问答能力,并配套完整后台。
The uploaded source documents were copied into:
## 资料归档
原始需求资料已经复制到:
`ai_knowledge_base_v2/source_documents/`
Machine-extracted Markdown files were generated into:
为了方便搜索和开发阅读,已经把 Word/Excel 抽取为 Markdown放到
`ai_knowledge_base_v2/extracted/`
The source package includes PRD, SRS, database design, API design, RAG design, admin prototype notes, implementation plan, test cases, UAT criteria, deployment manual, field dictionary, and permission matrix.
资料包包含 PRDSRS、数据库设计、API 设计、RAG 技术方案、后台原型说明、研发实施计划、测试用例、UAT 验收标准、部署运维手册、字段字典和权限矩阵。
## Current Understanding
## 当前理解
The new system should use Feishu knowledge bases as the only phase-one knowledge source. Each user question should:
新系统一期以飞书知识库作为唯一知识来源。用户每次提问时,系统应该按下面流程处理:
1. Validate user account and daily quota.
2. Resolve the user's authorized knowledge bases.
3. Retrieve content from Feishu in real time.
4. Assemble Prompt from system Prompt, retrieved snippets, user question, and controlled context.
5. Call the configured model.
6. Stream the answer through SSE.
7. Persist question, answer, retrieval snippets, Prompt/model info, token usage, cost, and status.
1. 校验用户账号状态和每日聊天额度。
2. 获取用户已授权且有效的知识库。
3. 基于授权知识库实时检索飞书内容。
4. 使用系统 Prompt、检索片段、用户问题和上下文组装最终 Prompt。
5. 调用当前启用的大模型。
6. 通过 SSE 流式返回回答。
7. 保存用户问题、AI 回答、检索知识库、检索片段、Prompt、模型、Token 消耗、耗时和状态。
## Key Decisions
## 已确定事项
- Create a new `ai_knowledge_base_v2/` workspace instead of mixing V2 records into old docs.
- Preserve all uploaded documents as source artifacts.
- Generate extracted Markdown for searchable project context.
- Treat old code as a reference implementation, not as the direct domain model for V2.
- Prefer reusable technical infrastructure from old code only after matching it against V2 requirements.
- 新建 `ai_knowledge_base_v2/` 工作区,不再把 V2 文档放到旧 `docs/`
- 保留所有上传文档作为原始需求材料。
- 抽取 Markdown 版本作为开发检索材料。
- 旧代码作为参考,不直接把旧领域模型当作 V2 领域模型。
- 给用户、团队、交接和评审看的文档统一使用中文。
## Open Questions
## 待确认问题
- SMS provider is not specified yet. We need a mock provider for local development and a real provider decision before production.
- Final model provider and API compatibility need confirmation.
- Feishu real-time retrieval API details need implementation validation against the actual tenant permissions and knowledge base structure.
- Whether V2 should be created as a sibling app inside this repository or split into a separate repository can be decided after architecture planning.
- 短信验证码供应商暂未确定,开发阶段需要先做 mock 短信服务。
- 最终大模型供应商、API 地址、鉴权方式和模型名称需要确认。
- 飞书知识库的实时检索方式需要尽早做技术验证确认当前租户权限、SpaceID、NodeID 和 API 能力是否满足需求。
- V2 是继续在当前仓库中新建应用目录,还是后续拆成独立仓库,需要在架构规划后确认。

View File

@@ -1,14 +1,14 @@
# Development Records
# 开发过程记录
This folder stores the AI knowledge base V2 development process records.
这个目录用于记录 AI 知识库系统 V2 的开发过程。
Use it for:
适合放置:
- scope decisions
- architecture decisions
- implementation plans
- daily or milestone notes
- unresolved questions
- test and acceptance observations
- 需求范围决策
- 架构设计决策
- 开发实施计划
- 每日或阶段性记录
- 待确认问题
- 测试、验收和风险记录
Do not store these records in the old `hy_qa_asset_backend/docs` folder. That folder belongs to the earlier "答疑资产后台系统" phase.
注意V2 的开发记录不要再放到旧的 `hy_qa_asset_backend/docs` 目录。旧目录属于上一阶段“答疑资产后台系统”。