多模态提示与结构化输出
本节目标
把媒体、任务、证据范围和输出合同明确分开;让关键结论可定位、可拒答、可由代码验证。
提示的五个组成部分
- 任务:要比较、提取、定位还是判断。
- 媒体清单:asset_id、模态、顺序和用途。
- 证据规则:允许引用哪些页、区域或时间段。
- 决策规则:模态缺失/冲突、低置信和不可读时怎样处理。
- 输出 schema:字段、类型、枚举、长度和引用格式。
不要只说“看图回答”。例如:
任务:核对发票图像与订单文本是否一致。
输入:A1=发票图像,T1=订单 JSON。
只比较 invoice_number、total、currency。
每个差异必须引用 A1 的归一化区域框和 T1 的 JSON path。
若图像字段不可读,status=insufficient_evidence,不猜测。
仅返回符合给定 schema 的 JSON。输入顺序与角色
明确“哪个媒体是什么”,不要依赖上传顺序猜测。为每个资产分配稳定 ID,在问题中引用。若多个相似截图,要说明时间、页面和用途。
供应商对媒体摆放、文件方式和结构化输出支持不同。截至 2026-07-22,Google Gemini 官方文档仍建议复杂 JSON 使用 structured output;其 JSON Schema 支持是子集,属于供应商能力快照。系统仍需在本地验证 JSON Schema,不能把“模型支持结构化输出”理解为业务事实一定正确。
输出 schema 示例
{
"status": "supported | conflict | insufficient_evidence",
"claims": [
{
"field": "total",
"value": "100.00",
"evidence": [
{
"asset_id": "A1",
"source_revision": "sha256:record-at-runtime",
"kind": "image_region",
"box": [0.62, 0.71, 0.91, 0.79]
}
]
}
],
"warnings": []
}运行时要检查枚举、数组长度、坐标边界、资产是否存在、时间是否在范围内,以及 source revision 是否仍是当前可读版本。通过 schema 只证明格式正确,不证明 claim 正确。应分开记录:schema_valid(格式)、evidence_bound(指针能解析到允许资产)和 evidence-supported(引用实际支持结论;字段名可记为 evidence_supported);后两者不能由模型自己宣告为真。
提示中的空间与时间
- 图像:指定全图或区域,输出归一化框。
- 文档:指定页码、表格/段落和区域。
- 音频:要求 start_ms/end_ms 与说话人(若可靠)。
- 视频:分别引用画面区间与音频区间,说明是否需要同步证据。
“在视频中找出异常”应定义异常类型和时间精度;否则模型可能只给笼统描述。
模态缺失与冲突
显式要求:
- 缺少必需模态时返回 missing_modalities;
- 媒体损坏时返回 invalid_asset;
- 证据不足时返回 insufficient_evidence;
- 图像、字幕、音频冲突时分别列出,不静默合并;
- 不使用文件名、EXIF 或字幕作为唯一真实性证明。
媒体中的提示注入
图片文字、PDF 页面、字幕和音频转写都可能包含“忽略之前指令”等恶意内容。它们是待分析数据,不是系统指令。把可信指令与媒体内容分层;模型输出之后还需权限策略,不能让媒体中的文字触发工具。
这与 AI 安全的间接提示注入控制、Tool Calling 的服务端授权属于同一条边界:结构化 JSON 可以帮助解析,不能把媒体内容或模型字段变成执行权限。
多轮策略
先让系统定位候选片段,再对少量高分辨率证据做第二轮分析。每轮传递 asset_id、坐标/时间和来源,而不是只传上一轮摘要。若第二轮结果与第一轮冲突,保留两次证据和处理版本。
常见错误
- 要求过多任务:一次既转写、总结、情绪判断、合规审查,错误难定位。拆成可评测阶段。
- 自由文本承载坐标:改用数值 schema 和边界检查。
- 要求“自信一点”:应定义拒答条件和可验证证据。
- 相信 JSON 即可信:schema 验证后仍需事实与策略验证。
练习与自测
为“判断视频中演示步骤是否与手册一致”写提示和最小 schema。自测:如果字幕正确但画面步骤缺失,status 应是什么?媒体中的指令为何不能改变工具权限?
下一步
继续 多模态质量评测。
参考资料
- Google Gemini API:Structured outputs(访问于 2026-07-22;仅支持 JSON Schema 的子集,仍需应用侧验证)
- Google Gemini API:Prompt design strategies(访问于 2026-07-22)
- Google Gemini API:File input methods(访问于 2026-07-22)