Add V2 phase six verification assets

This commit is contained in:
2026-07-06 18:14:36 +08:00
parent 62eeb3186c
commit 08dd371480
6 changed files with 245 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
# AI 知识库系统 V2 部署手册
## 适用范围
本文档用于 V2 当前版本的部署交接。当前版本包含:
- 后端FastAPI
- 用户端 H5Vue 3
- 管理后台Vue 3 + Element Plus
- 数据库MySQL 8.x
## 部署前检查
1. 确认服务器已经安装 Docker 和 Docker Compose。
2. 确认 MySQL 数据目录有持久化卷或外部数据库。
3. 确认以下密钥不再使用开发默认值:
- `JWT_SECRET_KEY`
- `BOOTSTRAP_ADMIN_PASSWORD`
- 模型 API Key
- 飞书检索服务凭证或适配服务密钥
4. 确认防火墙只开放必要端口。
5. 确认已经执行数据库备份。
## 本地开发启动
```bash
cd ai_knowledge_base_v2
docker compose -f docker-compose.dev.yml up --build
```
默认地址:
- 用户端 H5`http://127.0.0.1:5173/`
- 管理后台:`http://127.0.0.1:5174/`
- 后端健康检查:`http://127.0.0.1:8100/api/health`
- MySQL`127.0.0.1:3307`
## 开发阶段默认账号
用户端:
```text
手机号:任意 11 位手机号
验证码123456
```
管理后台:
```text
账号admin
密码admin123456
```
生产环境必须修改默认管理员密码。
## 数据库迁移
后端容器启动时会执行:
```bash
alembic upgrade head
```
如果需要手工执行:
```bash
cd apps/backend
alembic upgrade head
```
## 备份
可使用脚本:
```bash
cd ai_knowledge_base_v2
BACKUP_DIR=./backups ./scripts/mysql_backup.sh
```
## 回滚原则
1. 先停止新版本服务。
2. 切回上一版镜像或上一版 Git commit。
3. 如果数据库迁移不可逆,先从备份恢复。
4. 恢复后检查:
- `/api/health`
- 用户端登录
- 用户端提问
- 管理后台登录
- 管理后台数据列表
## 生产待补事项
- 前端生产镜像建议改为 Nginx 静态服务,不使用 Vite dev server。
- 模型 API Key 建议加密保存或使用密钥管理服务。
- 后端需要接入结构化日志采集。
- 需要配置 HTTPS、域名、访问日志和基础监控。

View File

@@ -0,0 +1,42 @@
# V2 发布检查清单
## 发布前
- [ ] 已确认当前 Git commit。
- [ ] 已执行 `./scripts/phase6_verify.sh`
- [ ] 已备份 MySQL 数据库。
- [ ] 已替换开发默认管理员密码。
- [ ] 已替换 `JWT_SECRET_KEY`
- [ ] 已确认飞书检索配置。
- [ ] 已确认模型配置和额度策略。
- [ ] 已确认前端 API 地址。
## 发布中
- [ ] 拉取最新代码或镜像。
- [ ] 执行数据库迁移。
- [ ] 启动后端服务。
- [ ] 启动用户端 H5。
- [ ] 启动管理后台。
- [ ] 检查后端健康接口。
## 发布后
- [ ] 用户端可以登录。
- [ ] 用户端可以创建会话。
- [ ] 用户端可以提问并收到回答。
- [ ] 无命中问题返回固定兜底。
- [ ] 管理后台可以登录。
- [ ] 管理后台可以查看 Dashboard。
- [ ] 管理后台可以保存 Prompt。
- [ ] 管理后台可以新增知识库。
- [ ] AI 请求日志有记录。
- [ ] 操作日志有记录。
## 回滚触发条件
- 用户端无法登录。
- 用户端无法完成提问主链路。
- 后台无法登录。
- 数据库迁移失败且无法快速修复。
- 外部服务异常导致核心链路不可用。

View File

