104 lines
5.9 KiB
Markdown
104 lines
5.9 KiB
Markdown
# 雅文内容创造工作台源码交付说明
|
||||
|
|
|
|||
|
|
> 交付日期:2026-08-28
|
|||
|
|
> 交付类型:当前磁盘源码快照
|
|||
|
|
> 代码仓库状态:当前目录不是 Git 仓库,因此本包不包含提交历史与分支信息。
|
|||
|
|
|
|||
|
|
## 1. 打包范围
|
|||
|
|
|
|||
|
|
压缩包包含:
|
|||
|
|
|
|||
|
|
- `server/app/`:FastAPI、SQLModel、Agent Runtime、RAG、QC、计费和权限源码。
|
|||
|
|
- `server/scripts/`:知识导入与维护脚本。
|
|||
|
|
- `server/tests/`:31 项后端单元测试。
|
|||
|
|
- `server/requirements.txt`:后端依赖声明。
|
|||
|
|
- `web/src/`:React + TypeScript 前端源码。
|
|||
|
|
- `web/package.json`、锁文件及 Vite/TypeScript 配置。
|
|||
|
|
- 当前根目录设计文档、流程图、验收报告和启动脚本。
|
|||
|
|
- 本交付说明。压缩包外随附同名 `.sha256` 文件,用于核对 ZIP 完整性。
|
|||
|
|
|
|||
|
|
压缩包明确排除:
|
|||
|
|
|
|||
|
|
- `server/.venv/`、`web/node_modules/`、`web/dist/`。
|
|||
|
|
- `server/data/` 下的数据库、知识库原文、向量索引、日志、备份与生成内容。
|
|||
|
|
- `.env`、密钥、证书、Token 和 Provider 真实凭据。
|
|||
|
|
- 旧版源码压缩包、缓存、`__pycache__` 和测试临时文件。
|
|||
|
|
|
|||
|
|
## 2. 本轮已经修改
|
|||
|
|
|
|||
|
|
1. 为内容任务新增 `objective` 和 `success_criteria`,新任务必须同时填写唯一业务目标与验收标准。
|
|||
|
|
2. SQLite 幂等迁移新增对应字段,历史任务保留并使用兼容默认值。
|
|||
|
|
3. 任务契约贯穿 Coordinator 拆解、生产 Agent、四道 QC 和 Composer 总检。
|
|||
|
|
4. `CampaignRun.config_snapshot` 冻结目标、验收标准和导图 SHA-256,减少配置漂移。
|
|||
|
|
5. 任务页新增目标与验收标准输入和详情展示。
|
|||
|
|
6. 增加 `/api/health` 公共健康探针,只返回服务状态与版本,不暴露业务数据。
|
|||
|
|
7. 增加任务契约回归测试,后端测试从 30 项增至 31 项。
|
|||
|
|
8. 更新《从 0 到 1 核心逻辑设计文档 v6》,补充任务契约章节。
|
|||
|
|
|
|||
|
|
## 3. 验证结果
|
|||
|
|
|
|||
|
|
| 检查 | 结果 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 后端 Python 编译 | 通过 |
|
|||
|
|
| 后端单元测试 | 31 项全部通过 |
|
|||
|
|
| 前端 TypeScript 检查 | 通过 |
|
|||
|
|
| 前端 Vite 生产构建 | 通过,196 个模块 |
|
|||
|
|
| SQLite 迁移 | 通过,已确认 `objective`、`success_criteria` 两列存在 |
|
|||
|
|
| 后端健康探针 | `GET /api/health` 返回 `status=ok` |
|
|||
|
|
| 服务监听 | 前端 `127.0.0.1:5173`,后端 `127.0.0.1:8010` |
|
|||
|
|
| 页面级检查 | 管理端登录页可加载;当前浏览器没有有效登录会话,未继续提交业务表单 |
|
|||
|
|
|
|||
|
|
## 4. 仍未修改的问题
|
|||
|
|
|
|||
|
|
### P0:正式企业部署前必须完成
|
|||
|
|
|
|||
|
|
1. **Provider 密钥仍保存在本地 SQLite 字段中。** 应改为 KMS、系统密钥环或独立 Secret Manager,数据库只保存密钥引用和掩码。
|
|||
|
|
2. **业务文件仍是本地磁盘存储。** 当前没有 COS/S3/MinIO 对象存储适配器、临时签名下载、生命周期、跨节点共享和灾备恢复实现。
|
|||
|
|
3. **后台任务仍由进程内线程执行。** 服务重启或多实例部署时缺少可靠队列、租约、重试退避、死信队列和 worker 心跳;应迁移到持久任务队列。
|
|||
|
|
4. **租户边界尚未做数据库级强制。** 当前主要依赖应用层过滤;正式多租户需要数据库约束、服务层统一策略与越权集成测试。
|
|||
|
|
5. **备份恢复没有达到生产标准。** 现有本地数据库和向量文件没有自动备份、恢复演练、RPO/RTO 指标和对象存储版本控制。
|
|||
|
|
|
|||
|
|
### P1:影响稳定性和运营质量
|
|||
|
|
|
|||
|
|
1. **任务启动前准备度检查未完成。** 仍需在运行前一次性检查模型、Provider、Agent、知识库索引、可用知识片段、QC/Composer 和点数余额,并在 UI 显示阻断原因。
|
|||
|
|
2. **模型能力验证还不够强。** 已有模型目录和能力状态,但仍需结构化输出、工具调用、上下文长度、超时与速率限制的自动化探测和定期复测。
|
|||
|
|
3. **前端主要逻辑集中在 `App.tsx`。** 文件体量较大,任务、Agent、知识库、记忆、访问控制、计费和 Trace 应拆成独立路由、页面模块、数据 hooks 与错误边界。
|
|||
|
|
4. **后端路由主要集中在 `main.py`。** 应按认证、任务、Agent、知识、计费、审计拆分 router/service/repository,降低单文件修改风险。
|
|||
|
|
5. **部分读取异常被静默忽略。** QC/Composer 读取产物失败时存在 `except Exception: pass`,应写 Trace 并把段落标为明确失败,避免空内容进入下游。
|
|||
|
|
6. **向量存储降级不可观测。** Chroma 写入失败会使用本地 fallback,但没有告警、健康状态和修复任务,运营人员难以发现降级。
|
|||
|
|
7. **集成和端到端测试覆盖不足。** 当前 31 项以单元测试为主,还需要认证、RBAC、任务完整生成、知识消费锁、计费扣点、服务重启恢复和浏览器流程测试。
|
|||
|
|
8. **接口文档和版本管理不足。** 服务仍标记 `0.1.0-M1`,需要正式 API 版本、迁移版本、变更日志和兼容策略。
|
|||
|
|
|
|||
|
|
### P2:体验与长期演进
|
|||
|
|
|
|||
|
|
1. 增加任务级成本预算、预计 Token、预计耗时和知识可用量预估。
|
|||
|
|
2. 增加人工确认项的逐条确认、修改和审计记录。
|
|||
|
|
3. 增加知识库命中率、重复消费率、引用覆盖率和无依据内容率指标。
|
|||
|
|
4. 增加 Trace 跨服务关联、指标看板、告警和审计导出。
|
|||
|
|
5. 增加正式部署配置、容器镜像、反向代理、HTTPS、日志轮转和升级回滚流程。
|
|||
|
|
|
|||
|
|
## 5. 启动方式
|
|||
|
|
|
|||
|
|
首次部署先安装依赖:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
cd server
|
|||
|
|
python -m venv .venv
|
|||
|
|
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
|
|||
|
|
|
|||
|
|
cd ..\web
|
|||
|
|
pnpm install --frozen-lockfile
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
本地开发可运行根目录的 `启动工作台.bat`,也可分别启动:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
cd server
|
|||
|
|
.\.venv\Scripts\python.exe -m uvicorn app.main:app --host 127.0.0.1 --port 8010
|
|||
|
|
|
|||
|
|
cd ..\web
|
|||
|
|
pnpm dev --host 127.0.0.1 --port 5173
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
打开 `http://127.0.0.1:5173/admin`。业务数据库和知识资料不包含在源码包内,需要在目标环境重新初始化或单独通过受控迁移交付。
|