离线多模态证据路由项目

项目目标

在不读取、上传或生成真实媒体的前提下,根据合成资产清单制定处理计划。项目验证 MIME 一致性、格式/大小限制、必需模态、合成成本预算、隐私动作和时空证据类型。

文件

清单中的哈希、文件名和尺寸都是教学数据,不对应真实人物或媒体。

路由语义

脚本把 detected_mime 映射为 image、audio、video、document 或 text,选择处理器与证据定位:

模态处理器示例证据定位
imageimage_decoder、ocrimage_region
audioaudio_decoder、asraudio_interval
videovideo_probe、scene_samplervideo_interval、frame_region
documentdocument_parser、layout_extractorpage_region
texttext_parsertext_span

合成 cost_units 只用于练习预算,不是任何供应商价格或 token 公式。

运行

在 PowerShell 7 中进入本目录并执行:

python -B .\examples\multimodal_router.py .\examples\media_manifest.json
python -B -m unittest discover -s .\examples -p 'test_*.py' -v
python -B -O -m unittest discover -s .\examples -p 'test_*.py'
python -B -W error -m unittest discover -s .\examples -p 'test_*.py'

可把报告写到系统临时目录:

python -B .\examples\multimodal_router.py .\examples\media_manifest.json --output "$env:TEMP\multimodal-plan.json"

脚本没有网络调用,不会打开清单中虚构的 file_name,也不会在知识库生成媒体或报告。

ready 返回退出码 0;策略阻断返回 1;清单契约或报告写入错误返回 2。58 项测试覆盖严格 JSON、字段合同、格式/元数据、模态路由、成本、隐私动作、输出文件和 CLI。

读懂报告

  • status=ready:格式、必需模态和预算通过;
  • status=blocked:errors 列出原因,不应继续模型调用;
  • assets:每项的 modality、processors、evidence_kinds、privacy_action 和 cost_units;
  • privacy_action=local_only:不允许外部处理;
  • total_cost_units:必须不超过 policy.budget_units。

分类信任边界

夹具中的 privacy 是已经由策略层确认的合成教学输入,脚本不会读取真实媒体,也不会证明它的分类正确。生产系统必须先由认证后的 asset/tenant/授权记录在服务端解析分类与允许处理位置;不能让上传者用 manifest 中的 privacy: public 取得外发权限。

改造练习

  1. 把视频 privacy 改为 restricted,观察 local_only。
  2. 删除音频资产,确认 missing_required_modality。
  3. 让 declared_mime 与 detected_mime 不一致,确认拒绝。
  4. 降低 budget_units,确认预算阻断。
  5. 新增 image/svg+xml,先决定解析安全策略,再修改 allowlist;不要仅因扩展名通过。
  6. 为 evidence_kinds 加入 transform_chain 和原始坐标映射。

掌握检查

  • 我能区分媒体清单验证、预处理路由和模型推理。
  • 我不会把 declared_mime 当可信格式。
  • 我能解释每种模态需要的空间/时间证据。
  • 我能在预算不足时缩小范围,而不是静默降低质量。
  • 我能说明 restricted 与 personal 的不同处理策略。
  • 我知道真实接入还要加入安全解码、哈希、授权、供应商限制和实际模型评测。

自测题

  1. 为什么项目不需要实际图片也能验证部分工程逻辑?
  2. 为什么成本估算不能写死为供应商 token 数?
  3. 若必需视频缺失,但有视频转写文本,应自动视为视频存在吗?
  4. MIME 合法是否意味着文件内容安全?

局限

项目不验证媒体解码、OCR/ASR 质量、真实模型能力、时间同步或坐标反变换。它只验证调用之前的合同与策略层;detected_mime 也是合成的、已由外部可信解析器提供的输入。真实上线必须另做受限解析、可信分类/授权求值、证据回链和端到端评测。

参考与下一步

回到 多模态 AI 目录,再选择 OCR、语音识别或生成方向深入。