@@ -32,3 +32,4 @@
| `2026-07-06-phase3-user-client-completion.md` | 阶段三用户端 H5 主链路补齐记录。 |
| `2026-07-06-phase4-rag-external-services.md` | 阶段四 RAG 和外部服务接入骨架记录。 |
| `2026-07-06-phase5-admin-console.md` | 阶段五管理后台记录。 |
| `../test_records/2026-07-06-phase6-verification.md` | 阶段六验证记录。 |

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -euo pipefail
BACKUP_DIR="${BACKUP_DIR:-./backups}"
MYSQL_HOST="${MYSQL_HOST:-127.0.0.1}"
MYSQL_PORT="${MYSQL_PORT:-3307}"
MYSQL_USER="${MYSQL_USER:-ai_kb}"
MYSQL_PASSWORD="${MYSQL_PASSWORD:-ai_kb}"
MYSQL_DATABASE="${MYSQL_DATABASE:-ai_knowledge_base_v2}"
mkdir -p "$BACKUP_DIR"
OUTPUT_FILE="$BACKUP_DIR/${MYSQL_DATABASE}_$(date +%Y%m%d_%H%M%S).sql"
mysqldump \
-h "$MYSQL_HOST" \
-P "$MYSQL_PORT" \
-u "$MYSQL_USER" \
-p"$MYSQL_PASSWORD" \
--single-transaction \
--routines \
--triggers \
"$MYSQL_DATABASE" > "$OUTPUT_FILE"
echo "备份完成:$OUTPUT_FILE"

View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
echo "== 后端编译检查 =="
cd "$ROOT_DIR/apps/backend"
./.venv/bin/python -m compileall app
echo "== 后端 OpenAPI 检查 =="
DATABASE_URL=sqlite:///:memory: ./.venv/bin/python - <<'PY'
from app.main import app
paths = app.openapi().get("paths", {})
print(f"OpenAPI paths: {len(paths)}")
assert len(paths) >= 32
PY
echo "== Alembic MySQL 静态 SQL 检查 =="
./.venv/bin/alembic upgrade head --sql >/tmp/ai_kb_v2_migration.sql
wc -l /tmp/ai_kb_v2_migration.sql
echo "== 用户端 H5 构建 =="
cd "$ROOT_DIR/apps/user-client"
npm run build
echo "== 管理后台构建 =="
cd "$ROOT_DIR/apps/admin-web"
npm run build
echo "== Docker Compose 配置检查 =="
cd "$ROOT_DIR"
docker compose -f docker-compose.dev.yml config --quiet
echo "阶段六自动验证完成"

View File

@@ -0,0 +1,47 @@
# 阶段六验证记录
日期2026-07-06
## 验证范围
本次验证覆盖当前 V2 代码状态:
- 后端基础接口
- 用户端 H5 构建
- 管理后台构建
- Alembic 迁移 SQL 生成
- Docker Compose 配置
- RAG/模型 mock 服务级逻辑
## 已执行验证
| 验证项 | 结果 | 说明 |
| --- | --- | --- |
| 后端 `python -m compileall app` | 通过 | 后端 Python 文件可编译。 |
| FastAPI OpenAPI 导入 | 通过 | 当前接口路径数为 32。 |
| Alembic MySQL 静态 SQL 生成 | 通过 | 可生成初始迁移 SQL。 |
| 用户端 H5 `npm run build` | 通过 | Vue H5 构建成功。 |
| 管理后台 `npm run build` | 通过 | Element Plus 有体积提示,但构建成功。 |
| Docker Compose 配置检查 | 通过 | `docker compose config --quiet` 无报错。 |
| RAG 命中服务级验证 | 通过 | 命中问题返回带来源的 mock 回答。 |
| RAG 无命中服务级验证 | 通过 | 返回固定兜底文案。 |
## 未完整执行的验证
- 未执行真实飞书知识库检索,因为缺少飞书账号、权限和真实 API 返回结构确认。
- 未执行真实大模型调用,因为缺少生产模型配置和 API Key。
- 未执行完整 Docker 容器启动验收,因为此前 Docker Hub 基础镜像下载速度过慢,容易拖慢开发节奏。
- 未执行浏览器人工全流程点测截图,后续进入测试阶段需要补充。
## 当前验收结论
当前版本已经完成阶段一到阶段六的工程闭环:
1. 有需求、架构和开发决策记录。
2. 有后端基础工程、数据模型和核心接口。
3. 有用户端 H5 主链路。
4. 有 RAG/外部服务 provider 骨架。
5. 有管理后台第一版。
6. 有验证脚本、部署手册、发布检查清单和备份脚本。
当前版本适合进入“真实外部服务接入前的联调测试”。