3.4 输出格式的定义与约束

输出格式的明确定义是提示词工程的重要环节。清晰的格式约束不仅使输出更易于使用和解析,还能提高输出的一致性和可预测性。本节将介绍如何有效地定义和约束模型的输出格式。

3.4.1 为什么输出格式很重要

提高可用性

结构化的输出可以直接用于后续处理:

非结构化输出:
这款产品评价不错,用户普遍反馈质量好,价格合理,
物流快速,但也有少数人提到包装简陋。

结构化输出:
{
  "overall_rating": 4.2,
  "positive_aspects": ["质量好", "价格合理", "物流快速"],
  "negative_aspects": ["包装简陋"],
  "recommendation": true
}

确保一致性

格式约束使多次调用产生一致的输出结构,便于批量处理和比较。

便于集成

API 调用场景中,结构化输出可以被程序直接解析和使用。

3.4.2 常见输出格式类型

1. JSON 格式

最常用的结构化输出格式,便于程序解析。

使用技巧

  • 提供完整的 JSON 模板示例

  • 明确每个字段的含义和取值范围

  • 说明是否允许空值或可选字段

2. Markdown 格式

适合生成文档、报告等需要阅读的内容。

3. 表格格式

适合对比和罗列信息。

使用 Markdown 表格或 CSV 格式都可以:

4. 列表格式

适合罗列要点、步骤等。

5. XML 格式

适合层级结构复杂的数据。

3.4.3 格式约束的设计方法

明确结构模板

提供具体的模板,而非抽象的描述:

指定长度限制

对各部分的长度设置明确的约束:

定义取值范围

对于特定字段,明确允许的取值:

3.4.4 高级格式控制技巧

预填充技术

通过预填充回复的开头来强制输出格式(特别适用于 Claude):

通过预填充 JSON 开头,引导模型继续以 JSON 格式输出。

格式验证提示

要求模型输出后进行自我验证:

结构化思维与输出分离

区分思考过程和最终输出:

3.4.5 特殊格式需求

代码输出

指定编程语言和代码块格式:

多部分输出

当需要多个输出部分时,清晰分隔:

条件格式

根据不同情况使用不同格式:

3.4.6 格式一致性保障与检查清单

使用示例强化

提供完整的输出示例:

格式检查清单

在提示词末尾添加检查提醒:

3.4.7 常见问题处理

问题 1:输出包含多余内容

问题 2:格式不完全符合要求

问题 3:嵌套结构错误

想一想

  1. JSON 和 Markdown 是两种常见的输出格式。在什么场景下你会选择一种而非另一种?

  2. 如果你要求模型输出严格格式(如 JSON Schema),但模型偶尔不遵守,你有哪些应对手段?

最后更新于