84 lines
5.4 KiB
Markdown
84 lines
5.4 KiB
Markdown
# AI 平台配置演示版验收
|
||
|
||
更新日期:2026-07-16
|
||
|
||
## 验收状态
|
||
|
||
| 检查项 | 状态 | 证据 |
|
||
|---|---|---|
|
||
| 后端自动化 | 已通过 | 79 项 pytest;Ruff、迁移漂移与 Django system check 通过 |
|
||
| 全新数据库迁移 | 已通过 | 测试配置下从空库应用全部迁移 |
|
||
| 前端自动化 | 已通过 | 38 项 Vitest;覆盖异步轮询、失败态、发布、运行详情、取消、应用壳层、个人中心和本地 Agent 面板;ESLint、类型检查与生产构建通过 |
|
||
| 本地界面人工验收 | 已通过 | 桌面端管理工作台由项目验收人确认正常 |
|
||
| 真实模型三步运行 | 已通过 | `openai / gpt-5.4-mini` 完成草稿沙箱和发布版本三步运行 |
|
||
|
||
AI 平台配置演示版固定验收已完成。该结论只覆盖模型、Skill、Agent 配置与运行底座,不代表可信建单业务闭环已经完成。
|
||
|
||
## 前置条件
|
||
|
||
- 使用桌面端浏览器和系统管理员账号。
|
||
- `.env` 已设置独立的 `AI_CREDENTIAL_ENCRYPTION_KEY`。
|
||
- PostgreSQL、Redis、Django、Celery worker、Celery Beat 和前端均已启动。
|
||
- 已准备一个允许聊天补全、能够输出 JSON 的 OpenAI-compatible 文本模型渠道。
|
||
|
||
## 固定端到端脚本
|
||
|
||
1. 管理员登录空白环境,确认 AI 能力菜单包含 Agent、运行记录、Skill 和模型渠道。
|
||
2. 打开 `#/modelhub/providers`,在“渠道 / 模型 / 调用记录”三个页签中创建渠道并录入真实凭证;保存后确认页面只显示末四位脱敏值。
|
||
3. 创建文本模型配置并执行连通测试,等待状态变为“成功”;记录测试 UUID、Token 是否由渠道提供以及耗时。
|
||
4. 在后端执行 `python manage.py seed_ai_demo --deployment-id <模型配置 ID>`,确认生成三个已发布 Skill 和一个技术支持分析 Agent 草稿。
|
||
5. 打开 `#/skills`,进入每个 Skill,校验并格式化输入/输出 Schema;编辑草稿后发布。
|
||
6. 打开 `#/agents`,检查三个有序步骤及其输入映射,按需调整模型参数,并以示例输入运行草稿沙箱。
|
||
7. 在运行详情确认执行脊柱包含“问题结构化、排查建议、客户回复草稿”,最终输出等于最后一步输出;检查每步版本、输入输出、调用尝试、Token、耗时和配置快照。
|
||
8. 发布 Agent,再运行已发布版本;确认运行记录不再标记沙箱。
|
||
9. 修改配置并创建新版本,回看旧运行,确认旧运行仍显示原 Agent、Skill、模型和参数快照。
|
||
10. 创建一个不具备 `model.manage`、`skill.manage`、`agent.manage`、`agent.use`、`agent.run.view` 的账号,确认入口隐藏,直接请求相应 API 返回 403。
|
||
11. 查看操作审计,确认存在渠道、模型测试、Skill/Agent 发布回滚、运行启动/结束和取消记录;确认审计中不存在明文密钥、完整 Prompt、完整输入或完整模型响应。
|
||
12. 使用超级管理员对未使用模型执行删除,确认结果为永久删除;对存在调用或 Agent 引用的模型执行相同操作,确认结果为归档且历史调用仍可查询。
|
||
13. 归档渠道,确认活跃子模型联动归档、凭证和图片出境授权被清除;恢复后确认渠道与联动归档模型均保持停用,且单独归档模型不会被恢复。
|
||
14. 在“调用记录”中验证分页和筛选;普通 `model.manage` 用户只能查看摘要,具备 `model.invocation.view` 的用户才能加载保留期内的输入输出诊断。
|
||
|
||
## 失败路径抽查
|
||
|
||
- 将测试渠道凭证替换为无效值,确认鉴权失败立即终止且不重试。
|
||
- 使用可控兼容服务返回一次 429 或 5xx,确认只退避重试一次。
|
||
- 让模型首次返回不符合 Schema 的内容,确认出现一次 `structure_repair`;第二次仍无效时运行失败且后续步骤不执行。
|
||
- 对排队任务执行取消,确认立即变为 `cancelled`;对运行中任务取消,确认当前模型请求返回后不再开始下一步。
|
||
|
||
## 验收记录模板
|
||
|
||
```text
|
||
日期:
|
||
执行人:
|
||
渠道名称 / 模型名:
|
||
模型测试 UUID:
|
||
草稿运行 UUID:
|
||
发布运行 UUID:
|
||
旧版本快照检查:通过 / 不通过
|
||
权限与审计检查:通过 / 不通过
|
||
结论:通过 / 不通过
|
||
备注(禁止粘贴密钥和完整敏感输入):
|
||
```
|
||
|
||
## 2026-07-16 本地验收记录
|
||
|
||
```text
|
||
日期:2026-07-16
|
||
执行人:本地管理员 / Codex
|
||
渠道名称 / 模型名:openai / gpt-5.4-mini
|
||
模型测试 UUID:1eee4eb3-ace8-4bc5-9d92-81b8ed096412
|
||
模型测试结果:成功;输入 13 Token;输出 61 Token;耗时 6031 ms;重试 0 次
|
||
草稿运行 UUID:2c0cd282-adab-4efe-ab8e-c827ef85a267
|
||
草稿运行结果:成功;3 步;输入 2678 Token;输出 3307 Token;耗时 70968 ms
|
||
发布运行 UUID:d8ef43d4-27b5-44e8-b616-ac809e15a906
|
||
发布运行结果:成功;3 步;输入 3250 Token;输出 3815 Token;耗时 75406 ms
|
||
结构修复:三个步骤均触发一次结构修复并成功
|
||
最终输出:等于最后一个 reply 步骤输出
|
||
旧版本快照检查:通过;创建版本 2 草稿后,两次历史运行仍固定为版本 1
|
||
回滚检查:通过;激活版本回滚到版本 1
|
||
权限与审计检查:通过;无权限账号入口隐藏,四类 AI API 返回 403,抽查 31 条审计记录无完整敏感正文
|
||
凭证检查:通过;API 不返回 api_key,已配置凭证只返回脱敏值
|
||
结论:通过
|
||
备注:宿主机 Celery worker 必须继承 AI_CREDENTIAL_ENCRYPTION_KEY;密钥和完整输入未写入验收记录
|
||
```
|