更新时间:2026-04-22 GMT+08:00
分享

参考:Structured Outputs

什么是Structured Outputs

Structured Outputs是指在大模型请求中通过用户给定的指定格式信息(如json格式,sql格式),生成严格符合格式要求的相关文本。Guided Decoding相关特性可以支持用户给定格式的文本生成。

什么是Guided Decoding

Guided Decoding是一种用于生成文本的策略,通过提供额外的上下文或约束,来引导模型生成更符合预期的结果。

比如使用OpenAI启动服务,通过配置guided_json参数使用JSON Schema的架构来举例。

JSON Schema使用专门的关键字来描述数据结构,例如标题title、 类型type、属性properties,必须属性required 、定义definitions等,JSON Schema通过定义对象属性、类型、格式的方式来引导模型生成一个包含用户信息的JSON对象。

其优势主要如下:

  • 上下文引导:通过提供特定的格式规范模板,模型可以更好地理解每个字段生成内容的属性并过滤无关信息。
  • 约束生成:可以设定某些限制条件,如关键词、主题或风格,使生成的内容更加一致和相关。
  • 提高质量:通过引导,生成的文本通常严格符合用户指定格式要求,逻辑严密严谨性强。

实现原理

通过将用户给定的内容格式模板(json schema,CFG语言,正则表达式等)转换为FSM,对于输出tokens进行引导和过滤。通过FSM各状态之间的转移规则限定格式化输出中每个字段的内容,通过概率干预的方式排除不符合条件的tokens,从而规范化生成文本。

相关文档