flowchart LR
A["source / resource"] --> B["asset inventory"]
B --> C["metadata minimum / PII policy"]
C --> D["data contract"]
D --> E["source manifest"]
E --> F["gate / run evidence"]
F --> G["Week03 ingest baseline"]
Week02|输入确定性保障——数据盘点与数据契约
在进入采集、入湖、RAG 与 Agent 之前,先把输入系统做对
这一周不是在补“数据治理附属工作”,而是在建立生产级 AI 系统的第一道主结构:
什么数据可以进入系统、必须带什么元数据、哪些字段需要 PII 管控、什么情况下必须被拦截。
很多团队把 AI 失真归因到模型不够强、Prompt 不够细、检索不够准;但在真实企业场景中,更早摧毁系统的,往往是输入侧的静默漂移、来源不明、口径不一与越权暴露。
本周所有实践默认在 OmniSupport Copilot 项目仓库 中完成。课程讲义负责解释方法、步骤与判断,代码与验证以项目仓库当前结构为准。
课程里统一使用 Data Contract 这个方法论概念;在当前 OmniSupport Copilot 项目中,Week02 第一版先以 JSON Schema(
contracts/data/*.json)和 JSON manifest(data/seed_manifests/*.json)落地。
本周一句话
把资产盘点、最小元数据、PII 分级、Data Contract 和采集策略,收口成一条 可放行、可拦截、可审计 的输入门禁链。
本周认知阶梯
| 阶段 | 学生要解决什么 | 对应页面 |
|---|---|---|
| 先建立风险意识 | 为什么输入先坏而不是模型先坏 | 课时1 |
| 再做对象建模 | 哪些资源才值得接入 | 课时2 |
| 再做最小标准 | metadata 与 PII 怎么统一 | 课时3 |
| 再做门禁 | 什么输入能放行、什么必须拦截 | 课时4 |
| 再做批次声明 | 这一次到底怎么接 | 课时5 |
| 最后跑闭环 | 让 contract + manifest 进入工程 | 实验 / 作业 |
本周统一案例线:Northstar 三条产品线、四类输入
为了避免每一课都像孤立术语,Week02 全周统一沿着 Northstar 的三个业务场景展开:
| 产品线 | 业务场景 | 本周重点输入 |
|---|---|---|
Northstar Workspace |
Help Center、FAQ、ticket 处理 | ticket、document |
Northstar Edge Gateway |
PDF 手册、升级说明、故障录像 | document、video |
Northstar Studio |
教程视频、录屏、社区问答、语音支持 | video、audio、document |
这一周所有判断都围绕四类主输入收口:
ticketdocumentaudiovideo
这样做的目的不是缩小世界,而是先把最容易进入企业 AI 系统的四类输入对象真正讲透。
本周在整门课里的位置
上承 Week01
接住系统蓝图、Done 边界、风险边界与项目基线。
本周解决
输入是否可信、可追溯、可合规、可采集。
下接 Week03
把 contract 与 manifest 真正变成 ingest、回放与补数的准入标准。
影响后续
Week07 的证据链、Week08 的 RAG API、Week10 的工具边界、Week14 的版本治理,都会持续消费本周定义的 contract、metadata 与 policy。
本周为什么重要
- 输入问题通常比模型能力不足更早摧毁系统质量。
- 如果 Week02 没有把输入工程化,后面的检索、生成、Agent 和评测都会建立在不稳定基础上。
- 资产盘点不是资源罗列,而是输入系统建模。
- Data Contract 不是说明文档,而是运行时门禁。
- 多模态输入如果没有统一元数据与 PII 分级,后面的引用、过滤、审计都会失真。
本周学习目标
完成这一周后,学员应该能做到:
- 解释为什么企业 AI 系统首先要解决输入确定性,而不是一上来调模型。
- 系统盘点结构化、非结构化、音频、视频、工单等输入资产。
- 设计文档 / 音频 / 视频 / 工单四类最小元数据与 PII 分级规则。
- 把 Data Contract 写成机器可读、可校验、可拦截的工程门禁。
- 基于 contract 反推采集策略、增量窗口、失败拦截与 Week03 的 ingest 起跑线。
Week02 的 6 个核心对象,别再混
Week02 最容易学散的原因,是学生会把很多对象混成一句“把数据治理好”。更稳的办法,是先把 6 个核心对象分开:
| 对象 | 它回答什么问题 | 当前 repo 里的典型落点 |
|---|---|---|
source / resource |
企业里到底有哪些候选数据源 | 业务系统、文件系统、音视频源本身 |
asset inventory |
哪些资源值得进入 AI 系统 | docs/blueprints/week02/asset_inventory_v1.csv |
metadata minimum |
每类输入最低要带哪些上下文 | docs/blueprints/week02/metadata_minimums_v1.md |
PII policy |
哪些字段属于什么风险等级、该怎么处理 | docs/blueprints/week02/pii_policy_matrix_v1.csv |
data contract |
什么样的记录可以被系统接收 | contracts/data/*.json |
source manifest |
这一次 ingest 到底要接哪一批 source | data/seed_manifests/*.json |
把这 6 个对象记清楚之后,Week02 到 Week03 的关系就会稳定很多:
- 课时2解决
asset inventory - 课时3解决
metadata minimum + PII policy - 课时4解决
data contract - 课时5解决
source manifest - Week03 再把这 4 件工件推进到 ingest admission、state、report、replay
本周统一方法论:从资源到准入
| 维度 | 代表对象 | 它回答什么 |
|---|---|---|
| 世界里有什么 | source / resource | 企业真实世界有哪些候选资源 |
| 系统准备接什么 | asset inventory / metadata / PII | 哪些可以成为 AI 输入 |
| 本次具体怎么接 | contract / manifest / gate | 当前批次能不能被系统接收 |
本周统一闭环图
这张图最关键的一点是:
Week02 的目标不是“把数据整理得更好看”,而是建立一条输入准入链。
最容易混淆的 5 组概念
1. 资源目录 vs 输入地图
| 概念 | 它解决什么 | 它还没解决什么 |
|---|---|---|
| 资源目录 | 我们手里有什么 | 哪些资源真的适合作为 AI 输入 |
| 输入地图 | 哪些输入值得进入系统、如何接、谁负责、影响谁 | 具体运行时批次策略 |
2. Schema vs Data Contract
| 概念 | 它重点约束什么 | 为什么不能混用 |
|---|---|---|
| Schema | 字段形状与类型 | 只解决结构,不解决语义、边界和运行时动作 |
| Data Contract | 结构、语义、质量、权限和兼容性 | 它决定能不能放行、拦截、报警 |
3. Contract vs Manifest
| 概念 | 它回答什么问题 |
|---|---|
| Contract | 一条记录什么样才算合法 |
| Manifest | 这一次到底准备接哪一批 source、用什么模式接 |
4. Quarantine vs Reject
| 动作 | 什么时候用 |
|---|---|
| Quarantine | 有部分数据还可保留,但必须隔离、等待补救 |
| Reject | 当前批次或当前 source 已不满足最低准入条件 |
5. Metadata vs Provenance
| 概念 | 你最该记住什么 |
|---|---|
| Metadata | 让系统知道这条内容属于什么、怎样被消费 |
| Provenance | 让系统和人能回到“它到底来自哪里、何时产生、谁说的、在哪一页/哪一秒” |
- Data Contract 不是数据字典,而是输入门禁。
- metadata 不是备注,而是运行时接口。
- PII 不是布尔开关,而是字段 × 动作 × 风险矩阵。
- manifest 不是文件列表,而是一次 ingest 的运行时意图声明。
为什么 Week02 不先聊索引与模型
很多团队会问:为什么不先讲 embedding、reranker、Prompt 或索引优化?
因为这些都属于下游表达和排序问题,而 Week02 解决的是上游事实、证据和边界问题。
| 层面 | 它主要解决什么 |
|---|---|
| 索引 / 模型 / Prompt | 下游排序、表达、格式、可读性 |
| 输入确定性 | 上游事实是否可信、证据是否可回指、边界是否可执行 |
如果上游输入已经漂了,后面再强的模型也只会把错误事实加工得更像真的。
学完 Week02 你应该形成的最小能力闭环
| 你能说清什么 | 你能写出什么 | 你能跑通什么 |
|---|---|---|
| 输入为什么会先毁系统 | asset_inventory / metadata / PII / contract / manifest |
contract tests + manifest dry-run |
五个课时
课时1|为什么输入问题会先于模型问题摧毁系统
这一课先建立核心判断: 企业 AI 系统最危险的不是“完全没数据”,而是“数据看起来还能跑,但已经静默偏移”。
重点解决:
- 为什么很多系统不是模型先坏,而是输入先坏
- 三类输入风险如何穿透到检索、生成与动作层
- 为什么 Week02 是整门课的数据入口控制面
课时2|从资源目录到输入地图:企业数据资产盘点方法论
这一课把“盘点”从 Excel 清单升级成输入系统建模。
重点解决:
- 怎么盘结构化 / 非结构化 / 对话 / 多模态输入
- 如何识别 owner、refresh、access、risk、consumer
- 如何把盘点结果沉淀成后续 contract 与 ingest 的输入地图
课时3|多模态最小元数据与 PII 分级:文档、音频、视频、工单怎么统一
这一课专门解决统一标准问题。
重点解决:
- 文档、音频、视频、工单分别必须保留哪些最小元数据
- provenance、timestamps、speaker_role、page_no、bbox、section_path 为什么是硬约束
- 字段级 PII 分级、脱敏规则、权限边界如何前置到输入层
课时4|把 Data Contract 做成工程门禁:Schema、语义、质量、兼容性
这一课把契约从“写文档”升级为“能拦截运行时风险”。
重点解决:
- Schema、业务口径、质量门禁、access policy 如何统一进 contract
- additive / conditional / breaking change 怎么定义
- 为什么 contract 必须进 CI、lint、runtime gate,而不是只放在 Wiki
课时5|契约驱动的采集策略:Manifest、增量窗口、拦截与 Week03 起跑线
这一课把 Week02 真正收口到 Week03。
重点解决:
- manifest 怎么驱动 ingest
- 全量、增量、回放、隔离区如何声明化
- schema drift、metadata 缺失、PII 违规如何自动拦截
- 怎么把本周工件转成 Week03 的 ingest baseline
实验|四类数据契约与输入门禁最小闭环
实验目标不是“补几份契约文件”,而是跑通一个最小闭环:
- 为 ticket / document / audio / video 四类输入定义 contract v1
- 为 JSON manifest 定义最小校验规则
- 模拟一次字段漂移或元数据缺失
- 验证 gate 能否正确放行、拦截、隔离并输出报告
作业|资产清单、四类契约 v1 与采集计划
本周作业要求学员真正交付一套可进入 Week03 的输入准入包:
- 《数据资产清单》v1
- ticket / document / audio / video 四类 contract v1
- 《采集计划 / source manifest》v1
- 一份对 schema 变更、PII 风险、元数据缺失的处理说明
本周交付物
- 《数据资产清单》v1
- 《四类 Data Contract》v1
- 《采集计划 / Source Manifest》v1
- 《输入门禁最小闭环验证报告》v1
关键判断
- 输入问题是系统问题,不是辅助治理问题。
- 资产盘点是输入系统建模,不是资源罗列。
- 最小元数据是后续证据链、权限过滤和审计的基础设施。
- Data Contract 只有能放行、能拦截、能预警,才算工程门禁。
- Week02 做得越扎实,Week03 之后的 ingest、RAG、Agent、评测与治理越稳。
上下游关系
- 上承 Week01:把系统蓝图、Done 边界与风险边界压到输入侧。
- 下接 Week03:把 contract、manifest、gate 变成 ingest 的准入标准。
- 影响 Week07–Week14:元数据、证据链、权限、兼容性与版本治理都会持续复用本周定义。
延伸阅读
- Schema 与 Contract Thinking
- Metadata / Provenance / Lineage
- PII Classification 与 Redaction
- Structured Outputs、Citations 与 Tool Boundary