项目:图像生成任务审计

项目目标

在调用任何生成模型前,用 Python 标准库审计一份任务清单。项目验证任务类型、画布比例、提示要素、风险门禁、验收维度、预算、复现计划,以及来源/发布治理;它不会联网,不需要密钥,也不会生成或读取图片。

文件说明

运行步骤

在 PowerShell 7 中,从同时包含 docs/ 与 .website/ 的项目根目录进入示例目录:

Push-Location -LiteralPath 'docs\图像生成\03-项目与自测\examples'
python -B .\audit_image_plan.py .\image_task_plan.json
python -B -m unittest discover -s . -p 'test_*.py'
python -B -O -m unittest discover -s . -p 'test_*.py'
python -B -W error -m unittest discover -s . -p 'test_*.py'
Pop-Location

成功时审计器打印任务摘要并返回退出码 0;结构合同有效但权利、比例、素材角色、ACL、删除传播、证据边界、预算或验收门禁失败时返回 1;文件、UTF-8、严格 JSON 或封闭字段合同错误返回 2。-B 禁止 Python 创建 .pyc 缓存。当前共 90 项测试,三种模式都应通过。

严格 JSON 会拒绝重复键与 NaN/Infinity。引用素材若存在,必须记录 asset_id、source_revision、角色、来源引用、SHA-256、权利引用和 acl_reference;image_to_image、variation、outpainting 需要 source_image,inpainting 还需要 mask。顶层 lineage 固定需求版本、执行 transform_id 与候选 release_id;governance 要求在评分前启用对象级授权/ACL、写出撤权/删除传播计划,并将事实性发布限制为 evidence_supported。这是一份教学业务合同,不是供应商 API 镜像。

你要修改的实验

  1. 把 rights_confirmed 改为 false,观察硬门禁错误。
  2. 把宽度改成 1000 但保留 4:5,观察比例一致性检查。
  3. 删除 acceptance 中的 safety 维度,理解为何总分不能替代安全门槛。
  4. 复制夹具,设计“局部重绘”任务,添加 source_image 与 mask 两个匿名素材记录,并填写 asset_id、source_revision、acl_reference、哈希和权利引用;在提示的构图/禁止项中明确保护区,不要假装通用 schema 已覆盖供应商全部编辑参数。
  5. 将 object_acl_required 改为 false,观察审计器为何在任何评分前拒绝任务。
  6. 将 evidence_policy 改为其他值,说明为什么生成图、哈希或内容凭证都不能单独支持事实性发布。

项目验收

  • 有用途、受众、任务类型和结构化提示。
  • 输出规格内部一致,候选数和尝试数有上限。
  • 参考素材权利、人工审查和来源计划都是显式字段。
  • source_revision、transform_id 与 release_id 可区分需求、变换与发布候选;对象级 ACL 和撤权/删除传播均有明确计划。
  • 事实性发布边界声明为 evidence_supported,不把生成结果本身当作外部事实证据。
  • 验收覆盖提示遵循、构图、文字、视觉质量、安全和权利。
  • 没有 API key、真实人物素材、具体价格或模型权重。
  • 有效夹具退出码为 0,策略失败为 1,合同失败为 2。
  • 90 项测试在普通、-O 和 warnings-as-errors 三种模式均通过。

综合自测

  1. 为什么审计器只验证“计划完整”,不能证明输出安全或高质量?
  2. 哪些字段属于稳定业务语义,哪些应留给供应商适配器?
  3. 如何把审计结果接入 Agent:允许继续、请求补充还是拒绝?
  4. 若供应商不支持 seed,复现记录还应保留什么?

参考资料