AI Prompt Engineering · 课时

多模态输出控制

塑造混合媒体响应。

第 4 / 4 课13 个步骤

多模态输出控制 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。

控制混合媒体输出

输出控制是一门塑造响应采用何种形式的学问,适用于答案同时包含文本、结构化数据,以及对生成或选定媒体的引用的情况。模型默认会输出散文式文本;而生产系统需要可解析、可渲染、可组合的产物。

  • 您指定的是渲染契约,而不只是提出一个问题。
  • 格式可靠性胜过格式丰富度——可预测的结构才是优胜者。

将内容与呈现分离

请让模型输出结构化内容,并由您在自己的系统中渲染媒体。要求文本模型输出原始图像字节或包含大量标记的布局很脆弱;要求它输出类型化描述,再由您的渲染器将描述转换为媒体,则更加稳健。

模型决定内容;您的流水线决定呈现方式。

block = {
  'type': 'figure',
  'caption': 'Quarterly revenue',
  'chart': {'kind': 'bar', 'x': ['Q1','Q2'], 'y': [10, 14]},
  'alt_text': 'Bar chart rising from 10 to 14.'
}

按区块类型划分的响应模式

请将丰富的响应建模为由类型化区块组成的有序列表:text、code、image_ref、table、chart_spec。每个区块只携带其类型所需的字段。您的渲染器遍历这个列表,并根据类型输出相应的组件。

聊天界面、报告和幻灯片生成器正是通过这种方式,才能在数千次响应中保持可靠。

schema = {
  'blocks': [
    {'type': 'text', 'value': '...'},
    {'type': 'code', 'lang': 'python', 'value': '...'},
    {'type': 'image_ref', 'id': 'fig1', 'alt': '...'},
    {'type': 'table', 'columns': [...], 'rows': [...]}
  ]
}

引用媒体与嵌入媒体

请优先使用引用,而不是嵌入。模型输出一个标识符或生成规格;您的系统再将其解析为实际资源。这样可以将语言处理步骤与媒体处理步骤解耦,并让您无需重新提示就能缓存、重新生成或替换资源。

  • 嵌入:响应将资源直接携带在其中(沉重且脆弱)。
  • 引用:响应携带指针或配方(轻量且可组合)。
image_block = {
  'type': 'image_ref',
  'spec': {'prompt': 'minimal line icon of a gear', 'size': '512x512'},
  'alt': 'Settings gear icon'
}
# Pipeline calls the image model with spec, fills in the URL.

约束生成规格

当模型要为下游生成器(图像、图表、TTS)编写规格时,请对该规格进行严格约束。开放式规格容易发生偏移;枚举选项则能保持品牌一致性并控制预算。

请为模型提供受控词汇表:允许使用的图表类型、图像风格和声音,并禁止自由发挥式的偏离。

chart_spec = {
  'kind': 'one of [bar, line, scatter]',   # enumerated
  'palette': 'brand_default',               # not a hex free-for-all
  'max_series': 4
}

强制性的无障碍字段

每个媒体区块都应包含替代文本或转录文本字段,并且您应在模式中将其设为必填。这既是无障碍要求,也是验证依据——替代文本揭示了模型打算让媒体传达什么内容,您可以将其与规格进行核对。

交错顺序与布局意图

区块的顺序就是布局。如果模型在解释图表的段落之前返回图表,渲染后的文档读起来就会不对。请明确布局意图:“解释性文本应先于其所描述的图示;图示之后必须紧跟一行总结。”

请编码规定阅读顺序的规则,使区块列表能够渲染成连贯的叙事。

每个区块的长度与密度预算

请在区块级别控制冗长程度,而不是进行全局控制。图注占一行;章节引言是一小段文字;表格最多包含 N 行。每个区块单独设置预算,可以防止模型让一个组件过度膨胀,同时使另一个组件无内容可用。

  • “图注:最多 12 个词。”
  • “表格:最多 8 行;将其余内容汇总为最后一行。”
limits = {'caption_words': 12, 'table_rows': 8, 'intro_sentences': 3}

验证与修复循环

混合媒体模式的质量取决于您的验证器。请解析区块列表,针对其类型模式对每个区块执行 validate;如果失败,请发出针对性的修复提示,并指出确切的违规之处。

修复胜过重新生成:重新请求整个响应会浪费令牌,还可能破坏原本正确的部分。

def validate(blocks):
    for b in blocks:
        if b['type'] == 'image_ref' and 'alt' not in b:
            return f'Block {b} missing required alt text'
    return None  # ok

流式传输混合媒体

进行流式传输时,各区块必须能够单独解析,这样用户界面就能在每个区块完成后立即渲染,而不必等待整个响应。请为每个区块输出一个格式正确的数据对象(按换行分隔),而不是输出一个巨大的数组;后者在最终右方括号出现之前都是无效的。

逐区块流式传输可以带来响应迅速的用户界面和更早的验证。

{'type': 'text', 'value': 'Revenue grew this quarter.'}
{'type': 'chart_spec', 'kind': 'bar', 'x': ['Q1','Q2'], 'y': [10,14], 'alt': '...'}
{'type': 'text', 'value': 'The bulk came from new accounts.'}

输出控制契约

完整的混合媒体契约应规定:类型化区块词汇表、优先使用引用而非嵌入、枚举式生成规格、必填的替代文本或转录文本、阅读顺序规则、每个区块的预算,以及适合流式传输的序列化方式。请将它封装为可复用的系统区块,这样您的渲染器就能在许多任务中面对稳定一致的目标。

快速检查

您正在构建一个报告生成器,其响应混合了段落、表格和图示,并由您自己的前端进行渲染。

回顾:塑造混合媒体响应

请将丰富输出视为渲染契约:使用类型化区块词汇表,将媒体表示为引用或受约束的生成规格而非嵌入,设置必填的替代文本或转录文本字段,明确阅读顺序和每个区块的预算,并采用带有验证与修复机制、适合流式传输的序列化方式。将模型决定的内容与您的流水线呈现内容的方式分离,混合媒体响应就会变得可预测、可审查且易于组合。

免费开始

用 AI 导师学习 AI Prompt Engineering — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
53
课程
199

常见问题解答

「多模态输出控制」课时是免费的吗?

是的 — 「多模态输出控制」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。

「多模态输出控制」这节课中我会学到什么?

塑造混合媒体响应。 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Prompt Engineering 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「多模态输出控制」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Prompt Engineering 课中编写并运行代码吗?

能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 结合文本与图像
  2. 跨模态建立依据
  3. 音频、文本与视觉协同
  4. 多模态输出控制
← 返回 AI Prompt Engineering