Files
ai-ticket-platform/docs/development/ai-platform-demo-acceptance.md
2026-09-18 15:26:19 +08:00

84 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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;密钥和完整输入未写入验收记录
```