项目:离线 AI 治理包
项目目标
运行 examples/governance_pack.py,为一个完全合成的“福利申请材料辅助整理”系统生成 JSON 治理包。场景只允许整理材料和生成缺失项清单,明确禁止决定资格或自动联系申请人。脚本把系统清单、责任、风险/影响、数据/模型/供应商、审批、变更、监控、事故与退役计划连成一个版本化证据包。
在本笔记所在目录运行:
python -B .\examples\governance_pack.py # 生成合成场景的治理包;-B 避免创建字节码缓存。
python -B .\examples\governance_pack.py --self-test # 运行脚本内置的快速不变量检查。
python -B -m unittest discover -s .\examples -p 'test_*.py' -v # 正常模式发现并详细执行治理包回归测试。
python -B -O -m unittest discover -s .\examples -p 'test_*.py' # 检验生产校验不依赖 -O 会移除的 bare assert。
python -B -W error -m unittest discover -s .\examples -p 'test_*.py' # 把警告提升为失败,捕获潜在兼容性问题。脚本只使用 Python 标准库,输出到标准输出,不写文件、不联网、不读取环境变量或真实数据。示例中的组织、供应商、人员和地区都是虚构占位。
阅读顺序
SCENARIO:系统用途、禁止用途、受影响者、数据、组件和风险事实。tier_risk:教学用内部矩阵如何排序,以及高影响场景的覆盖规则。build_pack:如何从同一事实生成相互引用的登记册与计划;数据源带版本和负责人,供应商记录带尽调快照、负责人和退出边界。validate_scenario与validate_pack:状态/决策角色、数据风险一致性、每个嵌套工件、ISO 日期、审批范围与版本的显式确定性校验;场景 SHA-256 将批准绑定到原始事实,避免同时篡改两份版本表后通过。这里的摘要使用本项目的稳定本地 JSON 序列化,只用于变更检测,不是数字签名、跨系统规范化标准或真实来源证明。校验不依赖会被python -O移除的assert。
治理包验收
-
system_register有唯一 ID、状态、用途、禁止用途、负责人、受影响者和复查日。 -
role_assignment区分最终责任、执行、独立复核、咨询和知情方。 - 风险等级有文字理由;影响评估包含利益、非 AI 基线、影响路径、控制和残余风险。
- 数据有来源、版本和负责人;模型、Prompt、工具有版本与负责人;虚构供应商记录有尽调快照、负责人和退出边界。
- 审批只允许合成数据沙箱,绑定版本、条件、到期日和变更触发器。
- 监控指标有阈值与动作;事故和退役计划可以执行。
-
--self-test通过,73 项测试在普通、-O与警告即错误三种模式全部通过,输出中无真实数据、凭据或合规声明。
动手扩展
复制 SCENARIO 并做三轮变化:加入真实用户、允许自动发信、切换托管模型。每次比较风险分级、审批结果、监控和需重新取得的证据。不要通过降低严重性分数让方案通过;对不可接受用途应直接停止。
进一步可加入本地 JSON 输入与 JSON Schema,但仍使用合成数据;添加 source_status 记录框架获取日期;为每个风险生成离线测试 ID,并与评测报告相互引用。
常见误区
- 脚本通过只证明教学数据结构满足断言,不证明真实系统安全、公平、有效或合规。
- 风险分数是组织内排序示例,不是欧盟 AI Act 或任何地区的法律分类。
- 文档完整不代表控制已实现;生产证据还要来自配置、测试、日志、合同和实际人员决定。
- 合成场景不能替代受影响者参与、领域评审和地区性法律复核。
自测与掌握检查
- 能解释每个治理工件由哪个事实生成、谁负责、何时更新。
- 能从一次模型变化追踪到影响评估、评测、审批、说明与监控。
- 能指出治理包缺少的真实生产证据,而不是把 JSON 当证书。
- 能设计拒绝上线、限时试点、附条件上线和退役四种决策路径。
资料基线与边界
项目字段依据 NIST AI RMF Core、NIST AI RMF Playbook、OECD AI Principles 和 OECD AI 事故报告框架 自行组织,获取日期:2026-07-22。返回 AI 治理学习目录。本项目不构成法律、审计、认证或合规意见。