2026-07-22 第十九阶段摄取、数据、多模态与实时合同深审记录
阶段结论
本阶段把学习路线中最容易被误写成“只要模型能读/能答就完成”的上游链路,收敛为可检查的工程合同:文件与来源进入系统时有边界;数据、标注和合成样本能说明版本与发布关系;媒体证据、OCR 与检索不会越过对象级授权;实时语音在断线后不会借“已重连”跳过副作用核对。
覆盖 文档解析、知识库构建、数据清洗、数据标注、数据合成、多模态 AI、OCR、语音识别、语音合成 与 实时多模态交互。
本阶段不证明什么
标准库夹具、SQLite 和静态网页构建证明的是教学合同、链接和当前内容的一致性;它们不证明恶意文件隔离、真实 OCR/多模态模型质量、身份提供方、向量库物理删除、外部工具 receipt、浏览器/电话媒体栈、供应商保留政策或法律义务已经在生产环境通过验证。
多 Agent 分工与主 Agent 复核
主 Agent 先固定“稳定资产/来源版本、对象级授权、派生产物、证据支持、发布身份、可行动输入、删除传播”的跨课边界,再划分三组不重叠范围:
- 文档解析与知识库构建:文件预算、解析/OCR 边界、版本、outbox、ACL 与撤权;
- 数据清洗、标注与合成:schema/manifest、冻结 split、裁决、provenance 与发布;
- 多模态 AI 与 OCR:媒体证据、来源完整性、OCR—RAG 投影、C2PA 与安全;
主 Agent 独立审阅语音识别、语音合成与实时交互,修正状态机与代码合同;随后逐项复核跨课术语、链接、测试数和来源边界。各 Agent 只修改各自目录,没有 stage、commit、push、回退用户文件或修改生成站点目录。
关键改动
摄取与知识库:先有受控 canonical,再有可检索投影
- 文档解析不再只在
stat()后相信文件大小;教学解析器实际最多读取预算加一字节,文件在检查后增长时会拒绝而非全量读入。课程同时补充双扩展名、路径段、解码后校验、Unicode 规范化、TOCTOU 与“OCR 不是恶意 PDF 隔离”的边界。 - 知识库 outbox worker 现在核对 event 与
tenant/document/revision身份,只有仍为当前、未删除 revision 的 upsert 才物化搜索投影;过期 upsert 会消费但不让旧内容重新可检索。查询还复算 canonical 内容/来源/build hash 和 ACL,候选窗口、ACL 组数与请求组数都有 fail-closed 上限。 - 目录新增“版本发布 → outbox → 搜索投影 → 撤权/删除”原创 Mermaid 总览;删除、旧 revision、缓存/副本和物理清除仍被明确区分。
数据质量:把账本事实、评测 oracle 与发布证据分开
- 数据清洗区分 schema、数据契约与发布 manifest,并要求先冻结
group_id → family_id/ split,再拟合任何学习型统计量,避免家族泄漏与事后划分。 - 数据标注明确
final_label是经裁决的标注账本事实;它必须通过guideline_version → rubric_version的冻结映射投影为评测expected_label、工具 oracle 或 rubric,不能混成同一个字段。裁决、指南更新、桥接样本和重标流程已可视化。 - 数据合成项目从“provenance 字段存在”升级为验证 generator type/version、条件对应的 template ID、变量映射和真实数据声明;项目回归从 40 增至 43 项。
release_id现在关联 suite、dataset、rubric、grader、harness、逐 case 结果与批准,而不是把数据集版本当发布身份。
多模态与 OCR:引用存在不等于证据支持,更不等于获权
- 媒体与 OCR 课程统一保留
asset_id、source_revision、派生处理版本、坐标/时间范围、分类和对象级授权;evidence_bound只表示指针可解析且当前可读,evidence_supported才表示证据实际蕴含 claim。 - C2PA 被明确限定为内容 provenance/integrity 信号,不能升级成事实真实性、说话人身份或业务授权。来源撤权/删除采用“在线 fail closed,再确认 OCR/ASR 文本、chunk、Embedding、索引、缓存、评测副本和备份”等层级传播的表述。
- OCR 教学审计器不再把“空参考、非空预测”的 CER/WER 伪报为
1.0,而是返回null并要求单独分析该切片;多模态路由器写报告失败会返回2且不打印半份报告。
语音与实时交互:观察、可行动输入与副作用恢复三分
- ASR 课程区分
partial、provisional_final与committed;可修订转写不能直接触发写工具,只有独立turn.commit或用户确认可提升为行动输入。并修正 diarization 与声源分离的术语边界。 - TTS SSML 课程改用 W3C 所说的合法 XML prolog / namespaced
speak形式,不再把 XML 声明误写成所有接入形态的唯一要求。 - 实时状态图将重连后的路径改为
Reconciling;教学模拟器也新增门禁:存在旧写调用待核对时,恢复后拒绝新工作,只允许 receipt/result、再次断线或超时,所有结论可审计后才回到Listening。项目回归从 24 增至 25 项。
跨课程术语与责任边界
| 术语 | 本阶段的稳定含义 | 不可错误替代 |
|---|---|---|
asset_id / source_revision | 媒体或文档对象及其当前可读取版本 | 内容真实性、授权或 RAG 完整对象身份 |
source_lineage_id | 合成/数据工程中的抽象来源引用 | tenant_id + document_id + source sequence/revision + generation + ACL/tombstone 的 RAG 合同 |
final_label / expected_label | 前者是标注裁决,后者是经版本化投影的评测期望 | 模型输出、自由文本 rubric 或未裁决初标 |
evidence_bound / evidence_supported | 前者是可解析授权指针,后者是人工/受控 grader 判断的证据蕴含 | schema 合法、模型自我声明或来源 hash |
release_id | 一次可审计评测/发布证据集合的身份 | 数据集版本、模型别名或单次 demo |
authorization / ACL | 服务端按当前对象、主体和策略得出的可处理/可读取结论 | 文件名、EXIF、来源标签或用户自报字段 |
| 撤权/删除传播 | 在线立即阻断,随后逐层核对派生物与保留策略 | “删了原件/一个向量”或 hash 消失 |
turn / response / call | 实时输入、一次输出尝试、工具意图/结果的独立关联域 | transport connection、transcript partial 或播放队列 |
核心来源与材料边界
本轮新增讲解、Mermaid 图、测试和教学代码均为原创;第三方资料仅以链接、事实边界和少量术语说明引用,未加入不明再分发许可的完整材料。动态/规范结论优先核验一手资料:
- OCRmyPDF 文档、OWASP File Upload Cheat Sheet、Unicode UAX #15 与 Microsoft Graph Delta:摄取、规范化与增量边界;
- Debezium Outbox Event Router、SQLite foreign keys 与 FTS5:投影、引用完整性与检索教学边界;
- JSON Schema 2020-12、Label Studio 导入、Label Studio 导出、NIST SP 800-226、NIST SP 800-188 与 NIST AI 600-1:数据、合成与风险边界;
- C2PA 2.4、W3C WebVTT、Tesseract 文档 与 PaddleOCR 文档:多模态/OCR 证据与实现边界;
- W3C SSML 1.1、PLS 1.0、W3C WebRTC、Media Capture and Streams 与 RFC 6455:语音标记、媒体与传输职责。
验证证据
| 检查 | 本阶段结果 |
|---|---|
| 文档解析 / 知识库构建 | 27 / 41 项;normal 与 -O、均在 -B -W error 通过 |
| 数据清洗 / 数据标注 / 数据合成 | 10 / 10 / 43 项;normal 与 -O、均在 -B -W error 通过 |
| 多模态 AI / OCR | 58 / 74 项;normal 与 -O、均在 -B -W error 通过 |
| 语音识别 / 语音合成 / 实时多模态交互 | 63 / 63 / 25 项;normal 与 -O、均在 -B -W error 通过 |
| 统一专项回归 | 上述 10 组共 414 项/模式,warnings-as-errors 通过,未生成本轮 .pyc |
| 最终网站单元测试 | .website npm test:47/47 通过 |
| 最终公开构建 | 913 个源 Markdown、573 个全文、340 个 fail-closed stub、229 个资源;916 个 staged Markdown、2462 个 HTML 页面、2815 个 public files;broken local links、敏感泄露、表格 wikilink、交互 checkbox 与 KaTeX 错误均为 0 |
两份 docs/文档解析/examples/__pycache__/inspect_documents.cpython-311*.pyc 经只读核验早于本轮、未跟踪且被忽略;本轮 -B 运行未更新它们,故按保留既有本机状态原则未删除。
后续队列
- 用受控恶意样本、真实解析器/OCR、对象级身份、连接器撤权、消息总线和搜索引擎完成集成与压力验证;不能把当前教学 SQLite 投影升级为生产删除证明。
- 继续逐页复核本阶段数据课程中尚未触及、仍保留早期
source_checked的内容;按页面证据更新,不批量改日期。 - 为真实语音/多模态上线补设备、网络、媒体、供应商保留政策、受限 smoke test 与人工复核流程;离线事件模拟器不验证 codec、echo、NAT 或真实副作用 receipt。
- 在 Obsidian 桌面端抽查本阶段新增 Mermaid、长表格、callout 和移动端阅读体验;Quartz 构建不替代本地阅读视图验证。
本记录只覆盖第十九阶段,不表示长期 /goal 已完成。