首页/AI/提示词工程速查/输入结构化包装

输入结构化包装

把输入包成 JSON / YAML / 固定字段清单再交给模型,用字段名承载语义,减少自然语言描述的歧义与遗漏。

提示词工程速查AI更新于 2026-10-13

输入结构化是什么

输入结构化是把要交给模型的输入包成 JSON、YAML 或固定字段清单,用字段名承载语义。它解决的是自然语言描述的歧义:一段话里「上周三报的故障」到底是发生时间还是上报时间,只有字段名能说清。结构化输入还有两个工程好处:程序生成不容易拼错,缺字段时肉眼可见,不用通读整段文字找漏项。

要点

收益字段即语义;缺字段一眼可见;程序生成不易出错
配对输出输入怎么结构化,就要求输出按同构字段返回,便于对比校验
注意JSON 本身占 token,超长正文仍建议用分隔标签承载
命名字段名用英文小写下划线,值保留原文语言
缺失表示约定缺失字段是 null 还是省略,出脚本前先定好

典型使用场景

  • 工单处理:设备、现象、发生时间、上报时间分字段传入
  • 数据核对:两侧数据都以结构化形式传入,要求逐字段比对
  • 多来源汇总:不同来源映射到统一字段表后再交给模型
  • 批量生成:模板固定,字段值由程序填充,避免手写提示出错
  • 接口化调用:把模型调用包装成函数,入参即字段表

结构化输入示例

结构化输入示例
{
  "task": "extract",
  "lang": "zh",                        # 输入语言,便于约定输出语言
  "fields": ["设备名", "故障现象", "发生时间"],
  "source": "……原始工单文本……"
}
# 字段名承载语义;输出按同构字段返回,便于逐字段比对校验

两种承载方式对比

方式适合代价
JSON 字段字段少、需要程序拼装与校验的输入嵌套层级易读性差,占 token
标签包裹的正文超长文本、日志、代码块语义靠标签名,缺少类型约束
键值清单人工调试与临时排查程序生成与解析都要额外处理
混合方式元数据用字段、正文用标签需要约定哪些内容放哪一层
输入结构与输出结构保持一致是最省事的设计:字段一一对应,程序拿到输出可直接做差异比对,无需再写映射表。

易错点

  • 输入用中文键名、输出要求英文键名,两边对不上,程序解析需额外映射
  • 把超长正文塞进 JSON 字符串,转义与换行处理出错导致整个请求格式非法
  • 结构化输入里混用 null、空字符串与字段省略三种缺失写法,后续判断分支混乱
  • 为了结构化把大量无意义字段也传进去,噪声变多、token 上升、重点被稀释
  • 字段名含糊(time、type)导致同一字段在不同批次承载不同语义

数据来源与参考

  • The Prompt Report(Schulhoff et al., 2024):结构化输入与输出实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