diff --git a/ai_knowledge_base_v2/README.md b/ai_knowledge_base_v2/README.md new file mode 100644 index 0000000..3004405 --- /dev/null +++ b/ai_knowledge_base_v2/README.md @@ -0,0 +1,29 @@ +# AI Knowledge Base V2 Workspace + +This folder is the new workspace for the changed requirement: **AI 企业知识库问答系统**. + +It is intentionally separated from the existing `hy_qa_asset_backend/docs` folder because the old implementation was an MVP for "大本营答疑资产后台系统", while the new requirement is a broader AI knowledge base product with login, permission control, chat sessions, admin management, Feishu real-time retrieval, and RAG. + +## Directory Layout + +- `source_documents/`: original PRD, SRS, API, database, RAG, prototype, plan, test, UAT, deployment, data dictionary, and permission matrix files. +- `extracted/`: machine-extracted Markdown versions of the source documents for search and review. +- `development_records/`: new project development notes, decisions, scope records, and future implementation logs. +- `reports/`: assessment and design reports for this new version. + +## Current Goal + +Build a new version based on the uploaded AI knowledge base requirement package: + +- User side: phone/SMS login, AI chat, sessions, history, streaming response, stop generation, Markdown rendering, and knowledge permission filtering. +- Admin side: admin login, user management, admin management, knowledge base management, Prompt management, model management, chat records, dashboard, system config, and operation logs. +- AI/RAG: Feishu knowledge base as the only knowledge source in phase one, real-time retrieval per question, permission-based knowledge filtering, Prompt assembly, model invocation, SSE streaming, and AI request logging. +- Phase-one exclusions: file upload, OCR, image understanding, web search, local vector database sync, payment, course system, automatic authorization, multi-tenant, multi-Prompt, regenerate answer, and edit message. + +## Working Principles + +- Keep this version additive and isolated until the architecture decision is confirmed. +- Do not put new planning records into the old `hy_qa_asset_backend/docs` directory. +- Treat the uploaded documents as the source of truth for V2. +- Record major implementation decisions in `development_records/` before or alongside code changes. +- Reuse old code only where the domain boundary still matches; do not force old "QA asset review" models into the new "AI knowledge base chat" model. diff --git a/ai_knowledge_base_v2/development_records/2026-07-06-initial-context.md b/ai_knowledge_base_v2/development_records/2026-07-06-initial-context.md new file mode 100644 index 0000000..b67f72b --- /dev/null +++ b/ai_knowledge_base_v2/development_records/2026-07-06-initial-context.md @@ -0,0 +1,44 @@ +# 2026-07-06 Initial Context + +## 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 企业知识库问答系统**. + +## Source Package Archived + +The uploaded source documents were copied into: + +`ai_knowledge_base_v2/source_documents/` + +Machine-extracted Markdown files were generated into: + +`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. + +## 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. + +## 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. + +## 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. diff --git a/ai_knowledge_base_v2/development_records/README.md b/ai_knowledge_base_v2/development_records/README.md new file mode 100644 index 0000000..6a9c5ce --- /dev/null +++ b/ai_knowledge_base_v2/development_records/README.md @@ -0,0 +1,14 @@ +# Development Records + +This folder stores the AI knowledge base V2 development process records. + +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. diff --git a/ai_knowledge_base_v2/extracted/02-AI知识库系统系统功能规格说明书_SRS_V10.md b/ai_knowledge_base_v2/extracted/02-AI知识库系统系统功能规格说明书_SRS_V10.md new file mode 100644 index 0000000..c65d9f8 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/02-AI知识库系统系统功能规格说明书_SRS_V10.md @@ -0,0 +1,1443 @@ +# 02-AI知识库系统系统功能规格说明书(SRS)V1.0.docx + +《02-AI知识库系统系统功能规格说明书(SRS)》 + +版本:V1.0 + +文档类型:Software Requirements Specification(SRS) + +依据文档:PRD V1.0 + +编写日期:2026-07-06 + +## 第一章 文档说明 + +### 1.1 编写目的 + +本文档用于指导研发、测试及实施团队进行系统开发。 + +与 PRD 的区别: + +PRD:说明"做什么" + +SRS:说明"怎么做" + +SRS 将细化到: + +页面 + +按钮 + +字段 + +接口行为 + +权限 + +状态流转 + +异常处理 + +验收标准 + +## 第二章 系统模块 + +系统划分为九个模块: + +## 第三章 登录模块 + +### 3.1 页面 + +手机号 + +_________________ + +验证码 + +_________________ + +【发送验证码】 + +【立即登录】 + +### 3.2 字段定义 + +#### 手机号 + +#### 验证码 + +### 3.3 按钮 + +#### 发送验证码 + +点击后: + +手机号是否合法? + +↓ + +合法 + +↓ + +发送短信 + +↓ + +按钮倒计时60秒 + +异常: + +#### 登录 + +点击: + +手机号 + +↓ + +验证码 + +↓ + +校验 + +↓ + +首次登录? + +↓ + +自动创建账号 + +↓ + +账号状态 + +↓ + +账号有效期 + +↓ + +登录成功 + +### 3.4 登录成功 + +系统: + +签发 Token + +保存登录时间 + +更新最后登录时间 + +跳转首页 + +### 3.5 登录失败 + +包括: + +验证码错误 + +验证码过期 + +账号禁用 + +账号已过期 + +## 第四章 首页 + +### 页面布局 + +LOGO + ++ 新聊天 + +———————————— + +历史聊天 + +———————————— + +直播运营 + +客服 + +SOP + +…… + +———————————— + +个人中心 + +退出登录 + +### 新建聊天 + +点击: + +创建: + +新聊天 + +进入: + +空白聊天页面。 + +### 删除聊天 + +点击: + +删除 + +弹窗: + +确认删除? + +取消 + +确定 + +点击确定: + +仅隐藏。 + +数据库保留。 + +## 第五章 AI聊天模块 + +### 页面布局 + +标题 + +聊天区域 + +用户消息 + +AI消息 + +—————————— + +输入框 + +发送 + +### 输入框 + +支持: + +中文 + +英文 + +Markdown + +不支持: + +图片 + +PDF + +Word + +Excel + +#### Enter + +行为: + +发送消息。 + +#### Shift+Enter + +行为: + +换行。 + +### 点击发送 + +执行: + +检查聊天次数 + +↓ + +检查登录状态 + +↓ + +检查账号状态 + +↓ + +检查知识库权限 + +↓ + +检索飞书 + +↓ + +组织Prompt + +↓ + +调用模型 + +↓ + +Streaming + +↓ + +保存记录 + +### AI回复 + +支持: + +Markdown + +有序列表 + +无序列表 + +表格 + +代码块 + +#### Streaming + +状态: + +□□□□□□□□□□ + +#### 停止生成 + +持续: + +直到: + +模型结束。 + +#### 停止生成 + +点击: + +立即: + +取消请求。 + +保留: + +已生成内容。 + +#### 回复完成 + +系统: + +自动保存: + +用户消息 + +AI消息 + +更新: + +会话时间。 + +## 第六章 会话管理模块 + +### 6.1 功能概述 + +系统支持用户创建多个独立会话,每个会话拥有独立上下文。 + +每个会话包含: + +会话ID + +会话标题 + +创建时间 + +更新时间 + +消息数量 + +状态 + +### 6.2 会话生命周期 + +新建会话 + +│ + +▼ + +默认标题:新聊天 + +│ + +▼ + +第一轮问答完成 + +│ + +▼ + +AI自动生成标题 + +│ + +▼ + +持续聊天 + +│ + +▼ + +用户删除 + +│ + +▼ + +前端隐藏 + +(数据库永久保存) + +### 6.3 新建会话 + +点击按钮 + ++ 新聊天 + +系统执行: + +创建会话 + +默认标题:"新聊天" + +创建时间=当前时间 + +消息数=0 + +打开聊天页面 + +### 6.4 自动命名 + +触发条件: + +第一轮 AI 回复完成。 + +生成规则: + +Prompt: + +请根据本次聊天内容生成一个10~20字以内的中文标题,不添加标点,不使用"关于"等冗余词。 + +例如: + +用户: + +如何提高直播间停留时长? + +标题: + +直播间停留时长优化 + +### 6.5 修改标题 + +点击: + +✏ 编辑 + +支持: + +最长50字符 + +即时保存 + +不影响聊天记录 + +### 6.6 删除会话 + +点击: + +删除 + +弹窗: + +确认删除? + +取消 + +确定 + +点击确定: + +系统: + +前端: + +隐藏 + +后台: + +deleted=1 + +聊天永久保留 + +## 第七章 聊天记录模块 + +### 7.1 数据保存规则 + +每次提问保存: + +#### 用户消息 + +#### AI消息 + +保存: + +后台额外保存: + +检索知识库 + +检索片段 + +Prompt + +引用来源 + +### 7.2 上下文 + +后台配置: + +#### 方式一: + +Token + +8192 + +#### 方式二: + +最近10轮 + +推荐: + +按 Token。 + +### 7.3 消息状态 + +状态: + +WAITING + +↓ + +GENERATING + +↓ + +FINISHED + +异常: + +WAITING + +↓ + +TIMEOUT + +或: + +WAITING + +↓ + +STOPPED + +## 第八章 后台首页 + +### 页面布局 + +──────────────────────── + +今日聊天次数 + +今日新增用户 + +今日活跃用户 + +模型Token消耗 + +──────────────────────── + +知识库排行榜 + +──────────────────────── + +时间: + +今天 + +最近7天 + +自定义 + +──────────────────────── + +### 卡片说明 + +#### 总用户 + +统计: + +数据库用户数量。 + +#### 今日新增 + +统计: + +今天注册成功人数。 + +#### 今日活跃 + +统计: + +今天至少聊天一次。 + +#### 今日聊天次数 + +统计: + +今日消息数。 + +#### Token消耗 + +统计: + +模型: + +Input Token + +Output Token + +#### 排行榜 + +排序: + +按使用次数。 + +字段: + +排名 + +知识库 + +次数 + +## 第九章 用户管理 + +### 页面 + +手机号 + +姓名 + +状态 + +搜索 + +────────────────────── + +列表 + +────────────────────── + +批量操作 + +### 查询条件 + +支持: + +√ 手机号 + +√ 姓名 + +√ 状态 + +### 用户列表 + +字段: + +### 编辑用户 + +可修改: + +姓名 + +状态 + +账号开始时间 + +账号结束时间 + +每日聊天次数 + +### 权限 + +页面: + +知识库 + +☑ 直播 + +☑ 客服 + +□ SOP + +□ 运营 + +支持: + +开始时间 + +结束时间 + +永久 + +### 批量功能 + +支持: + +√ 批量授权 + +√ 批量修改聊天次数 + +√ 批量启用 + +√ 批量禁用 + +√ 批量删除 + +√ 批量设置有效期 + +## 第十章 知识库管理 + +### 页面 + +新增知识库 + +────────────────────── + +知识库名称 + +飞书SpaceID + +节点ID + +状态 + +备注 + +────────────────────── + +### 新增 + +填写: + +名称 + +SpaceID + +NodeID + +备注 + +点击: + +保存。 + +### 编辑 + +允许: + +修改: + +名称 + +状态 + +备注 + +不允许: + +修改: + +历史关联数据。 + +### 删除 + +点击: + +删除。 + +弹窗: + +输入: + +确认删除 + +确认: + +系统: + +解除所有权限关联。 + +删除知识库。 + +记录日志。 + +### 检索 + +方式: + +实时访问飞书。 + +不缓存。 + +无需同步。 + +### 状态 + +支持: + +启用 + +禁用 + +禁用后: + +AI: + +不参与检索。 + +## 第十一章 Prompt 管理模块 + +### 11.1 功能概述 + +系统采用单一全局 Prompt。 + +所有 AI 请求均使用当前生效的 Prompt。 + +一期不支持: + +多 Prompt + +Prompt 分类 + +Prompt 版本切换 + +用户级 Prompt + +### 11.2 页面布局 + +Prompt 管理 + +──────────────────────────── + +当前 Prompt + +┌──────────────────────┐ + +│ │ + +│ Prompt 编辑器 │ + +│ │ + +└──────────────────────┘ + +【保存】 + +【恢复默认】 + +──────────────────────────── + +### 11.3 字段说明 + +### 11.4 保存流程 + +编辑 Prompt + +│ + +点击保存 + +│ + +合法性校验 + +│ + +写入数据库 + +│ + +记录日志 + +│ + +立即生效 + +### 11.5 恢复默认 + +点击: + +恢复默认 + +弹窗: + +确定恢复系统默认 Prompt? + +取消 + +确定 + +恢复成功: + +更新数据库 + +写入日志 + +立即生效 + +## 第十二章 AI 模型管理 + +### 12.1 功能概述 + +后台支持切换 AI 模型。 + +一期仅允许同时启用一个模型。 + +### 12.2 页面布局 + +模型列表 + +────────────────────────── + +模型名称 + +API地址 + +状态 + +当前使用 + +操作 + +────────────────────────── + +新增模型 + +### 12.3 模型字段 + +### 12.4 切换模型 + +流程: + +选择模型 + +│ + +点击启用 + +│ + +旧模型关闭 + +│ + +新模型启用 + +│ + +立即生效 + +### 12.5 参数说明 + +默认建议: + +## 第十三章 系统配置模块 + +### 13.1 页面结构 + +系统配置 + +├── 登录配置 + +├── AI 配置 + +├── 聊天配置 + +├── 安全配置 + +└── 保存 + +### 13.2 登录配置 + +字段: + +### 13.3 AI 配置 + +字段: + +### 13.4 聊天配置 + +字段: + +### 13.5 保存规则 + +点击保存: + +参数校验 + +│ + +保存数据库 + +│ + +刷新缓存 + +│ + +立即生效 + +│ + +记录日志 + +## 第十四章 操作日志模块 + +### 14.1 页面布局 + +操作日志 + +────────────────────────── + +操作人 + +模块 + +类型 + +时间 + +搜索 + +────────────────────────── + +日志列表 + +### 14.2 查询条件 + +支持: + +操作人 + +操作模块 + +操作类型 + +时间范围 + +### 14.3 日志详情 + +字段: + +## 第十五章 权限控制 + +### 15.1 权限模型 + +系统权限分为三层: + +角色权限 + +↓ + +账号权限 + +↓ + +知识库权限 + +### 15.2 登录权限 + +登录成功必须满足: + +账号存在 + +↓ + +启用 + +↓ + +未过期 + +↓ + +允许登录 + +否则拒绝登录。 + +### 15.3 AI 权限 + +用户发送问题: + +获取用户知识库 + +↓ + +过滤禁用知识库 + +↓ + +过滤过期权限 + +↓ + +实时检索飞书 + +↓ + +生成答案 + +### 15.4 权限冲突 + +多个知识库内容冲突时: + +系统必须: + +分别展示观点 + +标注知识库来源 + +不进行自动裁决 + +## 第十六章 AI/RAG 业务流程 + +### 16.1 完整时序 + +用户发送问题 + +│ + +聊天次数校验 + +│ + +登录校验 + +│ + +账号校验 + +│ + +知识库权限校验 + +│ + +获取允许访问的 Space + +│ + +实时检索飞书 + +│ + +整理Prompt + +│ + +调用 AI 模型 + +│ + +Streaming 输出 + +│ + +保存聊天记录 + +### 16.2 Prompt 组成 + +Prompt 包含: + +系统 Prompt(后台维护) + +检索知识片段 + +历史上下文 + +当前用户问题 + +### 16.3 返回策略 + +有命中: + +正常回答。 + +无命中: + +返回: + +当前知识库中未检索到相关内容,请联系管理员补充相关知识。 + +不得使用模型自身知识补充答案。 + +## 第十七章 异常处理 + +### 17.1 飞书异常 + +默认: + +重试 2 次(后台可配置 0~3 次)。 + +仍失败: + +知识库服务暂时不可用,请稍后再试。 + +### 17.2 AI 超时 + +默认: + +30 秒。 + +超时: + +终止请求 + +保存日志 + +返回统一提示 + +### 17.3 用户停止生成 + +点击: + +停止生成 + +系统: + +取消模型请求 + +保留已生成内容 + +消息状态标记为 STOPPED + +### 17.4 每日次数耗尽 + +返回: + +今日聊天次数已用完,请明天再试或联系管理员。 + +## 第十八章 开发验收标准 + +### 用户端 + +✅ 手机号验证码登录 + +✅ 多设备登录 + +✅ 多会话 + +✅ AI 流式输出 + +✅ 停止生成 + +✅ 自动生成标题 + +✅ 删除会话仅隐藏 + +✅ 每日聊天次数限制 + +### AI 能力 + +✅ 仅访问授权知识库 + +✅ 飞书实时检索 + +✅ 不联网搜索 + +✅ Prompt 实时生效 + +✅ 模型可切换 + +✅ 知识冲突按来源展示 + +✅ 超时与重试符合配置 + +### 管理后台 + +✅ 用户管理 + +✅ 管理员管理 + +✅ 知识库管理 + +✅ Prompt 管理 + +✅ AI 模型管理 + +✅ 聊天记录管理 + +✅ 系统配置 + +✅ 数据统计 + +✅ 操作日志 + +第二份文档完成 + +至此,《系统功能规格说明书(SRS)V1.0》第一版完成。 + +相比 PRD,SRS 已将系统细化到: + +页面结构 + +按钮行为 + +字段定义 + +权限校验 + +状态流转 + +AI/RAG 调用流程 + +异常处理 + +开发验收标准 + +## Table 1 +| 属性 | 值 | +| --- | --- | +| 类型 | String | +| 长度 | 11 | +| 必填 | 是 | +| 校验 | 中国大陆手机号 | + +## Table 2 +| 属性 | 值 | +| --- | --- | +| 类型 | String | +| 长度 | 6 | +| 必填 | 是 | + +## Table 3 +| 场景 | 提示 | +| --- | --- | +| 手机号为空 | 请输入手机号 | +| 手机号非法 | 手机号格式错误 | +| 发送失败 | 请稍后再试 | + +## Table 4 +| 字段 | 必填 | +| --- | --- | +| MessageID | √ | +| SessionID | √ | +| UserID | √ | +| Content | √ | +| 时间 | √ | + +## Table 5 +| 字段 | 必填 | +| --- | --- | +| MessageID | √ | +| Reply | √ | +| 模型 | √ | +| Token | √ | +| 回复耗时 | √ | + +## Table 6 +| 字段 | 编辑 | +| --- | --- | +| 手机号 | 否 | +| 姓名 | 是 | +| 昵称 | 否 | +| 状态 | 是 | +| 今日次数 | 否 | +| 总次数 | 是 | +| 最后登录 | 否 | + +## Table 7 +| 字段 | 类型 | 必填 | 说明 | +| --- | --- | --- | --- | +| Prompt 内容 | Text | √ | 系统提示词 | +| 更新时间 | Datetime | √ | 自动生成 | +| 更新人 | String | √ | 管理员 | + +## Table 8 +| 字段 | 必填 | +| --- | --- | +| 模型名称 | √ | +| Provider | √ | +| API URL | √ | +| API Key | √ | +| Model Name | √ | +| Temperature | √ | +| Max Token | √ | +| Timeout | √ | +| 是否启用 | √ | + +## Table 9 +| 参数 | 默认值 | +| --- | --- | +| Temperature | 0.3 | +| Max Output Token | 4096 | +| Timeout | 30 秒 | + +## Table 10 +| 配置项 | 类型 | +| --- | --- | +| 登录有效期 | Number | +| 是否允许多设备 | Switch | +| 注册审核 | Switch | + +## Table 11 +| 配置项 | 类型 | +| --- | --- | +| 上下文长度 | Number | +| 上下文模式(Token/轮数) | Select | +| AI 超时 | Number | +| 飞书重试次数 | Number | +| 是否展示引用来源 | Switch | +| 是否允许联网 | Switch(一期固定关闭) | + +## Table 12 +| 配置项 | 类型 | +| --- | --- | +| 默认每日聊天次数 | Number | +| 是否启用流式输出 | Switch | +| 是否允许停止生成 | Switch | + +## Table 13 +| 字段 | 说明 | +| --- | --- | +| 日志ID | 唯一编号 | +| 操作人 | 管理员 | +| 操作模块 | 用户/知识库等 | +| 操作类型 | 新增/修改/删除 | +| 修改前 | JSON | +| 修改后 | JSON | +| IP | IPv4/IPv6 | +| 时间 | Datetime | diff --git a/ai_knowledge_base_v2/extracted/03-AI知识库系统数据库设计文档.md b/ai_knowledge_base_v2/extracted/03-AI知识库系统数据库设计文档.md new file mode 100644 index 0000000..ea2bb92 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/03-AI知识库系统数据库设计文档.md @@ -0,0 +1,787 @@ +# 03-AI知识库系统数据库设计文档.docx + +《03-AI知识库系统数据库设计文档》 + +版本:V1.0 + +数据库:MySQL 8.x + +字符集:utf8mb4 + +存储引擎:InnoDB + +## 第一章 数据库设计原则 + +### 1.1 设计目标 + +数据库设计满足以下要求: + +• 支持高并发 AI 问答 + +• 满足权限控制 + +• 支持多知识库 + +• 支持后台管理 + +• 支持聊天历史永久保存 + +• 支持日志审计 + +• 支持后续功能扩展 + +### 1.2 命名规范 + +#### 表名 + +全部采用: + +sys_xxx + +例如: + +sys_user + +sys_chat + +sys_prompt + +#### 字段 + +统一采用: + +snake_case + +例如: + +user_id + +created_at + +updated_at + +#### 主键 + +统一: + +BIGINT + +AUTO_INCREMENT + +#### 时间字段 + +统一: + +created_at + +updated_at + +DATETIME 类型。 + +#### 删除 + +采用: + +is_deleted + +逻辑删除。 + +(聊天会话删除采用逻辑删除,知识库根据已确认需求允许物理删除。) + +## 第二章 ER 模型 + +管理员 + +│ + +│ + +├──────────────┐ + +│ │ + +▼ ▼ + +用户 ─────── 用户知识库权限 + +│ + +│ + +▼ + +聊天会话 + +│ + +▼ + +聊天消息 + +│ + +▼ + +AI日志 + +────────────────────────── + +知识库 + +│ + +▼ + +Prompt + +│ + +▼ + +模型配置 + +│ + +▼ + +系统配置 + +│ + +▼ + +操作日志 + +## 第三章 数据表清单 + +一期预计数据库包含以下核心数据表: + +后续可按需要增加统计汇总表、缓存表等。 + +## 第四章 用户表(sys_user) + +### 功能 + +保存系统普通用户信息。 + +### 字段设计 + +### 索引 + +## 第五章 管理员表(sys_admin) + +### 功能 + +保存后台管理员账号。 + +### 字段 + +## 第六章 角色表(sys_role) + +### 字段 + +### 角色示例 + +SUPER_ADMIN + +ADMIN + +OPERATOR + +CUSTOMER_SERVICE + +## 第七章 知识库表(sys_knowledge) + +### 功能 + +维护飞书知识库配置。 + +### 字段 + +### 删除规则 + +根据已确认需求: + +支持物理删除 + +删除前需二次确认 + +自动解除用户权限关联 + +写入操作日志 + +以上完成了数据库设计文档的第一部分。 + +下一部分将继续设计以下核心数据表: + +sys_user_kb(用户知识库权限) + +sys_chat_session(聊天会话) + +sys_chat_message(聊天消息) + +sys_prompt + +sys_model + +sys_system_config + +sys_operation_log + +sys_ai_request_log + +登录日志、短信日志 + +索引设计 + +外键关系 + +数据字典 + +建表 SQL 示例。 + +Grover Reaves 加入了群聊。 + +继续 @ChatGPT + +ChatGPT15:30 + +## 第八章 用户知识库权限表(sys_user_kb) + +### 8.1 功能说明 + +用于维护用户与知识库之间的授权关系。 + +支持: + +一个用户拥有多个知识库 + +一个知识库授权给多个用户 + +永久授权 + +有效期授权 + +属于典型多对多关系表。 + +### 8.2 字段设计 + +### 索引 + +idx_user + +idx_knowledge + +idx_expired + +uk_user_kb + +(user_id,knowledge_id) + +防止重复授权。 + +## 第九章 聊天会话表(sys_chat_session) + +### 功能 + +保存聊天会话。 + +每个聊天对应: + +一个用户 + +↓ + +多个会话 + +↓ + +一个会话 + +↓ + +多条消息 + +### 字段 + +### 删除规则 + +用户删除: + +is_deleted=1 + +后台永久保存。 + +## 第十章 聊天消息表(sys_chat_message) + +### 功能 + +保存全部聊天内容。 + +### 字段 + +### 状态 + +WAITING + +GENERATING + +FINISHED + +STOPPED + +TIMEOUT + +FAILED + +### 索引 + +idx_session + +idx_user + +idx_created + +## 第十一章 AI 请求日志(sys_ai_request_log) + +### 功能 + +记录 AI 每一次调用。 + +便于: + +排查问题 + +Token 统计 + +耗时统计 + +飞书异常分析 + +### 字段 + +## 第十二章 Prompt 表(sys_prompt) + +一期仅维护一条全局 Prompt。 + +### 字段 + +## 第十三章 AI 模型表(sys_model) + +### 字段 + +### 一期规则 + +始终: + +enabled=1 + +只能有一条 + +后台切换: + +自动: + +旧模型=0 + +新模型=1 + +## 第十四章 系统配置表(sys_system_config) + +采用: + +Key + +Value + +方式。 + +### 字段 + +### 示例数据 + +## 第十五章 操作日志表(sys_operation_log) + +### 字段 + +## 第十六章 登录日志(sys_login_log) + +### 字段 + +## 第十七章 短信日志(sys_sms_log) + +### 字段 + +安全建议: 正式生产环境不要明文保存验证码,可仅保存哈希值或脱敏信息。 + +## 第十八章 外键关系 + +sys_user + +│ + +├──────────────┐ + +│ │ + +▼ ▼ + +sys_chat_session sys_user_kb + +│ │ + +▼ ▼ + +sys_chat_message sys_knowledge + +sys_admin + +│ + +▼ + +sys_operation_log + +sys_model + +│ + +▼ + +sys_ai_request_log + +数据库层面建议尽量少使用物理外键约束,由应用层保证数据一致性,以降低高并发场景下的维护成本。 + +## 第十九章 索引规范 + +所有业务表统一包含: + +PRIMARY KEY(id) + +created_at + +updated_at + +常用查询字段建立普通索引: + +phone + +user_id + +session_id + +knowledge_id + +status + +last_login_at + +唯一字段建立唯一索引: + +手机号 + +管理员用户名 + +用户+知识库授权关系 + +## 第二十章 数据库规范 + +### 字符集 + +utf8mb4 + +### 排序规则 + +utf8mb4_unicode_ci + +### 引擎 + +InnoDB + +### 主键 + +BIGINT AUTO_INCREMENT + +### 时间字段 + +统一: + +DATETIME + +### 事务 + +涉及以下操作必须使用事务: + +用户创建 + +批量授权知识库 + +批量删除用户 + +删除知识库并解除权限关联 + +管理员批量操作 + +## 第二十一章 数据字典规范 + +建议为每张表维护一份数据字典,包含: + +该数据字典可同步导出为 数据库设计.xlsx,供开发、测试及运维共同使用。 + +## 《数据库设计文档》第一版完成 + +目前数据库设计已覆盖: + +用户体系 + +管理员体系 + +角色体系 + +知识库管理 + +用户知识库授权 + +聊天会话 + +聊天消息 + +AI 请求日志 + +Prompt 管理 + +模型管理 + +系统配置 + +登录日志 + +短信日志 + +操作日志 + +外键关系 + +索引规范 + +数据库设计规范 + +## Table 1 +| 序号 | 表名 | 用途 | +| --- | --- | --- | +| 1 | sys_user | 用户 | +| 2 | sys_admin | 管理员 | +| 3 | sys_role | 管理员角色 | +| 4 | sys_user_kb | 用户知识库权限 | +| 5 | sys_knowledge | 知识库 | +| 6 | sys_chat_session | 聊天会话 | +| 7 | sys_chat_message | 聊天消息 | +| 8 | sys_prompt | Prompt 配置 | +| 9 | sys_model | AI 模型 | +| 10 | sys_system_config | 系统配置 | +| 11 | sys_operation_log | 操作日志 | +| 12 | sys_login_log | 登录日志 | +| 13 | sys_ai_request_log | AI 请求日志 | +| 14 | sys_sms_log | 短信发送日志 | + +## Table 2 +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| id | BIGINT | 主键 | +| phone | VARCHAR(20) | 手机号(唯一) | +| name | VARCHAR(50) | 姓名 | +| nickname | VARCHAR(50) | 昵称 | +| status | TINYINT | 账号状态(0=禁用,1=启用) | +| daily_chat_limit | INT | 每日聊天额度(可覆盖全局配置) | +| daily_chat_used | INT | 当日已使用次数 | +| effective_at | DATETIME | 生效时间 | +| expired_at | DATETIME | 到期时间(可为空,表示永久) | +| last_login_at | DATETIME | 最后登录时间 | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | +| is_deleted | TINYINT | 逻辑删除 | + +## Table 3 +| 名称 | 类型 | +| --- | --- | +| pk_id | 主键 | +| uk_phone | 唯一索引 | +| idx_status | 普通索引 | + +## Table 4 +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| id | BIGINT | 主键 | +| username | VARCHAR(50) | 登录账号(唯一) | +| password | VARCHAR(255) | 密码(加密存储) | +| name | VARCHAR(50) | 姓名 | +| role_id | BIGINT | 角色ID | +| status | TINYINT | 状态 | +| last_login_at | DATETIME | 最后登录 | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | + +## Table 5 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| role_name | VARCHAR(50) | +| role_code | VARCHAR(50) | +| description | VARCHAR(255) | +| created_at | DATETIME | + +## Table 6 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| name | VARCHAR(100) | +| feishu_space_id | VARCHAR(100) | +| feishu_node_id | VARCHAR(100) | +| status | TINYINT | +| remark | VARCHAR(255) | +| created_at | DATETIME | +| updated_at | DATETIME | + +## Table 7 +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| id | BIGINT | 主键 | +| user_id | BIGINT | 用户ID | +| knowledge_id | BIGINT | 知识库ID | +| effective_at | DATETIME | 生效时间 | +| expired_at | DATETIME | 到期时间(NULL=永久) | +| created_by | BIGINT | 创建管理员 | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | + +## Table 8 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| user_id | BIGINT | +| title | VARCHAR(100) | +| message_count | INT | +| last_message_at | DATETIME | +| is_deleted | TINYINT | +| created_at | DATETIME | +| updated_at | DATETIME | + +## Table 9 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| session_id | BIGINT | +| user_id | BIGINT | +| role | ENUM(user,assistant) | +| content | LONGTEXT | +| message_status | VARCHAR(20) | +| token_input | INT | +| token_output | INT | +| response_time_ms | INT | +| model_id | BIGINT | +| created_at | DATETIME | + +## Table 10 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| session_id | BIGINT | +| message_id | BIGINT | +| user_id | BIGINT | +| model_name | VARCHAR(100) | +| prompt | LONGTEXT | +| knowledge_ids | VARCHAR(500) | +| retrieve_count | INT | +| input_token | INT | +| output_token | INT | +| total_token | INT | +| cost_ms | INT | +| status | VARCHAR(20) | +| error_message | TEXT | +| created_at | DATETIME | + +## Table 11 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| prompt_content | LONGTEXT | +| updated_by | BIGINT | +| updated_at | DATETIME | + +## Table 12 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| provider | VARCHAR(50) | +| model_name | VARCHAR(100) | +| api_url | VARCHAR(255) | +| api_key | TEXT | +| temperature | DECIMAL(3,2) | +| max_token | INT | +| timeout_second | INT | +| enabled | TINYINT | +| created_at | DATETIME | + +## Table 13 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| config_key | VARCHAR(100) | +| config_value | TEXT | +| description | VARCHAR(255) | +| updated_by | BIGINT | +| updated_at | DATETIME | + +## Table 14 +| Key | Value | +| --- | --- | +| login_days | 30 | +| daily_chat_limit | 100 | +| ai_timeout | 30 | +| feishu_retry | 2 | +| show_reference | true | +| allow_network | false | +| context_mode | token | +| context_value | 8192 | + +## Table 15 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| admin_id | BIGINT | +| module | VARCHAR(50) | +| action | VARCHAR(50) | +| target_id | BIGINT | +| before_json | LONGTEXT | +| after_json | LONGTEXT | +| ip | VARCHAR(50) | +| result | VARCHAR(20) | +| created_at | DATETIME | + +## Table 16 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| login_type | VARCHAR(20) | +| user_id | BIGINT | +| phone | VARCHAR(20) | +| ip | VARCHAR(50) | +| device | VARCHAR(255) | +| result | VARCHAR(20) | +| created_at | DATETIME | + +## Table 17 +| 字段 | 类型 | +| --- | --- | +| id | BIGINT | +| phone | VARCHAR(20) | +| sms_type | VARCHAR(50) | +| verify_code | VARCHAR(10) | +| status | VARCHAR(20) | +| provider | VARCHAR(50) | +| created_at | DATETIME | + +## Table 18 +| 字段 | 类型 | 默认值 | 是否为空 | 说明 | +| --- | --- | --- | --- | --- | +| (字段) | (类型) | (默认值) | (是否为空) | (说明) | diff --git a/ai_knowledge_base_v2/extracted/04-AI知识库系统_API接口设计文档.md b/ai_knowledge_base_v2/extracted/04-AI知识库系统_API接口设计文档.md new file mode 100644 index 0000000..892f5dd --- /dev/null +++ b/ai_knowledge_base_v2/extracted/04-AI知识库系统_API接口设计文档.md @@ -0,0 +1,575 @@ +# 04-AI知识库系统_API接口设计文档.docx + +《04-AI知识库系统 API 接口设计文档》 + +版本:V1.0 + +规范:RESTful API + +数据格式:JSON + +认证方式:JWT Token(Bearer) + +字符集:UTF-8 + +## 第一章 接口规范 + +### 1.1 请求规范 + +Base URL + +https://api.xxx.com/api/v1 + +Header + +Content-Type: application/json + +Authorization: Bearer {token} + +成功返回 + +{ + +"code": 0, + +"message": "success", + +"data": {} + +} + +失败返回 + +{ + +"code": 40001, + +"message": "账号已禁用", + +"data": null + +} + +## 第二章 用户认证接口 + +### 2.1 发送短信验证码 + +POST /auth/sms/send + +Request + +{ + +"phone":"13800138000" + +} + +Response + +{ + +"code":0, + +"message":"发送成功" + +} + +校验规则 + +手机号: + +必填 + +中国大陆手机号 + +限制: + +60 秒内不能重复发送 + +每日发送次数限制(后台可配置) + +### 2.2 登录 + +POST /auth/login + +Request + +{ + +"phone":"13800138000", + +"code":"123456" + +} + +Response + +{ + +"code":0, + +"data":{ + +"token":"xxxxx", + +"expiredAt":"2026-08-01", + +"user":{ + +"id":1, + +"name":"张三" + +} + +} + +} + +系统执行: + +验证码校验 + +↓ + +首次登录? + +↓ + +自动创建用户 + +↓ + +账号状态 + +↓ + +账号有效期 + +↓ + +登录成功 + +### 2.3 退出登录 + +POST /auth/logout + +Response + +{ + +"code":0 + +} + +Token:立即失效。 + +## 第三章 用户接口 + +### 3.1 获取当前用户 + +GET /user/profile + +Response + +{ + +"code":0, + +"data":{ + +"phone":"", + +"name":"", + +"nickname":"", + +"dailyLimit":100, + +"todayUsed":35 + +} + +} + +### 3.2 修改会话标题 + +PUT /chat/session/title + +Request + +{ + +"sessionId":1, + +"title":"直播运营技巧" + +} + +### 3.3 删除会话 + +DELETE /chat/session/{id} + +系统:is_deleted=1 + +## 第四章 AI 对话接口 + +### 4.1 创建会话 + +POST /chat/session + +Response + +{ + +"code":0, + +"data":{ + +"sessionId":1001 + +} + +} + +### 4.2 获取会话列表 + +GET /chat/session/list + +Response + +{ + +"code":0, + +"data":[ + +{ + +"id":1, + +"title":"直播运营", + +"updatedAt":"..." + +} + +] + +} + +### 4.3 获取聊天记录 + +GET /chat/history + +参数:sessionId + +Response + +{ + +"code":0, + +"data":[ + +{ + +"role":"user", + +"content":"..." + +}, + +{ + +"role":"assistant", + +"content":"..." + +} + +] + +} + +### 4.4 AI 问答(Streaming) + +POST /chat/completions + +Request + +{ + +"sessionId":1, + +"message":"直播间没人怎么办?" + +} + +处理流程: + +次数校验 + +↓ + +账号校验 + +↓ + +权限校验 + +↓ + +飞书检索 + +↓ + +Prompt + +↓ + +模型 + +↓ + +Streaming + +Response + +text/event-stream + +Server Sent Events: + +data:你好 + +data:直播间 + +data:可以 + +... + +结束: + +data:[DONE] + +### 4.5 停止生成 + +POST /chat/stop + +Request + +{ + +"sessionId":1 + +} + +系统:立即取消模型请求。 + +## 第五章 管理员接口 + +### 5.1 登录 + +POST /admin/login + +Request + +{ + +"username":"admin", + +"password":"******" + +} + +### 5.2 获取首页统计 + +GET /admin/dashboard + +参数:today, week, custom + +Response + +{ + +"totalUser":1200, + +"todayUser":35, + +"todayChat":560, + +"token":980000 + +} + +## 第六章 用户管理接口 + +获取用户列表 + +GET /admin/user/list + +参数:phone, name, status, page, size + +获取用户详情 + +GET /admin/user/{id} + +新增用户 + +POST /admin/user + +修改用户 + +PUT /admin/user + +删除用户 + +DELETE /admin/user/{id} + +批量授权知识库 + +POST /admin/user/kb + +Request + +{ + +"userIds":[1,2], + +"knowledgeIds":[3,5], + +"effectiveAt":"2026-01-01", + +"expiredAt":"2027-01-01" + +} + +批量修改聊天次数 + +POST /admin/user/chat-limit + +批量启用 + +POST /admin/user/enable + +批量禁用 + +POST /admin/user/disable + +批量删除 + +POST /admin/user/delete + +## 第七章 知识库接口 + +GET /admin/knowledge/list + +POST /admin/knowledge + +PUT /admin/knowledge + +DELETE /admin/knowledge/{id} + +字段:名称, SpaceID, NodeID, 状态, 备注 + +## 第八章 Prompt 接口 + +获取:GET /admin/prompt + +保存:PUT /admin/prompt + +恢复默认:POST /admin/prompt/reset + +## 第九章 模型接口 + +获取模型:GET /admin/model/list + +新增模型:POST /admin/model + +启用模型:POST /admin/model/enable + +删除模型:DELETE /admin/model/{id} + +## 第十章 系统配置接口 + +获取配置:GET /admin/config + +修改配置:PUT /admin/config + +包含: + +登录有效期 + +每日聊天次数 + +AI 超时 + +飞书重试次数 + +上下文长度 + +是否显示引用来源 + +是否允许联网(一期固定关闭) + +## 第十一章 操作日志接口 + +获取:GET /admin/log/list + +查询条件:操作人, 模块, 类型, 时间范围 + +## 第十二章 聊天记录接口 + +查询:GET /admin/chat/list + +详情:GET /admin/chat/{id} + +导出:POST /admin/chat/export + +导出字段:用户, 手机号, 会话标题, 提问, AI 回答, 提问时间, 回复时间 + +## 第十三章 错误码规范 + +《API 接口设计文档》第一版完成 + +这份文档定义了前后端联调所需的核心接口,包括: + +登录认证 + +用户端接口 + +AI 对话(SSE 流式) + +管理后台 + +用户管理 + +知识库管理 + +Prompt 管理 + +模型管理 + +系统配置 + +聊天记录 + +操作日志 + +错误码规范 + +## Table 1 +| Code | 含义 | +| --- | --- | +| 0 | 成功 | +| 40001 | 账号禁用 | +| 40002 | 账号已过期 | +| 40003 | 验证码错误 | +| 40004 | 验证码过期 | +| 40005 | 登录失效 | +| 40006 | 今日聊天次数已用完 | +| 40007 | 无知识库权限 | +| 50001 | 飞书接口异常 | +| 50002 | AI 模型超时 | +| 50003 | AI 服务异常 | +| 50004 | 系统内部错误 | diff --git a/ai_knowledge_base_v2/extracted/05-AI知识库系统_AI-RAG技术方案设计_V10_1.md b/ai_knowledge_base_v2/extracted/05-AI知识库系统_AI-RAG技术方案设计_V10_1.md new file mode 100644 index 0000000..50eb196 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/05-AI知识库系统_AI-RAG技术方案设计_V10_1.md @@ -0,0 +1,359 @@ +# 05-AI知识库系统_AI-RAG技术方案设计_V1.0 (1).docx + +《05-AI 知识库系统 AI/RAG 技术方案设计》 + +## 第一章 技术架构 + +### 1.1 总体架构 + +## 第二章 技术选型 + +## 第三章 RAG 流程 + +### 3.1 总体流程 + +## 第四章 权限过滤 + +### 4.1 核心原则 + +AI 只能访问用户拥有权限的知识库。 + +例如: + +用户A: + +直播运营 + +客服SOP + +提问: + +如何搭建直播间? + +系统: + +仅检索: + +直播运营 + +客服SOP + +不会访问: + +销售知识库 + +人事知识库 + +财务知识库 + +### 4.2 权限流程 + +## 第五章 飞书知识库接入 + +### 5.1 接入原则 + +根据已确认需求: + +飞书知识库作为唯一知识源 + +不建立本地知识副本 + +不做手动同步 + +每次提问实时检索 + +### 5.2 更新机制 + +无需后台点击同步。 + +### 5.3 异常处理 + +默认: + +自动重试 2 次(后台可配置 0~3 次) + +全部失败: + +返回: + +当前知识库服务暂时不可用,请稍后再试。 + +后台记录: + +请求参数 + +错误原因 + +响应时间 + +用户信息 + +## 第六章 Prompt 组装 + +### 6.1 Prompt 组成 + +最终 Prompt 由四部分组成: + +### 6.2 系统 Prompt + +来源: + +后台 Prompt 管理。 + +保存后立即生效。 + +### 6.3 知识片段 + +来源: + +飞书实时检索结果。 + +不做修改。 + +### 6.4 上下文 + +后台配置: + +Token 模式(推荐) + +最近 N 轮模式 + +超出限制: + +自动截断最早内容。 + +## 第七章 AI 回复策略 + +### 7.1 有知识命中 + +流程: + +### 7.2 无知识命中 + +返回: + +当前知识库中未检索到相关内容,请联系管理员补充相关知识。 + +禁止: + +自行编造答案 + +使用模型已有知识补充 + +### 7.3 多知识库冲突 + +例如: + +知识库A: + +建议直播2小时。 + +知识库B: + +建议直播4小时。 + +返回: + +AI 不进行裁决。 + +## 第八章 Streaming 输出 + +### 8.1 输出方式 + +采用 Server-Sent Events(SSE)。 + +流程: + +### 8.2 停止生成 + +用户点击: + +停止生成 + +系统: + +取消模型请求 + +保留已生成内容 + +消息状态更新为 STOPPED + +## 第九章 超时与异常 + +### 9.1 AI 超时 + +后台配置: + +默认: + +30 秒 + +超时: + +终止请求 + +返回统一提示 + +写入 AI 请求日志 + +### 9.2 飞书异常 + +重试结束仍失败: + +知识库服务暂时不可用,请稍后再试。 + +### 9.3 模型异常 + +返回: + +AI 服务暂时不可用,请稍后重试。 + +## 第十章 日志记录 + +每次 AI 调用记录: + +用户ID + +会话ID + +模型名称 + +Prompt(建议生产环境可配置是否完整保存) + +检索知识库 + +Token 消耗 + +请求耗时 + +调用状态 + +错误信息(如有) + +## 第十一章 性能建议 + +并发 + +建议: + +API 无状态部署 + +Redis 保存验证码、登录态缓存等(按实际架构) + +AI 服务独立部署 + +数据库 + +建议索引: + +user_id + +session_id + +knowledge_id + +created_at + +超时 + +飞书接口:建议 10 秒以内 + +AI 请求:默认 30 秒,可后台配置 + +## 第十二章 V2 扩展规划(预留) + +在不影响 V1 架构的前提下,可扩展: + +向量数据库(Milvus / pgvector 等) + +文档上传(PDF、Word、Excel) + +图片 OCR + +多 Prompt 模板 + +多模型路由 + +多租户 + +联网搜索 + +知识召回优化 + +AI 回复质量评估 + +在线设备管理 + +《AI/RAG 技术方案》第一版完成 + +本技术方案与前面的 PRD、SRS、数据库设计、API 文档保持一致,覆盖了: + +总体架构 + +RAG 工作流 + +飞书知识库实时检索 + +权限过滤 + +Prompt 组装 + +AI 回复策略 + +SSE 流式输出 + +超时与异常处理 + +日志记录 + +后续扩展规划 + +## Table 1 +| 版本 | V1.0 | +| --- | --- | +| 架构模式 | RAG(Retrieval-Augmented Generation) | +| 适用范围 | V1.0 | + +## Table 2 +| 用户(Web/H5) │ 手机号 + 短信验证码登录 │ API Gateway / Backend │ ┌───────────┼───────────┐ │ │ │ 用户服务 AI服务(RAG) 后台管理 │ │ │ │ ▼ │ │ 权限校验模块 │ │ │ │ │ Prompt组装模块 │ │ │ │ │ 飞书知识检索 │ │ │ │ │ 大模型调用 │ │ │ │ └───────────▼───────────┘ MySQL 数据库 | +| --- | + +## Table 3 +| 模块 | 建议方案 | +| --- | --- | +| 前端 | Vue3 + TypeScript + Element Plus(后台)、H5 用户端 | +| 后端 | Java Spring Boot 3.x(或 NestJS,二选一) | +| 数据库 | MySQL 8.x | +| 缓存 | Redis | +| AI 模型 | 后台可切换(一期仅启用一个) | +| 知识源 | 飞书知识库 | +| 通信 | REST + SSE(Streaming) | +| 身份认证 | JWT | + +## Table 4 +| 用户提问 │ ▼ 登录校验 │ ▼ 账号状态校验 │ ▼ 聊天次数校验 │ ▼ 获取用户知识库权限 │ ▼ 过滤无权限知识库 │ ▼ 实时访问飞书知识库 │ ▼ 获取知识片段 │ ▼ 组装 Prompt │ ▼ 调用 AI 模型 │ ▼ Streaming 输出 │ ▼ 保存聊天记录 | +| --- | + +## Table 5 +| UserID │ ▼ 查询用户知识库权限 │ ▼ 过滤已过期权限 │ ▼ 过滤禁用知识库 │ ▼ 得到最终检索范围 | +| --- | + +## Table 6 +| 飞书修改文档 │ ▼ 用户下一次提问 │ ▼ 实时读取最新内容 | +| --- | + +## Table 7 +| ① 系统 Prompt + ② 检索到的知识片段 + ③ 当前会话上下文 + ④ 用户当前问题 | +| --- | + +## Table 8 +| 知识命中 ↓ 引用知识 ↓ 生成答案 | +| --- | + +## Table 9 +| 知识库A: …… 知识库B: …… 当前知识库存在不同观点, 以上内容分别来源于不同知识库, 请结合实际业务判断。 | +| --- | + +## Table 10 +| AI生成 Token │ ▼ 实时发送 │ ▼ 前端逐步渲染 | +| --- | diff --git a/ai_knowledge_base_v2/extracted/06-AI知识库系统后台页面原型说明书_V10_1.md b/ai_knowledge_base_v2/extracted/06-AI知识库系统后台页面原型说明书_V10_1.md new file mode 100644 index 0000000..6f90cc6 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/06-AI知识库系统后台页面原型说明书_V10_1.md @@ -0,0 +1,486 @@ +# 06-AI知识库系统后台页面原型说明书_V1.0 (1).docx + +《06-AI知识库系统后台页面原型说明书》 + +## 第一章 后台整体布局 + +### 1.1 页面结构 + +后台采用经典管理系统布局。 + +### 1.2 一级菜单 + +## 第二章 首页(Dashboard) + +页面布局 + +卡片说明 + +总用户数 + +显示: + +1280 + +点击: + +进入用户管理。 + +今日聊天次数 + +显示: + +856 + +点击: + +进入聊天记录。 + +Token 消耗 + +显示: + +985,420 + +单位: + +Token。 + +知识库排行榜 + +字段: + +• 排名 + +• 名称 + +• 使用次数 + +## 第三章 用户管理 + +页面布局 + +用户列表 + +用户详情 + +分为三个 Tab: + +• 基本信息 + +• 账号信息 + +• 知识库权限 + +基本信息 + +显示: + +• 手机号 + +• 姓名 + +• 昵称 + +• 注册时间 + +• 最后登录时间 + +账号信息 + +编辑: + +• 是否启用 + +• 生效时间 + +• 到期时间 + +• 每日聊天次数 + +知识库权限 + +页面: + +• ☑ 直播运营 + +• ☑ 客服SOP + +• □ 销售 + +• □ 财务 + +开始时间: + +结束时间: + +永久 + +## 第四章 管理员管理 + +页面 + +新增管理员 + +填写: + +• 用户名 + +• 密码 + +• 姓名 + +• 角色 + +• 是否启用 + +保存。 + +编辑管理员 + +允许: + +• 修改密码 + +• 修改角色 + +• 修改状态 + +## 第五章 知识库管理 + +页面布局 + +列表字段 + +删除 + +点击: + +删除。 + +弹窗: + +请输入: + +确认删除 + +确认后: + +• 删除知识库 + +• 自动解除所有用户关联权限 + +• 写入操作日志 + +## 第六章 Prompt 管理 + +页面布局 + +保存 + +点击: + +保存 + +系统: + +• 校验内容 + +• 保存数据库 + +• 写入日志 + +• 立即生效 + +## 第七章 AI 模型管理 + +页面布局 + +编辑模型 + +字段: + +• Provider + +• API URL + +• API Key + +• 模型名称 + +• Temperature + +• Max Token + +• Timeout + +启用模型 + +点击: + +启用 + +系统: + +• 当前模型自动停用 + +• 新模型立即生效 + +## 第八章 聊天记录 + +页面布局 + +列表字段 + +详情页面 + +显示: + +后台附加信息: + +• 使用模型 + +• 检索知识库 + +• Token 消耗 + +• 回复耗时 + +导出 + +点击: + +导出Excel + +导出内容: + +• 用户 + +• 手机号 + +• 会话标题 + +• 提问 + +• AI 回复 + +• 提问时间 + +• 回复时间 + +## 第九章 系统配置 + +页面分组 + +• 登录配置 + +• AI配置 + +• 聊天配置 + +• 安全配置 + +登录配置 + +AI 配置 + +聊天配置 + +## 第十章 操作日志 + +页面布局 + +日志详情 + +展示: + +• 操作人 + +• 操作时间 + +• 操作模块 + +• 操作对象 + +• 修改前 + +• 修改后 + +• IP 地址 + +• 操作结果 + +## 第十一章 页面交互规范 + +通用规则 + +所有新增、编辑操作: + +• 点击保存前进行必填校验 + +• 保存成功后提示「保存成功」 + +• 保存失败显示具体错误信息 + +所有删除操作: + +• 二次确认 + +• 删除成功后刷新列表 + +• 自动写入操作日志 + +所有列表页面: + +• 支持分页 + +• 支持按条件搜索 + +• 支持刷新 + +• 支持导出(适用页面) + +## 第十二章 权限控制 + +## 《后台页面原型说明书》第一版完成 + +这份文档定义了后台各页面的: + +• 页面布局 + +• 菜单结构 + +• 字段定义 + +• 按钮功能 + +• 页面交互 + +• 权限控制 + +• 导出规则 + +已经可以作为 UI 设计、Axure 原型绘制和前端开发的基础文档。 + +## Table 1 +| 版本 | V1.0 | +| --- | --- | +| 适用版本 | V1.0 | +| 依据文档 | PRD V1.0 / SRS V1.0 | + +## Table 2 +| ┌──────────────────────────────────────────────┐ │ Logo 管理员:admin 退出 │ ├──────────────┬───────────────────────────────┤ │ │ │ │ 首页 │ │ │ 用户管理 │ │ │ 管理员管理 │ 页面内容 │ │ 知识库管理 │ │ │ Prompt管理 │ │ │ AI模型管理 │ │ │ 聊天记录 │ │ │ 系统配置 │ │ │ 操作日志 │ │ │ │ │ └──────────────┴───────────────────────────────┘ | +| --- | + +## Table 3 +| 菜单 | 功能 | +| --- | --- | +| 首页 | 数据统计 | +| 用户管理 | 用户维护 | +| 管理员管理 | 管理员维护 | +| 知识库管理 | 飞书知识库 | +| Prompt管理 | AI Prompt | +| AI模型管理 | 模型配置 | +| 聊天记录 | 查看聊天 | +| 系统配置 | 全局配置 | +| 操作日志 | 审计日志 | + +## Table 4 +| 今日聊天次数 今日新增用户 今日活跃用户 Token消耗 ──────────────────────────── 知识库排行榜 ──────────────────────────── 时间: ○ 今天 ○ 最近7天 ○ 自定义 | +| --- | + +## Table 5 +| 手机号 姓名 状态 【搜索】 【重置】 ──────────────────────────── 用户列表 ──────────────────────────── 【新增】 【批量授权】 【批量修改次数】 【批量启用】 【批量禁用】 【批量删除】 | +| --- | + +## Table 6 +| 字段 | 说明 | +| --- | --- | +| 手机号 | 登录账号 | +| 姓名 | 用户姓名 | +| 昵称 | 微信昵称 | +| 状态 | 启用/禁用/过期 | +| 今日次数 | 已用/总额度 | +| 最后登录 | 时间 | +| 操作 | 编辑/详情 | + +## Table 7 +| 用户名 姓名 角色 状态 ────────────────────── 列表 | +| --- | + +## Table 8 +| 新增知识库 ────────────────────────── 知识库名称 SpaceID NodeID 状态 备注 ────────────────────────── 知识库列表 | +| --- | + +## Table 9 +| 字段 | 说明 | +| --- | --- | +| 名称 | 知识库名称 | +| SpaceID | 飞书 Space ID | +| NodeID | 飞书节点 ID | +| 状态 | 启用/禁用 | +| 更新时间 | 最近更新时间 | +| 操作 | 编辑/删除 | + +## Table 10 +| Prompt编辑器 ┌─────────────────────────────┐ │ │ │ Prompt │ │ │ └─────────────────────────────┘ 【保存】 【恢复默认】 | +| --- | + +## Table 11 +| 模型列表 ──────────────────────────── 模型名称 Provider 状态 当前模型 操作 ──────────────────────────── 【新增模型】 | +| --- | + +## Table 12 +| 手机号 姓名 时间 【搜索】 ──────────────────────────── 聊天列表 | +| --- | + +## Table 13 +| 字段 | 说明 | +| --- | --- | +| 用户 | 姓名 | +| 手机号 | 登录账号 | +| 会话标题 | AI 自动生成 | +| 提问时间 | 时间 | +| 操作 | 查看详情 | + +## Table 14 +| 用户: …… AI: …… 用户: …… AI: …… | +| --- | + +## Table 15 +| 配置项 | 控件 | +| --- | --- | +| 登录有效期 | 数字输入 | +| 多设备登录 | 开关 | + +## Table 16 +| 配置项 | 控件 | +| --- | --- | +| 上下文长度 | 数字 | +| AI 超时 | 数字 | +| 飞书重试次数 | 数字 | +| 显示引用来源 | 开关 | + +## Table 17 +| 配置项 | 控件 | +| --- | --- | +| 每日聊天次数 | 数字 | +| 流式输出 | 开关 | +| 停止生成 | 开关 | + +## Table 18 +| 操作人 模块 操作类型 时间 【搜索】 ──────────────────────────── 日志列表 | +| --- | + +## Table 19 +| 页面 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 首页 | ✅ | ✅ | +| 用户管理 | ✅ | ✅ | +| 管理员管理 | ✅ | ❌ | +| 知识库管理 | ✅ | ✅ | +| Prompt 管理 | ✅ | ✅ | +| AI 模型管理 | ✅ | ✅ | +| 聊天记录 | ✅ | ✅ | +| 系统配置 | ✅ | ✅ | +| 操作日志 | ✅ | ✅ | diff --git a/ai_knowledge_base_v2/extracted/07-AI知识库系统研发实施计划_V10.md b/ai_knowledge_base_v2/extracted/07-AI知识库系统研发实施计划_V10.md new file mode 100644 index 0000000..28b9f2d --- /dev/null +++ b/ai_knowledge_base_v2/extracted/07-AI知识库系统研发实施计划_V10.md @@ -0,0 +1,599 @@ +# 07-AI知识库系统研发实施计划_V1.0.docx + +AI 企业知识库问答系统 + +研发实施计划 + +07 / Research & Development Implementation Plan + +━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +正式项目交付文档 + +## 文档信息 + +## 目录 + +第一章 项目实施目标 + +第二章 项目组织 + +第三章 工作拆分(WBS) + +第四章 UI设计任务 + +第五章 前端开发任务 + +第六章 后端开发任务 + +第七章 AI 服务开发 + +第八章 数据库开发 + +第九章 联调计划 + +第十章 测试计划 + +第十一章 上线计划 + +第十二章 验收节点 + +第十三章 风险评估 + +第十四章 项目里程碑(建议) + +第十五章 交付清单 + +文档完成说明与后续建议 + +## 第一章 项目实施目标 + +### 1.1 项目目标 + +根据已确认需求,完成 AI 企业知识库系统 V1.0 开发,实现: + +手机验证码登录 + +AI 知识问答 + +飞书知识库实时检索 + +多知识库权限控制 + +管理后台 + +Prompt 管理 + +模型管理 + +数据统计 + +操作日志 + +系统配置 + +### 1.2 开发原则 + +遵循: + +前后端分离 + +REST API + +RAG 架构 + +模块化开发 + +配置驱动 + +可扩展设计 + +## 第二章 项目组织 + +建议团队配置: + +## 第三章 工作拆分(WBS) + +## 第四章 UI设计任务 + +### 4.1 用户端 + +完成: + +登录页 + +首页 + +聊天页面 + +历史会话 + +个人中心 + +交付: + +Figma + +UI规范 + +图标资源 + +### 4.2 管理后台 + +完成: + +Dashboard + +用户管理 + +管理员管理 + +知识库管理 + +Prompt管理 + +模型管理 + +聊天记录 + +系统配置 + +操作日志 + +## 第五章 前端开发任务 + +### 5.1 用户端 + +#### 5.1.1 登录 + +手机号登录 + +验证码 + +Token管理 + +#### 5.1.2 AI聊天 + +开发: + +输入框 + +Markdown渲染 + +Streaming + +停止生成 + +自动滚动 + +自动标题 + +#### 5.1.3 会话 + +开发: + +新建 + +删除 + +修改标题 + +历史列表 + +### 5.2 后台 + +开发: + +Dashboard + +用户管理 + +管理员管理 + +知识库管理 + +Prompt管理 + +模型管理 + +系统配置 + +聊天记录 + +日志 + +## 第六章 后端开发任务 + +### 6.1 用户模块 + +完成: + +登录 + +Token + +用户管理 + +权限管理 + +### 6.2 AI模块 + +完成: + +AI接口 + +Streaming + +飞书检索 + +Prompt + +权限过滤 + +超时 + +重试 + +### 6.3 后台 + +完成: + +Dashboard + +CRUD + +配置中心 + +日志 + +## 第七章 AI 服务开发 + +### 7.1 飞书 + +完成: + +Space访问 + +Node访问 + +实时检索 + +权限过滤 + +### 7.2 Prompt + +实现: + +### 7.3 模型 + +实现: + +模型切换 + +Timeout + +Streaming + +### 7.4 日志 + +记录: + +Prompt + +Token + +耗时 + +状态 + +## 第八章 数据库开发 + +完成: + +建库 + +建表 + +索引 + +初始化数据 + +包括: + +用户 + +管理员 + +聊天 + +权限 + +Prompt + +模型 + +日志 + +## 第九章 联调计划 + +顺序: + +联调重点: + +登录 + +AI问答 + +Streaming + +权限 + +聊天记录 + +## 第十章 测试计划 + +### 10.1 功能测试 + +覆盖: + +登录 + +用户管理 + +AI聊天 + +后台 + +权限 + +Prompt + +模型 + +日志 + +### 10.2 异常测试 + +包括: + +飞书异常 + +AI超时 + +Token失效 + +权限不足 + +聊天次数耗尽 + +### 10.3 性能测试 + +重点: + +Streaming稳定性 + +并发登录 + +AI响应时间 + +数据库压力 + +### 10.4 安全测试 + +包括: + +Token校验 + +权限越权 + +SQL注入 + +XSS + +CSRF(如适用) + +## 第十一章 上线计划 + +上线步骤: + +## 第十二章 验收节点 + +### 12.1 第一阶段 + +完成: + +数据库 + +登录 + +用户管理 + +### 12.2 第二阶段 + +完成: + +AI聊天 + +飞书检索 + +Streaming + +### 12.3 第三阶段 + +完成: + +后台 + +Prompt + +模型 + +日志 + +### 12.4 第四阶段 + +完成: + +联调 + +测试 + +Bug修复 + +### 12.5 第五阶段(正式上线) + +完成: + +数据初始化 + +管理员账号 + +系统配置 + +验收签字 + +## 第十三章 风险评估 + +## 第十四章 项目里程碑(建议) + +实际周期可根据团队人数调整。 + +## 第十五章 交付清单 + +### 15.1 文档交付 + +☑ 产品需求说明书(PRD) + +☑ 系统功能规格说明书(SRS) + +☑ 数据库设计文档 + +☑ API 接口文档 + +☑ AI/RAG 技术方案 + +☑ 后台页面原型说明 + +☑ 研发实施计划 + +### 15.2 代码交付 + +前端源码 + +后端源码 + +AI 服务源码 + +数据库脚本 + +Docker(如采用) + +部署说明 + +### 15.3 运维交付 + +初始化 SQL + +系统配置模板 + +环境变量模板 + +日志配置 + +启动脚本 + +## 文档完成说明与后续建议 + +《研发实施计划》V1.0 完成 + +至此,已经完成了以下 7 份核心交付文档: + +☑ 产品需求说明书(PRD) + +☑ 系统功能规格说明书(SRS) + +☑ 数据库设计文档 + +☑ API 接口设计文档 + +☑ AI/RAG 技术方案 + +☑ 后台页面原型说明 + +☑ 研发实施计划 + +按照企业项目交付标准,我建议后续再补充最后一组文档,使整套资料更加完整: + +08-测试用例(Test Cases) + +09-验收标准(UAT) + +10-部署运维手册 + +11-字段字典(Excel) + +12-权限矩阵(Excel) + +13-接口测试集合(Postman/Apifox) + +这样整套文档基本达到可直接交付开发公司实施的完整程度。 + +## Table 1 +| 文档名称 | 07-AI知识库系统研发实施计划 | +| --- | --- | +| 版本 | V1.0 | +| 项目名称 | AI 企业知识库问答系统 | +| 适用版本 | V1.0 | + +## Table 2 +| 项目 | 内容 | +| --- | --- | +| 文档编号 | 07 | +| 文档名称 | AI知识库系统研发实施计划 | +| 版本 | V1.0 | +| 项目名称 | AI 企业知识库问答系统 | +| 适用版本 | V1.0 | + +## Table 3 +| 角色 | 人数 | 工作内容 | +| --- | --- | --- | +| 产品经理 | 1 | 需求管理、验收 | +| UI设计师 | 1 | 页面设计、交互 | +| 前端工程师 | 2 | 用户端、后台 | +| 后端工程师 | 2 | API、业务逻辑 | +| AI工程师 | 1 | RAG、模型接入 | +| 测试工程师 | 1 | 功能测试、回归测试 | +| 运维工程师 | 1 | 部署、监控 | + +## Table 4 +| AI知识库系统 ├── UI设计 │ ├── 前端开发 │ ├── 用户端 │ └── 后台 │ ├── 后端开发 │ ├── AI服务 │ ├── 数据库 │ ├── 联调 │ ├── 测试 │ └── 上线 | +| --- | + +## Table 5 +| 系统Prompt ↓ 知识片段 ↓ 上下文 ↓ 问题 | +| --- | + +## Table 6 +| 数据库 ↓ 后端API ↓ 前端联调 ↓ AI联调 ↓ 飞书联调 ↓ 整体联调 | +| --- | + +## Table 7 +| 数据库 ↓ Redis ↓ 后端 ↓ AI服务 ↓ 前端 ↓ 后台 ↓ 配置 ↓ 联调 ↓ 正式上线 | +| --- | + +## Table 8 +| 风险 | 影响 | 应对措施 | +| --- | --- | --- | +| 飞书接口变更 | 高 | 封装统一适配层 | +| AI模型响应慢 | 高 | 超时控制、流式输出 | +| Prompt调整影响回答 | 中 | 保留修改日志,测试后发布 | +| 知识库内容冲突 | 中 | 按已确认策略展示多个来源 | +| 用户量增长 | 中 | 无状态部署,支持水平扩展 | + +## Table 9 +| 阶段 | 工作内容 | 建议周期 | +| --- | --- | --- | +| M1 | PRD、UI、数据库设计 | 第1周 | +| M2 | 前后端基础开发 | 第2~3周 | +| M3 | AI、飞书、RAG联调 | 第4周 | +| M4 | 测试、修复、上线 | 第5周 | diff --git a/ai_knowledge_base_v2/extracted/08-AI知识库系统测试用例_Test_Cases_V10.md b/ai_knowledge_base_v2/extracted/08-AI知识库系统测试用例_Test_Cases_V10.md new file mode 100644 index 0000000..7ff25a6 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/08-AI知识库系统测试用例_Test_Cases_V10.md @@ -0,0 +1,479 @@ +# 08-AI知识库系统测试用例_Test_Cases_V1.0.docx + +08-AI知识库系统测试用例 + +Test Cases + +V1.0 + +## 第一章 测试目标 + +### 1.1 测试范围 + +验证系统是否满足 V1.0 全部业务需求,包括: + +用户端 + +管理后台 + +AI 问答 + +飞书知识库 + +权限体系 + +Prompt + +模型管理 + +数据统计 + +日志 + +系统配置 + +## 第二章 测试环境 + +## 第三章 登录模块测试 + +TC-LOGIN-001 手机号登录成功 + +TC-LOGIN-002 首次登录 + +TC-LOGIN-003 验证码错误 + +TC-LOGIN-004 验证码过期 + +TC-LOGIN-005 账号禁用 + +TC-LOGIN-006 账号过期 + +## 第四章 AI 聊天测试 + +TC-CHAT-001 正常聊天 + +TC-CHAT-002 自动创建标题 + +TC-CHAT-003 停止生成 + +TC-CHAT-004 删除会话 + +TC-CHAT-005 修改标题 + +TC-CHAT-006 Markdown 渲染 + +## 第五章 AI 权限测试 + +TC-AUTH-001 只有一个知识库 + +TC-AUTH-002 多知识库 + +TC-AUTH-003 权限过期 + +TC-AUTH-004 禁用知识库 + +## 第六章 飞书知识库测试 + +TC-FS-001 实时更新 + +TC-FS-002 飞书超时 + +TC-FS-003 飞书不可用 + +## 第七章 Prompt 测试 + +TC-PROMPT-001 修改 Prompt + +TC-PROMPT-002 恢复默认 + +TC-PROMPT-003 操作日志 + +## 第八章 模型管理测试 + +TC-MODEL-001 切换模型 + +TC-MODEL-002 Timeout + +TC-MODEL-003 API Key 错误 + +## 第九章 用户管理测试 + +覆盖: + +新增用户 + +编辑用户 + +启用 + +禁用 + +设置有效期 + +设置聊天次数 + +批量授权知识库 + +批量启用 + +批量删除 + +每项验证: + +数据正确 + +日志正确 + +权限立即生效 + +## 第十章 知识库管理测试 + +覆盖: + +新增 + +编辑 + +删除 + +状态切换 + +重点验证: + +删除知识库: + +自动解除用户关联 + +写日志 + +AI 不再检索 + +## 第十一章 聊天记录测试 + +验证: + +保存成功 + +查询成功 + +导出成功 + +删除仅隐藏 + +永久保存 + +导出字段: + +用户 + +手机号 + +会话 + +提问 + +AI 回复 + +时间 + +## 第十二章 数据统计测试 + +验证首页: + +总用户 + +今日新增 + +今日活跃 + +今日聊天次数 + +Token 消耗 + +知识库排行榜 + +验证: + +今天 + +最近7天 + +自定义 + +统计是否正确。 + +## 第十三章 操作日志测试 + +验证: + +每一次: + +新增 + +编辑 + +删除 + +配置修改 + +Prompt 修改 + +模型切换 + +必须产生日志。 + +## 第十四章 安全测试 + +验证: + +JWT 失效 + +越权访问 + +SQL 注入 + +XSS + +重复提交 + +非法 Token + +接口权限控制 + +## 第十五章 性能测试 + +### 并发登录 + +100 用户同时登录。 + +预期: + +成功率 ≥99%。 + +### AI 并发 + +100 用户同时聊天。 + +预期: + +服务稳定 + +无崩溃 + +Streaming 正常 + +### 数据库 + +验证: + +索引命中。 + +慢 SQL。 + +锁等待。 + +## 第十六章 UAT(用户验收测试) + +业务方验收重点: + +## 第十七章 缺陷等级 + +上线建议: + +P0:0 个 + +P1:0 个 + +P2:≤5 个(且有规避方案) + +P3:允许保留少量,不影响业务 + +## 《测试用例》V1.0 完成 + +本测试文档覆盖了: + +登录 + +AI 问答 + +飞书知识库 + +权限控制 + +Prompt + +模型管理 + +用户管理 + +知识库管理 + +聊天记录 + +数据统计 + +操作日志 + +安全测试 + +性能测试 + +用户验收测试(UAT) + +## Table 1 +| 版本 | V1.0 | +| --- | --- | +| 项目名称 | AI 企业知识库问答系统 | +| 依据文档 | PRD V1.0、SRS V1.0 | +| 测试类型 | 功能测试 + 业务测试 + 异常测试 + 权限测试 + AI 测试 | + +## Table 2 +| 项目 | 配置 | +| --- | --- | +| 系统环境 | Linux | +| 数据库 | MySQL 8.x | +| Redis | 7.x | +| JDK | 21(如 Java) | +| 浏览器 | Chrome 最新版 | +| 移动端 | Android / iOS | +| 飞书 | 测试知识库 | +| AI 模型 | 配置的生产/测试模型 | + +## Table 3 +| 前置条件 | • 用户存在或首次登录 • 短信验证码正确 | +| --- | --- | +| 步骤 | 1. 输入手机号 2. 输入验证码 3. 点击登录 | +| 预期结果 | • 登录成功 • 自动进入首页 • 返回 Token • 更新最后登录时间 | + +## Table 4 +| 步骤 | 1. 首次使用手机号登录。 | +| --- | --- | +| 预期结果 | • 自动创建用户 • 登录成功 • 默认每日聊天次数生效 | + +## Table 5 +| 预期结果 | • 验证码错误 • 登录失败。 | +| --- | --- | + +## Table 6 +| 预期结果 | • 验证码已失效 | +| --- | --- | + +## Table 7 +| 预期结果 | • 当前账号已被禁用 | +| --- | --- | + +## Table 8 +| 预期结果 | • 当前账号已失效,请联系管理员 | +| --- | --- | + +## Table 9 +| 步骤 | 1. 发送: 2. 直播间没人怎么办? | +| --- | --- | +| 预期结果 | • 成功调用 AI • 流式输出 • 保存聊天记录 | + +## Table 10 +| 步骤 | 1. 第一轮聊天完成。 | +| --- | --- | +| 预期结果 | • AI 自动生成标题。 | + +## Table 11 +| 步骤 | 1. 点击: 2. 停止生成 | +| --- | --- | +| 预期结果 | • AI 停止输出 • 已生成内容保留 • 消息状态为 STOPPED | + +## Table 12 +| 步骤 | 1. 删除聊天。 | +| --- | --- | +| 预期结果 | • 前端隐藏 • 数据库仍保留 | + +## Table 13 +| 预期结果 | • 标题立即更新。 | +| --- | --- | + +## Table 14 +| 输入 | • 要求 AI 输出: • 标题 • 表格 • 列表 • 代码块 | +| --- | --- | +| 预期结果 | • 全部正确渲染。 | + +## Table 15 +| 用户 | • 拥有: • 直播运营 | +| --- | --- | +| 提问 | • 销售SOP | +| 预期结果 | • AI 无法检索销售知识库。 | + +## Table 16 +| 用户 | • 拥有: • 直播 • 客服 | +| --- | --- | +| 预期结果 | • 两个知识库均参与检索。 | + +## Table 17 +| 预期结果 | • 过期知识库不参与检索。 | +| --- | --- | + +## Table 18 +| 步骤 | 1. 后台禁用知识库。 | +| --- | --- | +| 预期结果 | • AI 不检索该知识库。 | + +## Table 19 +| 步骤 | 1. 修改飞书文档。 2. 再次提问。 | +| --- | --- | +| 预期结果 | • AI 返回最新内容。 | + +## Table 20 +| 模拟 | • 接口超时。 | +| --- | --- | +| 预期结果 | • 自动重试。 | +| 默认 | • 2 次。 | + +## Table 21 +| 预期结果 | • 当前知识库服务暂时不可用,请稍后再试。 • 后台写日志。 | +| --- | --- | + +## Table 22 +| 步骤 | 1. 后台修改 Prompt。 2. 立即聊天。 | +| --- | --- | +| 预期结果 | • 新 Prompt 生效。 | + +## Table 23 +| 预期结果 | • 恢复默认 Prompt。 | +| --- | --- | + +## Table 24 +| 步骤 | 1. 修改 Prompt。 | +| --- | --- | +| 预期结果 | • 日志记录: • 修改人 • 修改时间 • 修改内容 | + +## Table 25 +| 步骤 | 1. 后台切换。 | +| --- | --- | +| 预期结果 | • 立即生效。 | + +## Table 26 +| 设置 | • 10 秒。 | +| --- | --- | +| 预期结果 | • 10 秒后超时。 | + +## Table 27 +| 预期结果 | • AI 返回: • 服务异常 • 后台记录错误。 | +| --- | --- | + +## Table 28 +| 模块 | 验收内容 | +| --- | --- | +| 登录 | 手机验证码登录正常 | +| AI 聊天 | 回答准确、流式输出正常 | +| 权限 | 仅访问授权知识库 | +| 飞书 | 修改文档后实时生效 | +| 管理后台 | 用户、知识库、Prompt、模型管理正常 | +| 聊天记录 | 永久保存、可查询、可导出 | +| 数据统计 | 指标准确 | +| 操作日志 | 完整记录管理员操作 | + +## Table 29 +| 等级 | 说明 | +| --- | --- | +| P0 | 系统不可用、数据丢失、安全漏洞 | +| P1 | 核心业务无法完成 | +| P2 | 功能异常但有替代方案 | +| P3 | UI、文案、非关键问题 | diff --git a/ai_knowledge_base_v2/extracted/09-AI知识库系统项目验收标准_UAT_V10.md b/ai_knowledge_base_v2/extracted/09-AI知识库系统项目验收标准_UAT_V10.md new file mode 100644 index 0000000..4880e16 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/09-AI知识库系统项目验收标准_UAT_V10.md @@ -0,0 +1,473 @@ +# 09-AI知识库系统项目验收标准(UAT)V1.0.docx + +AI 企业知识库问答系统 + +项目验收标准(UAT) + +User Acceptance Test + +正式交付文件 + +编制日期:2026年7月 + +文档信息 + +版本记录 + +验收结果说明 + +各验收项由验收参与方现场验证,并在“验收结果”栏勾选“通过”或“不通过”;存在问题时,应在“备注”栏记录缺陷编号、处理意见或双方确认事项。 + +目录 + +第一章 文档说明 + +第二章 验收环境 + +第三章 用户端验收 + +第四章 AI 能力验收 + +第五章 管理后台验收 + +第六章 聊天记录验收 + +第七章 数据统计验收 + +第八章 权限验收 + +第九章 异常处理验收 + +第十章 性能验收 + +第十一章 安全验收 + +第十二章 上线验收清单 + +第十三章 缺陷验收标准 + +第十四章 项目交付清单 + +第十五章 验收签字 + +第一章 文档说明 + +1.1 编写目的 + +本文件用于项目最终验收。 + +项目完成开发、测试后,由产品、甲方、研发共同依据本文件进行验收。 + +验收通过后方可正式上线。 + +1.2 验收原则 + +所有验收项必须满足以下原则: + +☐ 功能符合 PRD + +☐ 页面符合设计 + +☐ 数据准确 + +☐ 权限正确 + +☐ AI 回答符合业务规则 + +☐ 无 P0/P1 缺陷 + +第二章 验收环境 + +第三章 用户端验收 + +3.1 登录模块 + +3.2 AI 聊天 + +3.3 历史聊天 + +3.4 每日聊天次数 + +第四章 AI 能力验收 + +4.1 飞书实时检索 + +4.2 权限控制 + +验收场景:用户 A 仅拥有“直播运营”知识库权限,提问“财务制度”。 + +4.3 知识冲突 + +验收场景:知识库来源 A 记录“直播 2 小时”,来源 B 记录“直播 4 小时”。 + +4.4 无知识命中 + +4.5 Streaming + +第五章 管理后台验收 + +5.1 Dashboard + +5.2 用户管理 + +5.3 管理员管理 + +5.4 知识库管理 + +5.5 Prompt 管理 + +5.6 AI 模型 + +5.7 系统配置 + +5.8 操作日志 + +第六章 聊天记录验收 + +第七章 数据统计验收 + +第八章 权限验收 + +第九章 异常处理验收 + +9.1 飞书异常 + +验收方法:关闭或模拟飞书接口不可用。 + +9.2 AI 超时 + +验收方法:模拟 AI 请求持续 30 秒。 + +9.3 用户停止生成 + +第十章 性能验收 + +第十一章 安全验收 + +第十二章 上线验收清单 + +上线前确认: + +第十三章 缺陷验收标准 + +第十四章 项目交付清单 + +14.1 文档 + +14.2 源码 + +14.3 部署资料 + +第十五章 验收签字 + +本项目依据本验收标准完成验收。各方签字后,视为对验收结论及相关遗留事项达成一致。 + +验收说明/遗留事项: + +________________________________________________________________________________ + +________________________________________________________________________________ + +________________________________________________________________________________ + +________________________________________________________________________________ + +——《09-AI知识库系统项目验收标准(UAT)》V1.0 完—— + +## Table 1 +| 文档编号 | 09 | +| --- | --- | +| 版本 | V1.0 | +| 项目名称 | AI 企业知识库问答系统 | +| 文档类型 | User Acceptance Test(用户验收标准) | +| 依据文档 | PRD V1.0、SRS V1.0、测试用例 V1.0 | + +## Table 2 +| 项目 | 内容 | +| --- | --- | +| 文档名称 | 《09-AI知识库系统项目验收标准(UAT)》 | +| 版本 | V1.0 | +| 项目名称 | AI 企业知识库问答系统 | +| 文档类型 | User Acceptance Test(用户验收标准) | +| 依据文档 | PRD V1.0、SRS V1.0、测试用例 V1.0 | +| 适用阶段 | 项目最终验收及上线前确认 | + +## Table 3 +| 版本 | 日期 | 编制/修订说明 | 编制人 | +| --- | --- | --- | --- | +| V1.0 | 2026年7月 | 初版,作为项目最终验收依据 | | + +## Table 4 +| 项目 | 要求 | +| --- | --- | +| 前端 | 生产构建版本 | +| 后端 | Release 版本 | +| AI 服务 | 正式配置 | +| 飞书知识库 | 正式知识库 | +| 数据库 | MySQL 8.x | +| Redis | 已部署 | +| HTTPS | 已启用 | + +## Table 5 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 手机号验证码登录 | 用户可通过手机号与正确短信验证码成功登录。 | □通过 □不通过 | | +| 2 | 首次登录自动注册 | 首次登录用户自动完成账号注册并进入系统。 | □通过 □不通过 | | +| 3 | Token 正常签发 | 登录成功后正确签发 Token,接口鉴权正常。 | □通过 □不通过 | | +| 4 | 多设备登录正常 | 用户可在多个设备正常登录,行为符合系统设计。 | □通过 □不通过 | | +| 5 | 登录状态保持正常 | 登录有效期内状态保持正常,过期后按配置重新认证。 | □通过 □不通过 | | +| 6 | 登录成功率 | ≥99%。 | □通过 □不通过 | | +| 7 | 验证码校验 | 验证码正确时通过,错误、过期或重复使用时正确拦截。 | □通过 □不通过 | | +| 8 | 登录耗时 | ≤3 秒。 | □通过 □不通过 | | + +## Table 6 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 新建聊天 | 用户可正常创建新的聊天会话。 | □通过 □不通过 | | +| 2 | 输入问题 | 用户可输入并提交问题。 | □通过 □不通过 | | +| 3 | AI 回复 | AI 可基于知识库与业务规则正常回复。 | □通过 □不通过 | | +| 4 | Streaming 输出 | 回复内容实时流式输出,过程中无明显卡顿。 | □通过 □不通过 | | +| 5 | 停止生成 | 点击停止生成后立即生效。 | □通过 □不通过 | | +| 6 | 自动生成标题 | 第一轮问答完成后自动生成聊天标题。 | □通过 □不通过 | | + +## Table 7 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 历史列表 | 用户可查看本人历史聊天列表。 | □通过 □不通过 | | +| 2 | 查看聊天 | 用户可进入历史会话并查看完整聊天内容。 | □通过 □不通过 | | +| 3 | 删除聊天 | 删除后用户端不可见,后台记录仍保留。 | □通过 □不通过 | | + +## Table 8 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 达到次数限制 | 达到每日限制后,系统返回:“今日聊天次数已用完,请明天再试或联系管理员。” | □通过 □不通过 | | +| 2 | 次日恢复 | 第二天每日聊天次数自动恢复。 | □通过 □不通过 | | + +## Table 9 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 修改飞书文档后立即提问 | AI 返回飞书知识库中的最新内容,无需执行额外同步。 | □通过 □不通过 | | + +## Table 10 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 无权限知识库隔离 | 不得检索或返回财务知识库内容。 | □通过 □不通过 | | + +## Table 11 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 冲突信息处理 | AI 分别列出两个来源及对应内容,不得自行判断或合并为唯一结论。 | □通过 □不通过 | | + +## Table 12 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 无知识命中提示 | 统一返回:“当前知识库中未检索到相关内容,请联系管理员补充相关知识。” | □通过 □不通过 | | +| 2 | 禁止编造 | 不得编造知识库中不存在的答案。 | □通过 □不通过 | | + +## Table 13 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 实时输出 | AI 回复以流式方式实时输出。 | □通过 □不通过 | | +| 2 | 停止生成 | 支持用户主动停止生成,停止操作立即生效。 | □通过 □不通过 | | + +## Table 14 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 总用户 | 统计结果准确。 | □通过 □不通过 | | +| 2 | 今日新增 | 统计结果准确。 | □通过 □不通过 | | +| 3 | 今日活跃 | 统计结果准确。 | □通过 □不通过 | | +| 4 | 今日聊天次数 | 统计结果准确。 | □通过 □不通过 | | +| 5 | Token 消耗 | 统计结果准确。 | □通过 □不通过 | | +| 6 | 知识库排行榜 | 统计结果准确,排序与数据一致。 | □通过 □不通过 | | + +## Table 15 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 新增用户 | 可正常新增,保存后立即生效。 | □通过 □不通过 | | +| 2 | 编辑用户 | 可正常编辑,保存后立即生效。 | □通过 □不通过 | | +| 3 | 启用用户 | 启用后用户可正常使用系统。 | □通过 □不通过 | | +| 4 | 禁用用户 | 禁用后用户访问立即受限。 | □通过 □不通过 | | +| 5 | 设置有效期 | 有效期配置保存后立即生效。 | □通过 □不通过 | | +| 6 | 设置聊天次数 | 聊天次数配置保存后立即生效。 | □通过 □不通过 | | +| 7 | 批量授权 | 可批量配置知识库权限,保存后立即生效。 | □通过 □不通过 | | +| 8 | 批量删除 | 可按业务规则完成批量删除。 | □通过 □不通过 | | + +## Table 16 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 创建管理员 | 仅超级管理员可创建管理员。 | □通过 □不通过 | | +| 2 | 编辑管理员 | 可正常修改管理员基础信息。 | □通过 □不通过 | | +| 3 | 修改角色 | 角色修改后权限立即生效。 | □通过 □不通过 | | +| 4 | 修改密码 | 密码修改成功并按安全规则生效。 | □通过 □不通过 | | + +## Table 17 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 新增知识库 | 可正常新增知识库配置。 | □通过 □不通过 | | +| 2 | 编辑知识库 | 可正常编辑并保存。 | □通过 □不通过 | | +| 3 | 删除知识库 | 删除后自动解除权限关联,AI 不再检索该知识库。 | □通过 □不通过 | | +| 4 | 启用知识库 | 启用后按权限参与检索。 | □通过 □不通过 | | +| 5 | 禁用知识库 | 禁用后 AI 不再检索。 | □通过 □不通过 | | + +## Table 18 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 修改 Prompt | 保存后立即发起聊天,新 Prompt 生效。 | □通过 □不通过 | | + +## Table 19 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 切换模型 | 模型切换后立即生效,无需重启服务。 | □通过 □不通过 | | + +## Table 20 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 登录有效期 | 修改后立即生效。 | □通过 □不通过 | | +| 2 | AI 超时 | 修改后立即生效。 | □通过 □不通过 | | +| 3 | 飞书重试 | 修改后立即生效。 | □通过 □不通过 | | +| 4 | 上下文长度 | 修改后立即生效。 | □通过 □不通过 | | +| 5 | 每日聊天次数 | 修改后立即生效。 | □通过 □不通过 | | + +## Table 21 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 关键操作记录 | 所有后台关键操作均必须记录。 | □通过 □不通过 | | +| 2 | 操作人 | 日志准确记录操作人。 | □通过 □不通过 | | +| 3 | 时间 | 日志准确记录操作时间。 | □通过 □不通过 | | +| 4 | 内容 | 日志准确记录操作内容。 | □通过 □不通过 | | +| 5 | 修改前 | 涉及修改的操作记录修改前内容。 | □通过 □不通过 | | +| 6 | 修改后 | 涉及修改的操作记录修改后内容。 | □通过 □不通过 | | + +## Table 22 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 保存用户问题 | 用户问题完整保存。 | □通过 □不通过 | | +| 2 | 保存 AI 回复 | AI 回复完整保存。 | □通过 □不通过 | | +| 3 | 后台查询 | 后台可按设计条件查询聊天记录。 | □通过 □不通过 | | +| 4 | 聊天记录导出 | 后台可正常导出聊天记录。 | □通过 □不通过 | | +| 5 | 永久保存 | 聊天记录按系统要求永久保存。 | □通过 □不通过 | | + +## Table 23 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 今天 | 可查询当天统计数据。 | □通过 □不通过 | | +| 2 | 最近 7 天 | 可查询最近 7 天统计数据。 | □通过 □不通过 | | +| 3 | 自定义时间 | 可按自定义时间范围查询。 | □通过 □不通过 | | +| 4 | 用户统计 | 数据准确且与业务数据一致。 | □通过 □不通过 | | +| 5 | Token 统计 | 数据准确且与模型调用记录一致。 | □通过 □不通过 | | +| 6 | 聊天次数统计 | 数据准确且与聊天记录一致。 | □通过 □不通过 | | +| 7 | 知识库排行 | 数据准确,排序规则正确。 | □通过 □不通过 | | + +## Table 24 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 管理员权限 | 管理员可访问其角色授权范围内的功能。 | □通过 □不通过 | | +| 2 | 普通管理员限制 | 普通管理员不能创建管理员。 | □通过 □不通过 | | +| 3 | 用户后台隔离 | 普通用户不能访问管理后台。 | □通过 □不通过 | | +| 4 | AI 知识库隔离 | AI 不能访问用户无权限的知识库。 | □通过 □不通过 | | + +## Table 25 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 自动重试 | 系统自动重试,默认重试 2 次。 | □通过 □不通过 | | +| 2 | 最终提示 | 重试仍失败时提示:“当前知识库服务暂时不可用,请稍后再试。” | □通过 □不通过 | | + +## Table 26 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 超时终止 | 达到超时阈值后立即终止请求。 | □通过 □不通过 | | +| 2 | 日志记录 | 超时事件完整记录日志。 | □通过 □不通过 | | + +## Table 27 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 停止生成 | 点击“停止生成”后立即结束。 | □通过 □不通过 | | +| 2 | 保留内容 | 停止前已经生成的内容保留。 | □通过 □不通过 | | + +## Table 28 +| 项目 | 验收标准 | 验收结果 | 备注 | +| --- | --- | --- | --- | +| 登录 | ≤3 秒 | □通过 □不通过 | | +| AI 首字返回 | ≤5 秒(网络与模型正常情况下) | □通过 □不通过 | | +| 普通接口响应 | ≤1 秒 | □通过 □不通过 | | +| Dashboard | ≤2 秒 | □通过 □不通过 | | +| 并发聊天 | 满足项目预期并保持稳定 | □通过 □不通过 | | +| 数据库慢 SQL | 无明显性能瓶颈 | □通过 □不通过 | | + +## Table 29 +| 序号 | 验收项 | 验收标准/预期结果 | 验收结果 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | HTTPS | 系统全站启用 HTTPS。 | □通过 □不通过 | | +| 2 | JWT 校验 | JWT 签名、有效期与合法性校验正确。 | □通过 □不通过 | | +| 3 | Token 失效 | Token 失效后不可继续访问受保护接口。 | □通过 □不通过 | | +| 4 | 权限隔离 | 不同角色、用户及知识库权限严格隔离。 | □通过 □不通过 | | +| 5 | SQL 注入防护 | 通过 SQL 注入安全测试。 | □通过 □不通过 | | +| 6 | XSS 防护 | 通过 XSS 安全测试。 | □通过 □不通过 | | +| 7 | 接口鉴权 | 所有受保护接口均执行正确鉴权。 | □通过 □不通过 | | +| 8 | 管理后台权限控制 | 后台菜单、页面及接口权限控制全部通过。 | □通过 □不通过 | | + +## Table 30 +| 序号 | 确认事项 | 确认结果 | 负责人 | 备注 | +| --- | --- | --- | --- | --- | +| 1 | 数据库初始化完成 | □已完成 □未完成 | | | +| 2 | 超级管理员创建完成 | □已完成 □未完成 | | | +| 3 | 飞书知识库配置完成 | □已完成 □未完成 | | | +| 4 | AI 模型配置完成 | □已完成 □未完成 | | | +| 5 | Prompt 配置完成 | □已完成 □未完成 | | | +| 6 | 系统参数配置完成 | □已完成 □未完成 | | | +| 7 | HTTPS 配置完成 | □已完成 □未完成 | | | +| 8 | 短信服务配置完成 | □已完成 □未完成 | | | +| 9 | 日志服务正常 | □已完成 □未完成 | | | +| 10 | 备份策略已验证 | □已完成 □未完成 | | | + +## Table 31 +| 等级 | 上线要求 | +| --- | --- | +| P0 | 0 个 | +| P1 | 0 个 | +| P2 | 原则上 0 个;如保留需经双方确认并有规避方案 | +| P3 | 可保留少量,不影响正常业务 | + +## Table 32 +| 序号 | 交付文档 | 交付状态 | 备注 | +| --- | --- | --- | --- | +| 1 | 《01-产品需求说明书(PRD)》 | □已交付 | | +| 2 | 《02-系统功能规格说明书(SRS)》 | □已交付 | | +| 3 | 《03-数据库设计文档》 | □已交付 | | +| 4 | 《04-API 接口设计文档》 | □已交付 | | +| 5 | 《05-AI/RAG 技术方案》 | □已交付 | | +| 6 | 《06-后台页面原型说明》 | □已交付 | | +| 7 | 《07-研发实施计划》 | □已交付 | | +| 8 | 《08-测试用例》 | □已交付 | | +| 9 | 《09-项目验收标准(UAT)》 | □已交付 | | + +## Table 33 +| 序号 | 交付内容 | 交付状态 | 备注 | +| --- | --- | --- | --- | +| 1 | 用户端源码 | □已交付 | | +| 2 | 管理后台源码 | □已交付 | | +| 3 | 后端源码 | □已交付 | | +| 4 | AI 服务源码 | □已交付 | | +| 5 | 数据库脚本 | □已交付 | | + +## Table 34 +| 序号 | 交付内容 | 交付状态 | 备注 | +| --- | --- | --- | --- | +| 1 | 环境配置说明 | □已交付 | | +| 2 | 初始化 SQL | □已交付 | | +| 3 | 配置模板 | □已交付 | | +| 4 | 启动脚本 | □已交付 | | +| 5 | 运维说明 | □已交付 | | + +## Table 35 +| 角色 | 姓名 | 日期 | 签字 | +| --- | --- | --- | --- | +| 甲方项目负责人 | | | | +| 产品经理 | | | | +| 技术负责人 | | | | +| 测试负责人 | | | | +| 项目经理 | | | | + +## Table 36 +| 最终验收结论 | □ 验收通过 □ 有条件通过 □ 验收不通过 | +| --- | --- | diff --git a/ai_knowledge_base_v2/extracted/10-AI知识库系统部署运维手册_V10.md b/ai_knowledge_base_v2/extracted/10-AI知识库系统部署运维手册_V10.md new file mode 100644 index 0000000..45aeea1 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/10-AI知识库系统部署运维手册_V10.md @@ -0,0 +1,398 @@ +# 10-AI知识库系统部署运维手册_V1.0.docx + +10 + +## AI知识库系统部署运维手册 + +Deployment & Operations Guide + +━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +系统部署|环境配置|上线运维|监控备份|故障恢复 + +## 文档目录 + +## 第一章 文档说明 + +### 1.1 编写目的 + +本文档用于指导系统部署、环境配置、上线、运维、监控、备份及故障恢复。 + +适用对象: + +运维工程师 + +后端开发工程师 + +DevOps 工程师 + +项目实施人员 + +## 第二章 系统部署架构 + +### 2.1 总体架构 + +## 第三章 服务器规划 + +### 3.1 建议配置(生产环境) + +### 3.2 环境要求 + +Linux(Ubuntu LTS 或 CentOS Stream) + +Docker(如采用容器化) + +MySQL 8.x + +Redis 7.x + +Nginx 最新稳定版 + +Git + +## 第四章 环境变量配置 + +建议使用 .env 或配置中心统一管理。 + +## 第五章 数据库初始化 + +部署步骤: + +1. 创建数据库。 + +2. 执行建表 SQL。 + +3. 初始化基础数据。 + +4. 创建超级管理员。 + +5. 验证连接。 + +初始化内容包括: + +管理员角色 + +超级管理员账号 + +默认 Prompt + +默认系统配置 + +默认模型配置 + +## 第六章 Redis 使用说明 + +Redis 用于: + +登录验证码缓存 + +Token 黑名单(如采用) + +高频配置缓存(可选) + +建议: + +开启持久化 + +设置合理内存上限 + +定期监控命中率 + +## 第七章 Nginx 配置建议 + +建议开启: + +HTTPS + +HTTP/2(如适用) + +Gzip 压缩 + +SSE 长连接支持 + +静态资源缓存 + +反向代理: + +## 第八章 AI 服务配置 + +启动前检查: + +AI API Key 正确 + +飞书配置正确 + +Prompt 已初始化 + +默认模型已启用 + +启动后验证: + +AI 可正常调用 + +飞书可正常检索 + +SSE 流式输出正常 + +## 第九章 上线流程 + +建议流程: + +上线验证重点: + +登录 + +AI 聊天 + +飞书检索 + +后台管理 + +权限控制 + +## 第十章 日志管理 + +建议分类: + +建议: + +日志按天滚动 + +保留周期可配置 + +重要日志集中采集(如 ELK、Loki 等) + +## 第十一章 数据备份 + +### 11.1 数据库 + +建议: + +每日增量备份 + +每周完整备份 + +异地备份(如有条件) + +### 11.2 配置文件 + +备份: + +环境变量 + +Nginx 配置 + +系统配置 + +## 第十二章 系统监控 + +建议监控: + +告警建议: + +服务不可用 + +AI 超时率异常 + +数据库连接异常 + +Redis 不可用 + +HTTPS 证书即将过期 + +## 第十三章 故障处理 + +### 13.1 飞书不可用 + +处理: + +1. 检查飞书接口状态 + +2. 检查 App 凭证 + +3. 查看 AI 请求日志 + +4. 重试验证 + +### 13.2 AI 模型不可用 + +处理: + +1. 检查 API Key + +2. 检查模型配置 + +3. 查看请求日志 + +4. 必要时切换备用模型(如后续版本支持) + +### 13.3 数据库异常 + +处理: + +1. 检查数据库状态 + +2. 查看慢 SQL + +3. 检查磁盘空间 + +4. 恢复备份(必要时) + +## 第十四章 回滚方案 + +发生重大故障时: + +1. 停止新版本服务 + +2. 恢复上一版本程序 + +3. 恢复数据库(如涉及数据结构变更) + +4. 验证核心功能 + +5. 恢复对外服务 + +## 第十五章 运维检查清单 + +### 15.1 每日检查 + +☑ 服务运行状态 + +☑ AI 请求成功率 + +☑ 飞书接口状态 + +☑ 数据库运行状态 + +☑ Redis 状态 + +☑ 日志是否正常 + +### 15.2 每周检查 + +☑ 数据备份验证 + +☑ 磁盘空间检查 + +☑ SSL 证书检查 + +☑ 系统安全更新评估 + +## 《部署运维手册》V1.0 完成 + +本手册覆盖了: + +系统部署架构 + +环境配置 + +数据库初始化 + +Redis 与 Nginx 配置建议 + +AI 服务部署 + +上线流程 + +日志管理 + +数据备份 + +系统监控 + +故障处理 + +回滚方案 + +运维巡检清单 + +## Table 1 +| 项目名称 | AI 企业知识库问答系统 | +| --- | --- | +| 文档版本 | V1.0 | +| 适用版本 | V1.0 | + +## Table 2 +| 01 | 第一章 文档说明 | +| --- | --- | +| 02 | 第二章 系统部署架构 | +| 03 | 第三章 服务器规划 | +| 04 | 第四章 环境变量配置 | +| 05 | 第五章 数据库初始化 | +| 06 | 第六章 Redis 使用说明 | +| 07 | 第七章 Nginx 配置建议 | +| 08 | 第八章 AI 服务配置 | +| 09 | 第九章 上线流程 | +| 10 | 第十章 日志管理 | +| 11 | 第十一章 数据备份 | +| 12 | 第十二章 系统监控 | +| 13 | 第十三章 故障处理 | +| 14 | 第十四章 回滚方案 | +| 15 | 第十五章 运维检查清单 | + +## Table 3 +| Internet │ HTTPS / 443 │ Nginx 反向代理 │ ┌─────────────┴─────────────┐ │ │ 用户端(H5/Web) 管理后台(Admin) │ │ └─────────────┬─────────────┘ │ Backend API │ ┌─────────────┼─────────────┐ │ │ │ AI Service Redis MySQL │ ▼ 飞书知识库 API + AI 模型 API | +| --- | + +## Table 4 +| 服务 | CPU | 内存 | 磁盘 | +| --- | --- | --- | --- | +| Nginx | 2 核 | 2 GB | 20 GB | +| Backend | 4 核 | 8 GB | 50 GB | +| AI Service | 4 核 | 8 GB | 50 GB | +| MySQL | 8 核 | 16 GB | 200 GB SSD | +| Redis | 2 核 | 4 GB | 20 GB | + +## Table 5 +| 配置项 | 说明 | +| --- | --- | +| DB_HOST | 数据库地址 | +| DB_PORT | 数据库端口 | +| DB_NAME | 数据库名称 | +| DB_USER | 数据库账号 | +| DB_PASSWORD | 数据库密码 | +| REDIS_HOST | Redis 地址 | +| REDIS_PORT | Redis 端口 | +| JWT_SECRET | JWT 密钥 | +| FEISHU_APP_ID | 飞书应用 ID | +| FEISHU_APP_SECRET | 飞书密钥 | +| AI_API_URL | AI 接口地址 | +| AI_API_KEY | AI 接口密钥 | + +## Table 6 +| 安全建议:所有密钥均通过环境变量或密钥管理系统保存,不写入源码仓库。 | +| --- | + +## Table 7 +| 访问路径 | 代理目标 | +| --- | --- | +| /api/* | Backend | +| /admin/* | 管理后台 | +| / | 用户端 | + +## Table 8 +| 代码发布 │ 数据库升级 │ 配置环境变量 │ 启动 Redis │ 启动 MySQL │ 启动 Backend │ 启动 AI Service │ 启动 Nginx │ 功能验证 │ 正式开放访问 | +| --- | + +## Table 9 +| 日志类型 | 内容 | +| --- | --- | +| 应用日志 | 系统运行日志 | +| AI 日志 | AI 请求与响应 | +| 操作日志 | 后台管理员操作 | +| 登录日志 | 登录记录 | +| 错误日志 | 异常与堆栈信息 | + +## Table 10 +| 指标 | 建议 | +| --- | --- | +| CPU 使用率 | <80% | +| 内存使用率 | <80% | +| MySQL 连接数 | 持续监控 | +| Redis 内存 | 持续监控 | +| AI 请求耗时 | 持续监控 | +| 飞书接口异常率 | 持续监控 | + +## Table 11 +| 发布要求:所有发布建议保留可回滚版本。 | +| --- | diff --git a/ai_knowledge_base_v2/extracted/11-AI知识库系统字段字典_Data_Dictionary_V10.md b/ai_knowledge_base_v2/extracted/11-AI知识库系统字段字典_Data_Dictionary_V10.md new file mode 100644 index 0000000..366bb1b --- /dev/null +++ b/ai_knowledge_base_v2/extracted/11-AI知识库系统字段字典_Data_Dictionary_V10.md @@ -0,0 +1,264 @@ +# 11-AI知识库系统字段字典_Data_Dictionary_V1.0.xlsx + +## Sheet: 00_文档说明 +- Range: 30 rows x 6 columns + +| 11-AI知识库系统字段字典(Data Dictionary) | | | | | | +| 文档名称 | 11-AI知识库系统字段字典(Data Dictionary) | | | | | +| 版本 | V1.0 | | | | | +| 项目名称 | AI 企业知识库问答系统 | | | | | +| 依据文档 | 数据库设计 V1.0 | | | | | +| 适用版本 | V1.0 | | | | | +| 第一章 文档说明 | | | | | | +| 1.1 编写目的 | | | | | | +| 字段字典用于统一数据库字段定义,避免开发、测试、运维及 BI 人员理解不一致。 所有新增数据表均需遵循本规范。 | | | | | | +| 工作表目录 | | | | | | +| 序号 | 工作表 | 内容 | | | | +| 1 | 01_通用字段规范 | 公共字段定义 | | | | +| 2 | 02_sys_user | 用户表字段 | | | | +| 3 | 03_sys_admin | 管理员表字段 | | | | +| 4 | 04_sys_knowledge | 知识库表字段 | | | | +| 5 | 05_sys_user_kb | 用户知识库权限表字段 | | | | +| 6 | 06_sys_chat_session | 聊天会话表字段 | | | | +| 7 | 07_sys_chat_message | 聊天消息表字段 | | | | +| 8 | 08_sys_prompt | Prompt 表字段 | | | | +| 9 | 09_sys_model | 模型配置表字段 | | | | +| 10 | 10_sys_system_config | 系统配置表字段 | | | | +| 11 | 11_sys_ai_request_log | AI 请求日志字段 | | | | +| 12 | 12_sys_operation_log | 操作日志表字段 | | | | +| 13 | 13_字段取值规范 | 状态、删除标识、消息状态取值 | | | | +| 14 | 14_命名维护规范 | 表命名、字段命名及维护规范 | | | | + +## Sheet: 01_通用字段规范 +- Range: 10 rows x 4 columns + +| 第二章 通用字段规范 | | | | +| 所有业务表建议包含以下公共字段 | | | | +| 字段 | 类型 | 是否必填 | 说明 | +| id | BIGINT | √ | 主键 | +| created_at | DATETIME | √ | 创建时间 | +| updated_at | DATETIME | √ | 更新时间 | +| created_by | BIGINT | × | 创建人(管理员) | +| updated_by | BIGINT | × | 修改人(管理员) | +| is_deleted | TINYINT | √ | 逻辑删除标识(0=否,1=是) | + +## Sheet: 02_sys_user +- Range: 17 rows x 6 columns + +| 第三章 用户表字段(sys_user) | | | | | | +| 表名:sys_user | | | | | | +| 字段 | 类型 | 长度 | 必填 | 默认值 | 说明 | +| id | BIGINT | - | √ | 自增 | 主键 | +| phone | VARCHAR | 20 | √ | - | 手机号(唯一) | +| name | VARCHAR | 50 | √ | - | 姓名 | +| nickname | VARCHAR | 50 | × | NULL | 昵称 | +| status | TINYINT | - | √ | 1 | 账号状态 | +| daily_chat_limit | INT | - | √ | 100 | 每日聊天额度 | +| daily_chat_used | INT | - | √ | 0 | 今日已使用次数 | +| effective_at | DATETIME | - | × | NULL | 生效时间 | +| expired_at | DATETIME | - | × | NULL | 到期时间 | +| last_login_at | DATETIME | - | × | NULL | 最后登录时间 | +| created_at | DATETIME | - | √ | 当前时间 | 创建时间 | +| updated_at | DATETIME | - | √ | 当前时间 | 更新时间 | +| is_deleted | TINYINT | - | √ | 0 | 是否删除 | + +## Sheet: 03_sys_admin +- Range: 13 rows x 3 columns + +| 第四章 管理员表字段(sys_admin) | | | +| 表名:sys_admin | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| username | VARCHAR(50) | 登录账号 | +| password | VARCHAR(255) | 加密密码 | +| name | VARCHAR(50) | 姓名 | +| role_id | BIGINT | 角色ID | +| status | TINYINT | 状态 | +| last_login_at | DATETIME | 最后登录时间 | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | + +## Sheet: 04_sys_knowledge +- Range: 12 rows x 3 columns + +| 第五章 知识库表字段(sys_knowledge) | | | +| 表名:sys_knowledge | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| name | VARCHAR(100) | 知识库名称 | +| feishu_space_id | VARCHAR(100) | 飞书 Space ID | +| feishu_node_id | VARCHAR(100) | 飞书节点 ID | +| status | TINYINT | 启用/禁用 | +| remark | VARCHAR(255) | 备注 | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | + +## Sheet: 05_sys_user_kb +- Range: 12 rows x 3 columns + +| 第六章 用户知识库权限表(sys_user_kb) | | | +| 表名:sys_user_kb | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| user_id | BIGINT | 用户ID | +| knowledge_id | BIGINT | 知识库ID | +| effective_at | DATETIME | 生效时间 | +| expired_at | DATETIME | 到期时间 | +| created_by | BIGINT | 创建管理员 | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | + +## Sheet: 06_sys_chat_session +- Range: 12 rows x 3 columns + +| 第七章 聊天会话表(sys_chat_session) | | | +| 表名:sys_chat_session | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| user_id | BIGINT | 用户ID | +| title | VARCHAR(100) | 会话标题 | +| message_count | INT | 消息数量 | +| last_message_at | DATETIME | 最后消息时间 | +| is_deleted | TINYINT | 是否删除 | +| created_at | DATETIME | 创建时间 | +| updated_at | DATETIME | 更新时间 | + +## Sheet: 07_sys_chat_message +- Range: 15 rows x 3 columns + +| 第八章 聊天消息表(sys_chat_message) | | | +| 表名:sys_chat_message | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| session_id | BIGINT | 会话ID | +| user_id | BIGINT | 用户ID | +| role | ENUM | user / assistant | +| content | LONGTEXT | 消息内容 | +| message_status | VARCHAR(20) | 消息状态 | +| token_input | INT | 输入 Token | +| token_output | INT | 输出 Token | +| response_time_ms | INT | 回复耗时(毫秒) | +| model_id | BIGINT | 模型ID | +| created_at | DATETIME | 创建时间 | + +## Sheet: 08_sys_prompt +- Range: 8 rows x 3 columns + +| 第九章 Prompt 表(sys_prompt) | | | +| 表名:sys_prompt | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| prompt_content | LONGTEXT | Prompt 内容 | +| updated_by | BIGINT | 修改人 | +| updated_at | DATETIME | 更新时间 | + +## Sheet: 09_sys_model +- Range: 13 rows x 3 columns + +| 第十章 模型配置表(sys_model) | | | +| 表名:sys_model | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| provider | VARCHAR(50) | 模型供应商 | +| model_name | VARCHAR(100) | 模型名称 | +| api_url | VARCHAR(255) | API 地址 | +| api_key | TEXT | API 密钥 | +| temperature | DECIMAL | 温度参数 | +| max_token | INT | 最大输出 Token | +| timeout_second | INT | 超时时间 | +| enabled | TINYINT | 是否启用 | + +## Sheet: 10_sys_system_config +- Range: 10 rows x 3 columns + +| 第十一章 系统配置表(sys_system_config) | | | +| 表名:sys_system_config | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| config_key | VARCHAR(100) | 配置键 | +| config_value | TEXT | 配置值 | +| description | VARCHAR(255) | 描述 | +| updated_by | BIGINT | 修改人 | +| updated_at | DATETIME | 更新时间 | + +## Sheet: 11_sys_ai_request_log +- Range: 19 rows x 3 columns + +| 第十二章 AI 请求日志(sys_ai_request_log) | | | +| 表名:sys_ai_request_log | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| session_id | BIGINT | 会话ID | +| message_id | BIGINT | 消息ID | +| user_id | BIGINT | 用户ID | +| model_name | VARCHAR(100) | 模型名称 | +| prompt | LONGTEXT | Prompt 内容 | +| knowledge_ids | VARCHAR(500) | 检索知识库 | +| retrieve_count | INT | 命中文档数 | +| input_token | INT | 输入 Token | +| output_token | INT | 输出 Token | +| total_token | INT | Token 总数 | +| cost_ms | INT | 请求耗时 | +| status | VARCHAR(20) | 请求状态 | +| error_message | TEXT | 错误信息 | +| created_at | DATETIME | 创建时间 | + +## Sheet: 12_sys_operation_log +- Range: 14 rows x 3 columns + +| 第十三章 操作日志表(sys_operation_log) | | | +| 表名:sys_operation_log | | | +| 字段 | 类型 | 说明 | +| id | BIGINT | 主键 | +| admin_id | BIGINT | 管理员ID | +| module | VARCHAR(50) | 操作模块 | +| action | VARCHAR(50) | 操作类型 | +| target_id | BIGINT | 操作对象ID | +| before_json | LONGTEXT | 修改前数据 | +| after_json | LONGTEXT | 修改后数据 | +| ip | VARCHAR(50) | IP 地址 | +| result | VARCHAR(20) | 操作结果 | +| created_at | DATETIME | 创建时间 | + +## Sheet: 13_字段取值规范 +- Range: 20 rows x 6 columns + +| 第十四章 字段取值规范 | | | | | | +| status | | | | | | +| 值 | 含义 | | | | | +| 0 | 禁用 | | | | | +| 1 | 启用 | | | | | +| is_deleted | | | | | | +| 值 | 含义 | | | | | +| 0 | 正常 | | | | | +| 1 | 已删除 | | | | | +| message_status | | | | | | +| 值 | 含义 | | | | | +| WAITING | 等待处理 | | | | | +| GENERATING | 生成中 | | | | | +| FINISHED | 已完成 | | | | | +| STOPPED | 用户停止 | | | | | +| TIMEOUT | 超时 | | | | | +| FAILED | 失败 | | | | | + +## Sheet: 14_命名维护规范 +- Range: 21 rows x 6 columns + +| 第十五章 命名规范 / 第十六章 数据字典维护规范 | | | | | | +| 15.1 表命名 | | | | | | +| 规范项 | 内容 | | | | | +| 统一格式 | sys_xxx | | | | | +| 示例 | sys_user | | | | | +| 示例 | sys_chat_message / sys_prompt | | | | | +| 15.2 字段命名 | | | | | | +| 规范项 | 内容 | | | | | +| 统一格式 | snake_case | | | | | +| 示例 | created_at | | | | | +| 示例 | updated_at / user_id | | | | | +| 示例 | model_name | | | | | +| 第十六章 数据字典维护规范 | | | | | | +| 序号 | 维护要求 | | | | | +| 1 | 新增数据表必须同步更新字段字典。 | | | | | +| 2 | 修改字段类型、长度或含义时,必须更新字段字典。 | | | | | +| 3 | 字段字典应与数据库脚本保持一致,并纳入版本管理。 | | | | | +| 4 | 建议同时维护 Excel 版本,供产品、开发、测试及运维共同使用。 | | | | | diff --git a/ai_knowledge_base_v2/extracted/12-AI知识库系统权限矩阵_Permission_Matrix_V10_1.md b/ai_knowledge_base_v2/extracted/12-AI知识库系统权限矩阵_Permission_Matrix_V10_1.md new file mode 100644 index 0000000..0377ba7 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/12-AI知识库系统权限矩阵_Permission_Matrix_V10_1.md @@ -0,0 +1,322 @@ +# 12-AI知识库系统权限矩阵(Permission Matrix)V1.0 (1).docx + +12 + +AI知识库系统权限矩阵 + +Permission Matrix + +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +项目交付文档 + +## 目录 + +## 第一章 文档说明 + +### 1.1 编写目的 + +权限矩阵用于统一定义系统各类角色的访问权限,为: + +后端权限控制 + +前端菜单控制 + +按钮权限 + +API 权限校验 + +测试验收 + +提供统一依据。 + +### 1.2 权限模型 + +系统采用三级权限模型: + +权限控制贯穿: + +页面访问 + +API 接口 + +按钮操作 + +数据范围 + +AI 知识库访问 + +## 第二章 系统角色 + +系统定义三类角色: + +## 第三章 后台菜单权限 + +## 第四章 用户管理权限 + +## 第五章 管理员管理权限 + +## 第六章 知识库管理权限 + +删除知识库后: + +自动解除所有用户授权 + +写入操作日志 + +AI 不再参与检索 + +## 第七章 Prompt 管理权限 + +Prompt 保存后: + +立即生效 + +写入操作日志 + +## 第八章 AI 模型管理权限 + +## 第九章 系统配置权限 + +修改后: + +立即生效。 + +## 第十章 聊天记录权限 + +聊天记录: + +永久保存。 + +用户删除: + +仅逻辑删除。 + +## 第十一章 操作日志权限 + +## 第十二章 普通用户权限 + +普通用户仅拥有以下权限: + +## 第十三章 AI 数据权限 + +AI 检索必须经过权限过滤: + +原则: + +仅检索授权知识库 + +不允许跨知识库越权 + +不允许使用未授权内容生成答案 + +## 第十四章 API 权限矩阵 + +## 第十五章 权限校验流程 + +所有后台接口统一执行: + +任一环节失败: + +## 第十六章 权限维护规范 + +所有新增页面必须同步补充权限矩阵。 + +所有新增接口必须配置接口权限。 + +所有按钮必须支持前端显示控制与后端接口校验双重控制。 + +权限变更需记录操作日志。 + +## Table 1 +| 版本 | V1.0 | +| --- | --- | +| 项目名称 | AI 企业知识库问答系统 | +| 依据文档 | PRD V1.0、SRS V1.0 | +| 适用版本 | V1.0 | + +## Table 2 +| 第一章 文档说明 | 第九章 系统配置权限 | +| --- | --- | +| 第二章 系统角色 | 第十章 聊天记录权限 | +| 第三章 后台菜单权限 | 第十一章 操作日志权限 | +| 第四章 用户管理权限 | 第十二章 普通用户权限 | +| 第五章 管理员管理权限 | 第十三章 AI 数据权限 | +| 第六章 知识库管理权限 | 第十四章 API 权限矩阵 | +| 第七章 Prompt 管理权限 | 第十五章 权限校验流程 | +| 第八章 AI 模型管理权限 | 第十六章 权限维护规范 | + +## Table 3 +| 角色权限(Role) | +| --- | +| ↓ | +| 功能权限(Permission) | +| ↓ | +| 数据权限(Knowledge) | + +## Table 4 +| 角色 | 编码 | 说明 | +| --- | --- | --- | +| 超级管理员 | SUPER_ADMIN | 系统最高权限 | +| 管理员 | ADMIN | 日常运营管理 | +| 普通用户 | USER | AI 问答用户 | + +## Table 5 +| 功能模块 | 超级管理员 | 管理员 | 普通用户 | +| --- | --- | --- | --- | +| Dashboard | ✅ | ✅ | ❌ | +| 用户管理 | ✅ | ✅ | ❌ | +| 管理员管理 | ✅ | ❌ | ❌ | +| 知识库管理 | ✅ | ✅ | ❌ | +| Prompt 管理 | ✅ | ✅ | ❌ | +| AI 模型管理 | ✅ | ✅ | ❌ | +| 聊天记录 | ✅ | ✅ | ❌ | +| 系统配置 | ✅ | ✅ | ❌ | +| 操作日志 | ✅ | ✅ | ❌ | + +## Table 6 +| 功能 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 查看用户 | ✅ | ✅ | +| 新增用户 | ✅ | ✅ | +| 编辑用户 | ✅ | ✅ | +| 删除用户 | ✅ | ✅ | +| 批量授权知识库 | ✅ | ✅ | +| 设置聊天次数 | ✅ | ✅ | +| 设置有效期 | ✅ | ✅ | +| 启用账号 | ✅ | ✅ | +| 禁用账号 | ✅ | ✅ | +| 导出用户 | ✅ | ✅ | + +## Table 7 +| 功能 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 查看管理员 | ✅ | ❌ | +| 新增管理员 | ✅ | ❌ | +| 编辑管理员 | ✅ | ❌ | +| 删除管理员 | ✅ | ❌ | +| 修改角色 | ✅ | ❌ | +| 重置密码 | ✅ | ❌ | + +## Table 8 +| 安全规则:为保证系统安全,管理员账号管理仅开放给超级管理员。 | +| --- | + +## Table 9 +| 功能 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 查看知识库 | ✅ | ✅ | +| 新增知识库 | ✅ | ✅ | +| 编辑知识库 | ✅ | ✅ | +| 删除知识库 | ✅ | ✅ | +| 启用/禁用 | ✅ | ✅ | + +## Table 10 +| 功能 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 查看 Prompt | ✅ | ✅ | +| 编辑 Prompt | ✅ | ✅ | +| 保存 Prompt | ✅ | ✅ | +| 恢复默认 | ✅ | ✅ | + +## Table 11 +| 功能 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 查看模型 | ✅ | ✅ | +| 新增模型 | ✅ | ✅ | +| 编辑模型 | ✅ | ✅ | +| 删除模型 | ✅ | ✅ | +| 启用模型 | ✅ | ✅ | + +## Table 12 +| 系统限制:同一时间仅允许一个模型为启用状态。 | +| --- | + +## Table 13 +| 功能 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 查看配置 | ✅ | ✅ | +| 修改配置 | ✅ | ✅ | +| 保存配置 | ✅ | ✅ | + +## Table 14 +| 功能 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 查看聊天 | ✅ | ✅ | +| 查看详情 | ✅ | ✅ | +| 导出 Excel | ✅ | ✅ | + +## Table 15 +| 功能 | 超级管理员 | 管理员 | +| --- | --- | --- | +| 查看日志 | ✅ | ✅ | +| 查询日志 | ✅ | ✅ | +| 导出日志 | ✅ | ✅ | +| 删除日志 | ❌ | ❌ | + +## Table 16 +| 日志规则:日志禁止删除,仅允许按保留策略归档。 | +| --- | + +## Table 17 +| 功能 | 权限 | +| --- | --- | +| 登录 | ✅ | +| AI 问答 | ✅ | +| 新建会话 | ✅ | +| 修改标题 | ✅ | +| 删除会话 | ✅ | +| 查看历史记录 | ✅ | +| 停止生成 | ✅ | +| 后台管理 | ❌ | + +## Table 18 +| 用户 | +| --- | +| ↓ | +| 用户知识库授权 | +| ↓ | +| 过滤禁用知识库 | +| ↓ | +| 过滤过期授权 | +| ↓ | +| 飞书实时检索 | +| ↓ | +| AI 回答 | + +## Table 19 +| API 分类 | 超级管理员 | 管理员 | 普通用户 | +| --- | --- | --- | --- | +| /auth/* | ✅ | ✅ | ✅ | +| /user/* | ❌ | ❌ | ✅ | +| /chat/* | ❌ | ❌ | ✅ | +| /admin/dashboard | ✅ | ✅ | ❌ | +| /admin/user/* | ✅ | ✅ | ❌ | +| /admin/admin/* | ✅ | ❌ | ❌ | +| /admin/knowledge/* | ✅ | ✅ | ❌ | +| /admin/prompt/* | ✅ | ✅ | ❌ | +| /admin/model/* | ✅ | ✅ | ❌ | +| /admin/config/* | ✅ | ✅ | ❌ | +| /admin/log/* | ✅ | ✅ | ❌ | + +## Table 20 +| JWT 校验 | +| --- | +| ↓ | +| 账号状态校验 | +| ↓ | +| 角色权限校验 | +| ↓ | +| 功能权限校验 | +| ↓ | +| 数据权限校验 | +| ↓ | +| 执行业务逻辑 | + +## Table 21 +| 失败处理:返回统一权限错误。 | +| --- | + +## Table 22 +| 《12-权限矩阵》V1.0 完成 本权限矩阵定义了: • 系统角色 • 菜单权限 • 按钮权限 • API 权限 • 数据权限 • AI 知识库权限 • 权限校验流程 • 权限维护规范 | +| --- | diff --git a/ai_knowledge_base_v2/extracted/AI_Knowledge_Base_PRD_V10.md b/ai_knowledge_base_v2/extracted/AI_Knowledge_Base_PRD_V10.md new file mode 100644 index 0000000..2102d99 --- /dev/null +++ b/ai_knowledge_base_v2/extracted/AI_Knowledge_Base_PRD_V10.md @@ -0,0 +1,1273 @@ +# AI_Knowledge_Base_PRD_V1.0.docx + +AI 知识库系统产品需求说明书(PRD) + +版本:V1.0 + +项目名称:AI 企业知识库问答系统 + +文档状态:初稿 + +编写日期:2026-07-06 + +## 第一章 项目概述 + +### 1.1 项目背景 + +企业内部已经建立了飞书知识库,用于沉淀课程资料、SOP、直播运营、销售话术、客服规范等内容。 + +随着知识库内容不断增加,员工检索效率逐渐降低,主要存在以下问题: + +无法快速找到需要的知识 + +同一问题需要反复询问老师 + +新员工学习成本较高 + +知识利用率低 + +企业知识无法充分沉淀 + +为了提升知识利用效率,计划建设一套 AI 企业知识库问答系统。 + +系统以飞书知识库作为唯一知识来源,通过 AI 对知识进行检索、理解与生成回答,实现企业内部智能问答。 + +### 1.2 建设目标 + +本项目目标如下: + +#### 目标一 + +建立统一 AI 问答平台。所有企业知识统一通过 AI 提供问答服务。 + +#### 目标二 + +所有知识来源于飞书知识库。一期不建立独立知识库。飞书更新内容后立即生效。无需人工同步。 + +#### 目标三 + +实现知识权限控制。不同用户可访问不同知识库。AI 回答时只能使用用户有权限访问的知识。 + +#### 目标四 + +建设完整后台。后台可完成:用户管理、知识库管理、Prompt 管理、模型管理、聊天记录管理、数据统计、系统配置、操作日志。 + +#### 目标五 + +支持后续扩展。包括:多模型切换、向量数据库、更多知识源、文件上传、多租户、联网搜索(一期关闭)。 + +## 第二章 项目范围 + +### 一期包含 + +#### 用户端 + +手机号验证码登录 + +AI聊天 + +多会话 + +历史聊天 + +会话自动命名 + +流式回答 + +停止生成 + +每日聊天次数限制 + +权限控制 + +#### 管理后台 + +管理员登录 + +用户管理 + +管理员管理 + +知识库管理 + +Prompt管理 + +模型管理 + +聊天记录 + +数据统计 + +系统配置 + +操作日志 + +#### AI能力 + +飞书知识库实时检索 + +RAG + +多知识库权限过滤 + +流式输出 + +来源引用(后台可配置是否展示) + +冲突知识展示 + +### 一期不包含 + +以下功能暂不开发: + +文件上传 + +图片理解 + +OCR + +联网搜索 + +向量数据库同步 + +支付系统 + +课程系统 + +自动授权 + +多租户 + +多Prompt + +重新生成 + +编辑消息 + +## 第三章 用户角色 + +系统包含四类角色。 + +### 3.1 普通用户 + +功能: + +登录 + +AI聊天 + +查看历史聊天 + +新建聊天 + +删除聊天(仅前端隐藏) + +使用授权知识库 + +不能: + +修改Prompt + +修改知识库 + +查看后台 + +### 3.2 管理员 + +负责: + +用户管理 + +知识库管理 + +查看聊天 + +数据统计 + +Prompt管理 + +模型配置 + +不能: + +创建管理员(仅超级管理员) + +### 3.3 超级管理员 + +拥有全部权限。包括: + +创建管理员 + +删除管理员 + +系统配置 + +模型配置 + +Prompt配置 + +全局权限管理 + +### 3.4 AI 服务 + +AI不是用户。负责: + +权限校验 + +检索飞书知识库 + +调用大模型 + +返回结果 + +输出引用来源 + +记录日志 + +## 第四章 系统总体架构 + +图 4-1:系统总体架构图 + +## 第五章 用户端功能需求 + +### 5.1 登录模块 + +#### 功能说明 + +系统采用手机号 + 短信验证码作为唯一登录方式。 + +#### 登录流程 + +输入手机号 + │ +发送验证码 + │ +输入验证码 + │ +验证码校验 + │ +首次登录? + ├── 是:自动创建用户 + └── 否:直接登录 + │ +检查账号状态 + │ +检查账号有效期 + │ +登录成功 + +#### 功能要求 + +登录方式:手机号 + 短信验证码 + +首次登录自动创建账号 + +无需管理员审核 + +登录成功后签发 Token + +登录有效期由后台配置 + +支持多设备同时登录 + +用户主动退出后 Token 立即失效 + +#### 登录异常 + +### 5.2 首页 + +登录成功进入 AI 聊天首页。页面包含: + +───────────────────────────── +LOGO + ++ 新建聊天 + +历史聊天列表 +——————————— +直播运营 +客服话术 +短视频剪辑 +…… +——————————— + +个人中心 +退出登录 +───────────────────────────── + +功能: + +新建聊天 + +查看历史聊天 + +删除聊天(前端隐藏) + +切换聊天 + +自动同步最新聊天 + +### 5.3 AI 聊天页面 + +页面布局: + +────────────────────────────── +会话标题 + +聊天内容 + +用户: +…… + +AI: +…… + +────────────── + +输入框 + +[发送] + +────────────────────────────── + +功能: + +文本输入 + +Enter 发送 + +Shift+Enter 换行(Web) + +流式输出 + +停止生成 + +自动滚动到底部 + +支持 Markdown 渲染(标题、列表、代码块、表格等) + +### 5.4 AI 回答流程 + +用户发送问题后: + +输入问题 + │ +权限校验 + │ +获取用户拥有的知识库 + │ +实时检索飞书知识库 + │ +获取知识片段 + │ +组织 Prompt + │ +调用模型 + │ +Streaming 输出 + │ +保存聊天记录 + +后台保存: + +用户问题 + +AI 回复 + +检索知识库 + +检索片段 + +引用片段 + +Prompt + +模型 + +Token 消耗 + +耗时 + +### 5.5 AI 回复规则 + +AI 只能依据: + +用户拥有权限的知识库 + +检索结果 + +不得: + +联网搜索 + +使用外部网页 + +使用其他知识源 + +若知识库无内容: + +当前知识库中未检索到相关内容,请联系管理员补充相关知识。 + +不得自行编造答案。 + +### 5.6 知识冲突处理 + +例如: + +知识库 A:建议每天直播 2 小时 + +知识库 B:建议每天直播 4 小时 + +AI 回复: + +知识库A:…… + +知识库B:…… + +当前知识库存在不同观点,以上为各知识库原始内容,请结合实际业务判断。 + +AI 不得自行裁决。 + +### 5.7 引用来源 + +后台提供开关:是否展示引用来源 + +○ 开启 + +○ 关闭 + +关闭:用户看不到来源。 + +开启:回答底部显示: + +参考来源: + +直播运营知识库 +销售 SOP +客服规范 + +后台始终记录完整引用。 + +### 5.8 会话管理 + +支持: + +新建聊天 + +自动生成标题 + +修改标题 + +删除聊天(仅前端隐藏) + +查看历史聊天 + +不支持: + +编辑历史消息 + +重新生成回答 + +### 5.9 聊天上下文 + +后台可配置: + +上下文长度 + +Token:8192 + +或者:最近10轮 + +推荐按 Token 控制。 + +超过长度:自动截断最早内容。 + +### 5.10 聊天次数限制 + +后台配置:默认每日 100次 + +支持:全局默认 → 单独覆盖用户额度 + +每天零点重置。 + +达到限制提示: + +今日聊天次数已用完,请明天再试或联系管理员。 + +### 5.11 AI 超时 + +后台:超时时间 30秒 + +超过:立即终止。 + +提示: + +当前请求处理时间较长,已超过系统等待时间,请稍后重试。 + +### 5.12 停止生成 + +AI 输出过程中,页面显示: + +□□□□□□□□□□ 停止生成 + +点击后: + +中断模型请求 + +保留已生成内容 + +保存聊天记录 + +可继续提问 + +### 5.13 会话标题 + +默认:新聊天 + +第一轮完成后:AI 自动生成,例如: + +直播运营技巧 + +客服 SOP + +抖音流量问题 + +用户可手动修改标题。 + +## 第六章 管理后台功能需求 + +### 6.1 后台概述 + +管理后台用于系统日常运营、用户管理、知识库管理、AI 配置及数据统计。 + +后台采用 用户名 + 密码 登录,仅管理员可访问。 + +### 6.2 后台菜单结构 + +后台管理 +├── 首页(数据统计) +│ +├── 用户管理 +│ +├── 管理员管理 +│ +├── 知识库管理 +│ +├── Prompt 管理 +│ +├── AI 模型管理 +│ +├── 聊天记录 +│ +├── 系统配置 +│ +├── 操作日志 +│ +└── 退出登录 + +## 第七章 首页(Dashboard) + +### 7.1 功能说明 + +管理员登录后默认进入首页。首页展示系统运行情况。 + +### 7.2 统计指标 + +根据已确认需求,首页展示: + +一期不展示: + +AI 成功率 + +AI 失败率 + +### 7.3 时间筛选 + +支持: + +今天 + +最近7天 + +自定义时间 + +不支持: + +最近30天(一期) + +### 7.4 知识库排行榜 + +例如: + +## 第八章 用户管理 + +### 8.1 用户列表 + +默认字段: + +### 8.2 查询条件 + +支持: + +手机号 + +姓名 + +账号状态 + +一期不支持: + +注册时间 + +班级 + +知识库权限筛选 + +昵称筛选 + +### 8.3 用户详情 + +用户详情页展示: + +#### 基本信息 + +手机号 + +姓名 + +昵称 + +注册时间 + +最后登录时间 + +#### 账号信息 + +启用/禁用 + +生效时间 + +到期时间 + +每日聊天额度 + +今日已使用次数 + +#### 权限信息 + +已授权知识库 + +权限开始时间 + +权限结束时间 + +### 8.4 批量操作 + +一期支持: + +批量分配知识库 + +批量修改聊天次数 + +批量启用 + +批量禁用 + +批量删除 + +批量设置账号有效期 + +#### 操作要求 + +所有批量操作: + +二次确认 + +写入操作日志 + +返回成功/失败统计 + +## 第九章 管理员管理 + +### 9.1 管理员列表 + +字段: + +用户名 + +姓名 + +角色 + +状态 + +最后登录时间 + +### 9.2 管理员创建 + +仅超级管理员拥有权限。 + +创建信息: + +用户名 + +密码 + +姓名 + +角色 + +是否启用 + +### 9.3 登录方式 + +后台采用:用户名 + 密码 + +一期不启用: + +短信登录 + +双因素认证 + +## 第十章 知识库管理 + +### 10.1 功能 + +后台维护飞书知识库。支持:新增、编辑、删除 + +### 10.2 知识库字段 + +### 10.3 删除规则 + +一期:支持彻底删除。 + +删除时: + +二次确认 + +自动解除用户关联权限 + +写入操作日志 + +### 10.4 检索方式 + +采用:实时访问飞书。 + +不做: + +本地同步 + +向量库存储 + +## 第十一章 Prompt 管理 + +### 11.1 管理方式 + +后台维护一个全局 Prompt。保存后立即生效。无需重启服务。 + +### 11.2 页面 + +Prompt + +──────────────────── + +【编辑器】 + +…… + +──────────────────── + +保存 + +恢复默认 + +### 11.3 日志 + +修改 Prompt 必须记录: + +修改人 + +修改时间 + +修改前 + +修改后 + +## 第十二章 AI 模型管理 + +### 12.1 模型配置 + +后台支持切换模型。例如: + +DeepSeek + +OpenAI + +通义千问 + +一期始终只启用一个模型。 + +### 12.2 配置项 + +包括: + +模型名称 + +API 地址 + +API Key + +超时时间 + +最大 Token + +Temperature + +### 12.3 生效方式 + +保存后立即生效。无需重启。 + +## 第十三章 聊天记录管理 + +### 13.1 功能概述 + +系统需完整保存所有聊天记录,便于用户查看历史会话及管理员审计。 + +根据需求确认: + +聊天记录永久保存 + +用户删除会话仅隐藏,不物理删除 + +管理员可查询、导出聊天记录 + +支持按用户查看所有历史会话 + +### 13.2 用户端 + +支持: + +查看历史聊天 + +新建聊天 + +修改会话标题 + +删除会话(前端隐藏) + +不支持: + +编辑历史消息 + +重新生成回答 + +### 13.3 管理后台 + +管理员可查看: + +#### 会话信息 + +会话ID + +会话标题 + +用户 + +创建时间 + +最后更新时间 + +消息数量 + +#### 消息详情 + +每条消息记录: + +### 13.4 导出规则 + +一期导出内容: + +用户姓名 + +手机号 + +会话标题 + +提问内容 + +AI回答 + +提问时间 + +回复时间 + +不导出: + +Prompt + +检索片段 + +模型参数 + +内部调试信息 + +## 第十四章 系统配置 + +### 14.1 系统配置项 + +后台提供统一配置中心。 + +#### 登录配置 + +#### AI配置 + +#### 聊天配置 + +### 14.2 配置生效 + +所有配置: + +保存立即生效 + +无需重启系统 + +自动记录操作日志 + +## 第十五章 操作日志 + +### 15.1 日志原则 + +所有关键操作必须记录。 + +### 15.2 日志范围 + +包括: + +管理员登录 + +管理员退出 + +新增用户 + +删除用户 + +修改用户 + +修改权限 + +新增知识库 + +删除知识库 + +修改Prompt + +切换模型 + +修改系统配置 + +批量操作 + +### 15.3 日志字段 + +每条日志包含: + +## 第十六章 权限体系 + +### 16.1 用户权限 + +用户权限包含两个层级: + +#### 第一层:账号权限 + +控制: + +是否允许登录 + +是否启用 + +是否过期 + +#### 第二层:知识库权限 + +控制:用户可以访问哪些知识库。 + +支持: + +永久权限 + +指定开始时间 + +指定结束时间 + +到期自动失效 + +### 16.2 AI权限校验流程 + +用户提问 + │ +检查账号状态 + │ +检查账号有效期 + │ +获取知识库权限 + │ +过滤无权限知识库 + │ +实时检索飞书 + │ +生成回答 + +### 16.3 权限冲突 + +若多个知识库存在不同内容: + +AI必须: + +分别列出各知识库观点 + +标注来源 + +不自行裁决 + +## 第十七章 AI问答业务流程 + +### 17.1 标准流程 + +用户输入问题 + │ +聊天次数校验 + │ +账号校验 + │ +知识库权限校验 + │ +实时访问飞书知识库 + │ +获取知识片段 + │ +组织Prompt + │ +调用AI模型 + │ +Streaming输出 + │ +保存聊天记录 + +### 17.2 飞书异常 + +默认:自动重试2次(后台可配置0~3次) + +仍失败:提示用户: + +当前知识库服务暂时不可用,请稍后再试。如多次出现该问题,请联系管理员。 + +后台记录完整错误日志。 + +### 17.3 超时处理 + +默认:30秒。 + +超过:立即终止。 + +返回: + +当前请求处理时间较长,已超过系统等待时间,请稍后重试。 + +## 第十八章 非功能需求 + +### 18.1 性能要求 + +支持流式输出 + +支持多用户并发 + +配置修改实时生效 + +飞书知识实时检索 + +### 18.2 安全要求 + +全站 HTTPS + +Token 身份认证 + +接口权限校验 + +管理后台权限隔离 + +操作日志审计 + +### 18.3 可维护性 + +后台支持: + +Prompt 在线编辑 + +模型切换 + +系统配置修改 + +用户权限管理 + +无需修改代码即可完成日常运营。 + +## 第十九章 验收标准 + +系统上线需满足以下标准: + +### 用户端 + +手机验证码登录正常 + +AI 流式回复正常 + +多会话正常 + +历史聊天正常 + +自动生成会话标题 + +停止生成正常 + +每日聊天次数限制正常 + +### AI能力 + +仅检索用户授权知识库 + +飞书更新后实时生效 + +不联网搜索 + +知识冲突按要求展示 + +引用来源按后台配置展示 + +### 管理后台 + +用户管理 + +管理员管理 + +知识库管理 + +Prompt管理 + +模型管理 + +聊天记录管理 + +数据统计 + +系统配置 + +操作日志 + +### 系统要求 + +配置即时生效 + +超时控制正常 + +重试机制正常 + +多设备登录正常 + +聊天记录永久保存 + +PRD V1.0 完成说明 + +至此,《AI 知识库系统产品需求说明书(PRD)V1.0》第一版已完成,覆盖了我们此前确认的核心需求。 + +## Table 1 +| 场景 | 提示 | +| --- | --- | +| 验证码错误 | 验证码错误 | +| 验证码过期 | 验证码已失效 | +| 账号禁用 | 当前账号已被禁用 | +| 账号已过期 | 当前账号已失效,请联系管理员 | + +## Table 2 +| 指标 | 是否支持 | +| --- | --- | +| 总用户数 | ✅ | +| 今日新增用户 | ✅ | +| 今日活跃用户 | ✅ | +| 今日聊天次数 | ✅ | +| 模型 Token 消耗 | ✅ | +| 知识库使用排行榜 | ✅ | + +## Table 3 +| 排名 | 知识库 | 使用次数 | +| --- | --- | --- | +| 1 | 直播运营 | 1230 | +| 2 | 客服 SOP | 860 | +| 3 | 销售话术 | 540 | + +## Table 4 +| 字段 | 是否显示 | +| --- | --- | +| 手机号 | ✅ | +| 姓名 | ✅ | +| 昵称 | ✅ | +| 账号状态 | ✅ | +| 每日聊天次数 | ✅ | +| 最后登录时间 | ✅ | +| 已授权知识库 | ❌(一期不显示) | + +## Table 5 +| 字段 | 必填 | +| --- | --- | +| 知识库名称 | ✅ | +| 飞书 Space ID | ✅ | +| 节点 ID | ✅ | +| 是否启用 | ✅ | +| 备注 | ❌ | + +## Table 6 +| 字段 | 说明 | +| --- | --- | +| 用户问题 | 用户输入内容 | +| AI回答 | AI输出内容 | +| 提问时间 | 时间戳 | +| 回复时间 | 时间戳 | +| 使用模型 | 模型名称 | +| 检索知识库 | 后台查看 | +| Token消耗 | 后台查看 | + +## Table 7 +| 配置项 | 说明 | +| --- | --- | +| 登录有效期 | 可配置(7/15/30/90天或自定义) | +| 多设备登录 | 开启 | +| 注册审核 | 关闭 | + +## Table 8 +| 配置项 | 默认值 | +| --- | --- | +| 上下文长度 | 后台配置 | +| 回复超时时间 | 30秒 | +| 飞书重试次数 | 2次 | +| 是否显示引用 | 后台配置 | +| 是否允许联网 | 否 | + +## Table 9 +| 配置项 | 默认值 | +| --- | --- | +| 默认每日聊天次数 | 100次 | +| 流式输出 | 开启 | +| 停止生成 | 开启 | + +## Table 10 +| 字段 | 说明 | +| --- | --- | +| 日志ID | 唯一标识 | +| 操作人 | 管理员 | +| 操作时间 | 时间 | +| 操作模块 | 用户/知识库等 | +| 操作类型 | 新增/修改/删除 | +| 操作对象 | 对象名称 | +| 修改前 | JSON | +| 修改后 | JSON | +| IP地址 | 可选 | +| 操作结果 | 成功/失败 | diff --git a/ai_knowledge_base_v2/extracted/README.md b/ai_knowledge_base_v2/extracted/README.md new file mode 100644 index 0000000..6b7333b --- /dev/null +++ b/ai_knowledge_base_v2/extracted/README.md @@ -0,0 +1,16 @@ +# Extracted Source Index + +This folder contains machine-extracted Markdown/text from the original requirement files. + +- `02-AI知识库系统系统功能规格说明书_SRS_V10.md` from `02-AI知识库系统系统功能规格说明书(SRS)V1.0.docx`: 664 paragraphs, 13 tables +- `03-AI知识库系统数据库设计文档.md` from `03-AI知识库系统数据库设计文档.docx`: 283 paragraphs, 18 tables +- `04-AI知识库系统_API接口设计文档.md` from `04-AI知识库系统_API接口设计文档.docx`: 279 paragraphs, 1 tables +- `05-AI知识库系统_AI-RAG技术方案设计_V10_1.md` from `05-AI知识库系统_AI-RAG技术方案设计_V1.0 (1).docx`: 154 paragraphs, 10 tables +- `06-AI知识库系统后台页面原型说明书_V10_1.md` from `06-AI知识库系统后台页面原型说明书_V1.0 (1).docx`: 181 paragraphs, 19 tables +- `07-AI知识库系统研发实施计划_V10.md` from `07-AI知识库系统研发实施计划_V1.0.docx`: 269 paragraphs, 9 tables +- `08-AI知识库系统测试用例_Test_Cases_V10.md` from `08-AI知识库系统测试用例_Test_Cases_V1.0.docx`: 160 paragraphs, 29 tables +- `09-AI知识库系统项目验收标准_UAT_V10.md` from `09-AI知识库系统项目验收标准(UAT)V1.0.docx`: 87 paragraphs, 36 tables +- `10-AI知识库系统部署运维手册_V10.md` from `10-AI知识库系统部署运维手册_V1.0.docx`: 153 paragraphs, 11 tables +- `12-AI知识库系统权限矩阵_Permission_Matrix_V10_1.md` from `12-AI知识库系统权限矩阵(Permission Matrix)V1.0 (1).docx`: 64 paragraphs, 22 tables +- `AI_Knowledge_Base_PRD_V10.md` from `AI_Knowledge_Base_PRD_V1.0.docx`: 523 paragraphs, 10 tables +- `11-AI知识库系统字段字典_Data_Dictionary_V10.md` from `11-AI知识库系统字段字典_Data_Dictionary_V1.0.xlsx`: 15 worksheets diff --git a/ai_knowledge_base_v2/reports/legacy_reuse_evaluation.md b/ai_knowledge_base_v2/reports/legacy_reuse_evaluation.md new file mode 100644 index 0000000..e82fdbd --- /dev/null +++ b/ai_knowledge_base_v2/reports/legacy_reuse_evaluation.md @@ -0,0 +1,133 @@ +# Legacy Reuse Evaluation + +Date: 2026-07-06 + +## Conclusion + +The existing project can provide useful engineering references, but it should not be directly extended as-is for the new requirement. + +The old project is a **大本营答疑资产后台系统 MVP**. Its core flow is: + +`Feishu session/transcript -> AI cleaning -> raw QA -> manual review -> standard QA -> manually marked callable QA` + +The new project is an **AI 企业知识库问答系统**. Its core flow is: + +`User login -> authorized knowledge bases -> real-time Feishu retrieval -> Prompt assembly -> model streaming answer -> chat/history/log persistence` + +These two systems both touch "QA" and "Feishu", but their domain models, permissions, APIs, database tables, and user workflows are different. For long-term maintainability, V2 should use a new domain model and only reuse selected implementation patterns or small infrastructure pieces. + +## New Requirement Snapshot + +Source documents define the V2 target as: + +- Feishu knowledge base is the only phase-one knowledge source. +- Phase one does not build an independent local knowledge base, does not manually sync content, and does not maintain a vector database sync. +- User login uses phone number + SMS verification code. +- Admin login uses username + password. +- AI chat supports sessions, history, streaming output, stop generation, Markdown rendering, auto title, and daily chat quota. +- AI can only answer from the user's authorized knowledge bases and retrieved snippets. +- No-hit answer must be: `当前知识库中未检索到相关内容,请联系管理员补充相关知识。` +- Feishu/model failures need unified fallback messages and logs. +- Admin backend includes dashboard, user management, admin management, knowledge base management, Prompt management, model management, chat records, system config, and operation logs. +- Core database tables include `sys_user`, `sys_admin`, `sys_role`, `sys_knowledge`, `sys_user_kb`, `sys_chat_session`, `sys_chat_message`, `sys_prompt`, `sys_model`, `sys_system_config`, `sys_ai_request_log`, and `sys_operation_log`. + +## Existing Code Overview + +The old project currently uses: + +- Backend: FastAPI, SQLAlchemy, Pydantic, APScheduler, HTTPX. +- Frontend: Next.js, React, TypeScript, TailwindCSS. +- Database: PostgreSQL preferred, SQLite fallback. +- AI: OpenAI-compatible chat completions with mock fallback. +- Feishu: Bitable/document adapter with mock fallback. +- Existing H5 page: mobile-first chat surface connected to `/api/standard-qa/callable`. + +The old database model centers on: + +- `users` +- `feishu_sessions` +- `raw_qa_items` +- `standard_qa_items` +- `task_runs` +- `audit_logs` +- `system_settings` + +## Reuse Assessment + +| Area | Reuse Level | Recommendation | +| --- | --- | --- | +| FastAPI application skeleton | High | Reuse routing style, settings pattern, CORS setup, dependency injection, and service layering ideas. | +| SQLAlchemy/Pydantic conventions | Medium | Reuse coding style, but rebuild models for `sys_*` tables required by V2. | +| Next.js/Tailwind frontend setup | Medium | Reuse project setup and visual implementation experience; rebuild pages around V2 user/admin flows. | +| H5 chat UI interaction | Medium | Reuse mobile-first interaction ideas such as compact header, chat bubbles, input ergonomics, and local loading states. Replace old callable-QA matching with real `/chat/completions` SSE. | +| Feishu service adapter | Medium | Reuse token acquisition, HTTP wrapper, document text extraction ideas, and mock-mode pattern. V2 still needs a new Feishu knowledge retrieval service matching SpaceID/NodeID and real-time search. | +| AI API wrapper | Medium | Reuse OpenAI-compatible request pattern. V2 needs streaming, cancellation, Prompt assembly, token logging, and model config from database. | +| Operation/task logs | Low to Medium | Reuse audit/logging ideas. V2 needs `sys_operation_log` and `sys_ai_request_log`, not old QA audit semantics. | +| Scheduler/task runner | Low | V2 phase one says no manual sync or vector DB sync, so scheduled QA processing is not core. Keep only if later needed for maintenance jobs. | +| Old QA review domain | Low | Do not reuse as V2 core. Raw/standard QA review, risk/desensitization, and callable status are old-domain concepts. | +| Existing `/standard-qa/callable` H5 API | Low | Replace with V2 chat/session/history APIs. It can stay as old system behavior but should not drive V2. | +| Docker Compose | Medium | Reuse containerization pattern, but V2 should switch DB target to MySQL 8.x per documents or explicitly record a deviation if PostgreSQL remains. | + +## Gap Analysis + +Must build or redesign for V2: + +- User SMS login, token/session invalidation, account expiry, and daily quota. +- Admin username/password login and role/permission control. +- Knowledge base management using `SpaceID` and `NodeID`. +- User-to-knowledge permission table with effective/expired dates. +- Chat session and message persistence. +- SSE streaming endpoint `POST /chat/completions`. +- Stop-generation endpoint `POST /chat/stop`. +- Prompt management and active Prompt loading. +- Model management with API URL/API key/model settings. +- System config for login expiry, daily chat count, AI timeout, Feishu retries, context length, source display, and disabled web search. +- Real-time Feishu retrieval with permission filtering. +- AI request log with prompt, retrieval knowledge IDs, token usage, latency, status, and error. +- Admin chat query/detail/export APIs. +- UAT/test coverage around permission isolation and no-hallucination fallback. + +## Recommended Technical Direction + +1. Keep `ai_knowledge_base_v2/` as the new context and planning workspace. +2. Create a new V2 application folder after architecture confirmation, rather than mutating old V1 files in place. +3. Keep backend modular from day one: + - `auth` + - `users` + - `admins` + - `knowledge` + - `chat` + - `rag` + - `prompts` + - `models` + - `config` + - `logs` +4. Keep services separated: + - `SmsCodeService` + - `TokenService` + - `FeishuKnowledgeService` + - `RagService` + - `ModelClient` + - `ChatService` + - `AuditLogService` +5. Make mock providers explicit for local development: + - mock SMS code + - mock model response + - mock Feishu retrieval +6. Do not store production model API keys in plain text unless a security decision is documented. Prefer environment secret references or encrypted storage. + +## Risk Notes + +- The new documents specify MySQL 8.x, while the existing project uses PostgreSQL/SQLite. This is a deployment and migration decision, not a small code change. +- The documents say "Feishu updates immediately effective" and "real-time retrieval"; this depends on actual Feishu APIs and tenant permissions. A technical spike should validate retrieval behavior early. +- Streaming and stop-generation affect backend request lifecycle, frontend rendering, and persistence semantics. This should be implemented as a first-class chat capability, not as an afterthought. +- Permissions are central to the product. Every chat retrieval path must filter knowledge bases before retrieval and log what was used. + +## Immediate Next Steps + +1. Confirm whether V2 should be implemented in this repository under a new app folder, or whether this repository should become the V2 repository. +2. Draft V2 architecture and module plan in `development_records/`. +3. Scaffold V2 backend with the `sys_*` domain model and auth boundary. +4. Scaffold V2 H5/user frontend around the documented chat APIs and SSE. +5. Add admin frontend pages according to the prototype document. +6. Keep old V1 code untouched until a deliberate migration or replacement decision is made. diff --git a/ai_knowledge_base_v2/source_documents/02-AI知识库系统系统功能规格说明书(SRS)V1.0.docx b/ai_knowledge_base_v2/source_documents/02-AI知识库系统系统功能规格说明书(SRS)V1.0.docx new file mode 100644 index 0000000..1c76f49 Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/02-AI知识库系统系统功能规格说明书(SRS)V1.0.docx differ diff --git a/ai_knowledge_base_v2/source_documents/03-AI知识库系统数据库设计文档.docx b/ai_knowledge_base_v2/source_documents/03-AI知识库系统数据库设计文档.docx new file mode 100644 index 0000000..1de5c6f Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/03-AI知识库系统数据库设计文档.docx differ diff --git a/ai_knowledge_base_v2/source_documents/04-AI知识库系统_API接口设计文档.docx b/ai_knowledge_base_v2/source_documents/04-AI知识库系统_API接口设计文档.docx new file mode 100644 index 0000000..72cf039 Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/04-AI知识库系统_API接口设计文档.docx differ diff --git a/ai_knowledge_base_v2/source_documents/05-AI知识库系统_AI-RAG技术方案设计_V1.0 (1).docx b/ai_knowledge_base_v2/source_documents/05-AI知识库系统_AI-RAG技术方案设计_V1.0 (1).docx new file mode 100644 index 0000000..2e29c2e Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/05-AI知识库系统_AI-RAG技术方案设计_V1.0 (1).docx differ diff --git a/ai_knowledge_base_v2/source_documents/06-AI知识库系统后台页面原型说明书_V1.0 (1).docx b/ai_knowledge_base_v2/source_documents/06-AI知识库系统后台页面原型说明书_V1.0 (1).docx new file mode 100644 index 0000000..7f77f63 Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/06-AI知识库系统后台页面原型说明书_V1.0 (1).docx differ diff --git a/ai_knowledge_base_v2/source_documents/07-AI知识库系统研发实施计划_V1.0.docx b/ai_knowledge_base_v2/source_documents/07-AI知识库系统研发实施计划_V1.0.docx new file mode 100644 index 0000000..9b75d96 Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/07-AI知识库系统研发实施计划_V1.0.docx differ diff --git a/ai_knowledge_base_v2/source_documents/08-AI知识库系统测试用例_Test_Cases_V1.0.docx b/ai_knowledge_base_v2/source_documents/08-AI知识库系统测试用例_Test_Cases_V1.0.docx new file mode 100644 index 0000000..d0bf2be Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/08-AI知识库系统测试用例_Test_Cases_V1.0.docx differ diff --git a/ai_knowledge_base_v2/source_documents/09-AI知识库系统项目验收标准(UAT)V1.0.docx b/ai_knowledge_base_v2/source_documents/09-AI知识库系统项目验收标准(UAT)V1.0.docx new file mode 100644 index 0000000..b4d7e69 Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/09-AI知识库系统项目验收标准(UAT)V1.0.docx differ diff --git a/ai_knowledge_base_v2/source_documents/10-AI知识库系统部署运维手册_V1.0.docx b/ai_knowledge_base_v2/source_documents/10-AI知识库系统部署运维手册_V1.0.docx new file mode 100644 index 0000000..02b5f3a Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/10-AI知识库系统部署运维手册_V1.0.docx differ diff --git a/ai_knowledge_base_v2/source_documents/11-AI知识库系统字段字典_Data_Dictionary_V1.0.xlsx b/ai_knowledge_base_v2/source_documents/11-AI知识库系统字段字典_Data_Dictionary_V1.0.xlsx new file mode 100644 index 0000000..fbfe704 Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/11-AI知识库系统字段字典_Data_Dictionary_V1.0.xlsx differ diff --git a/ai_knowledge_base_v2/source_documents/12-AI知识库系统权限矩阵(Permission Matrix)V1.0 (1).docx b/ai_knowledge_base_v2/source_documents/12-AI知识库系统权限矩阵(Permission Matrix)V1.0 (1).docx new file mode 100644 index 0000000..f3f4a54 Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/12-AI知识库系统权限矩阵(Permission Matrix)V1.0 (1).docx differ diff --git a/ai_knowledge_base_v2/source_documents/AI_Knowledge_Base_PRD_V1.0.docx b/ai_knowledge_base_v2/source_documents/AI_Knowledge_Base_PRD_V1.0.docx new file mode 100644 index 0000000..93af491 Binary files /dev/null and b/ai_knowledge_base_v2/source_documents/AI_Knowledge_Base_PRD_V1.0.docx differ diff --git a/ai_knowledge_base_v2/source_documents/README.md b/ai_knowledge_base_v2/source_documents/README.md new file mode 100644 index 0000000..fff0f00 --- /dev/null +++ b/ai_knowledge_base_v2/source_documents/README.md @@ -0,0 +1,26 @@ +# Source Documents + +This folder stores the original requirement package for AI Knowledge Base V2. + +## Archived Files + +| File | Role | +| --- | --- | +| `AI_Knowledge_Base_PRD_V1.0.docx` | Product requirement source of truth. | +| `02-AI知识库系统系统功能规格说明书(SRS)V1.0.docx` | Detailed software requirement specification. | +| `03-AI知识库系统数据库设计文档.docx` | Database design reference. | +| `04-AI知识库系统_API接口设计文档.docx` | Frontend/backend API contract reference. | +| `05-AI知识库系统_AI-RAG技术方案设计_V1.0 (1).docx` | AI/RAG architecture and runtime flow reference. | +| `06-AI知识库系统后台页面原型说明书_V1.0 (1).docx` | Admin UI structure and page prototype reference. | +| `07-AI知识库系统研发实施计划_V1.0.docx` | Development plan and milestone reference. | +| `08-AI知识库系统测试用例_Test_Cases_V1.0.docx` | Functional, permission, AI, security, and UAT test reference. | +| `09-AI知识库系统项目验收标准(UAT)V1.0.docx` | Acceptance criteria reference. | +| `10-AI知识库系统部署运维手册_V1.0.docx` | Deployment and operations reference. | +| `11-AI知识库系统字段字典_Data_Dictionary_V1.0.xlsx` | Field dictionary and database naming reference. | +| `12-AI知识库系统权限矩阵(Permission Matrix)V1.0 (1).docx` | Role and permission matrix reference. | + +## Notes + +- Keep these files unchanged as original source artifacts. +- Use `../extracted/` for searchable Markdown copies. +- If a newer version of a document is added later, keep both versions and record the supersession in `../development_records/`.