結構化輸出
有兩種定義數據結構的方式,一種是用類定義(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
優(yōu)點:
- 提供完整的數據驗證功能
- 自動類型轉換,支持嵌套結構
- 與 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}
優(yōu)點:
- 直接使用 JSON Schema 規(guī)范
- 靈活的結構定義,直白的添加更多驗證規(guī)則