Start AI knowledge base v2 workspace

This commit is contained in:
2026-07-06 16:55:03 +08:00
parent 708e0a424e
commit 4eac7351a9
30 changed files with 7720 additions and 0 deletions

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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
| 字段 | 类型 | 默认值 | 是否为空 | 说明 |
| --- | --- | --- | --- | --- |
| (字段) | (类型) | (默认值) | (是否为空) | (说明) |

View File

@@ -0,0 +1,575 @@
# 04-AI知识库系统_API接口设计文档.docx
《04-AI知识库系统 API 接口设计文档》
版本V1.0
规范RESTful API
数据格式JSON
认证方式JWT TokenBearer
字符集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 | 系统内部错误 |

View File

@@ -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 次(后台可配置 03 次)
全部失败:
返回:
当前知识库服务暂时不可用,请稍后再试。
后台记录:
请求参数
错误原因
响应时间
用户信息
## 第六章 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 EventsSSE
流程:
### 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 |
| --- | --- |
| 架构模式 | RAGRetrieval-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 + SSEStreaming |
| 身份认证 | JWT |
## Table 4
| 用户提问 │ ▼ 登录校验 │ ▼ 账号状态校验 │ ▼ 聊天次数校验 │ ▼ 获取用户知识库权限 │ ▼ 过滤无权限知识库 │ ▼ 实时访问飞书知识库 │ ▼ 获取知识片段 │ ▼ 组装 Prompt │ ▼ 调用 AI 模型 │ ▼ Streaming 输出 │ ▼ 保存聊天记录 |
| --- |
## Table 5
| UserID │ ▼ 查询用户知识库权限 │ ▼ 过滤已过期权限 │ ▼ 过滤禁用知识库 │ ▼ 得到最终检索范围 |
| --- |
## Table 6
| 飞书修改文档 │ ▼ 用户下一次提问 │ ▼ 实时读取最新内容 |
| --- |
## Table 7
| ① 系统 Prompt + ② 检索到的知识片段 + ③ 当前会话上下文 + ④ 用户当前问题 |
| --- |
## Table 8
| 知识命中 ↓ 引用知识 ↓ 生成答案 |
| --- |
## Table 9
| 知识库A …… 知识库B …… 当前知识库存在不同观点, 以上内容分别来源于不同知识库, 请结合实际业务判断。 |
| --- |
## Table 10
| AI生成 Token │ ▼ 实时发送 │ ▼ 前端逐步渲染 |
| --- |

View File

@@ -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 模型管理 | ✅ | ✅ |
| 聊天记录 | ✅ | ✅ |
| 系统配置 | ✅ | ✅ |
| 操作日志 | ✅ | ✅ |

View File

@@ -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 | 前后端基础开发 | 第23周 |
| M3 | AI、飞书、RAG联调 | 第4周 |
| M4 | 测试、修复、上线 | 第5周 |

View File

@@ -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用户验收测试
业务方验收重点:
## 第十七章 缺陷等级
上线建议:
P00 个
P10 个
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、文案、非关键问题 |

View File

@@ -0,0 +1,473 @@
# 09-AI知识库系统项目验收标准UATV1.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
| 最终验收结论 | □ 验收通过 □ 有条件通过 □ 验收不通过 |
| --- | --- |

View File

@@ -0,0 +1,398 @@
# 10-AI知识库系统部署运维手册_V1.0.docx
10
## AI知识库系统部署运维手册
Deployment & Operations Guide
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
系统部署|环境配置|上线运维|监控备份|故障恢复
## 文档目录
## 第一章 文档说明
### 1.1 编写目的
本文档用于指导系统部署、环境配置、上线、运维、监控、备份及故障恢复。
适用对象:
运维工程师
后端开发工程师
DevOps 工程师
项目实施人员
## 第二章 系统部署架构
### 2.1 总体架构
## 第三章 服务器规划
### 3.1 建议配置(生产环境)
### 3.2 环境要求
LinuxUbuntu 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
| 发布要求:所有发布建议保留可回滚版本。 |
| --- |

View File

@@ -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 版本,供产品、开发、测试及运维共同使用。 | | | | |

View File

@@ -0,0 +1,322 @@
# 12-AI知识库系统权限矩阵Permission MatrixV1.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 知识库权限 • 权限校验流程 • 权限维护规范 |
| --- |

File diff suppressed because it is too large Load Diff

View File

@@ -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知识库系统系统功能规格说明书SRSV1.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知识库系统项目验收标准UATV1.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 MatrixV1.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

View File

@@ -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.

View File

@@ -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知识库系统系统功能规格说明书SRSV1.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知识库系统项目验收标准UATV1.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 MatrixV1.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/`.