openai

结构化输出

有两种定义数据结构的方式,一种是用类定义(Pydantic),一种是用使用 JSON Schema 字典(tool use时接触的)

方式一:使用 Pydantic BaseModel

Pydantic 是一个数据验证库,通过继承 BaseModel 来定义数据结构:

from pydantic import BaseModel
from typing import List

class QAPair(BaseModel):
    question: str
    answer: str

# 使用示例
response_format = QAPair

优点:

  • 提供完整的数据验证功能
  • 自动类型转换,支持嵌套结构
  • 与 OpenAI API 完全兼容,官方给出的最佳实践

方式二:直接使用 JSON Schema 字典

这种方式直接定义 JSON Schema:

schema = {
    "type": "object",
    "properties": {
        "question": {"type": "string"},
        "answer": {"type": "string"}
    },
    "required": ["question", "answer"],
    "additionalProperties": false
}

# 使用示例
response_format = {"type": "json_schema", "schema": schema}

优点:

  • 直接使用 JSON Schema 规范
  • 灵活的结构定义,直白的添加更多验证规则
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容