【GPT入门】第13课 输出结果以JSON格式输出
1.定义输出格式为JSON
OPENAI 输出结果,用JSON格式输出, 特点:只需要定义输出结构体,数据会由OPENAI自动赋值
2.代码
from pydantic import BaseModel
from openai import OpenAI
import json
client = OpenAI()
def print_json(data):
"""
打印参数。如果参数是有结构的(如字典或列表),则以格式化的 JSON 形式打印;
否则,直接打印该值。
"""
if hasattr(data, 'model_dump_json'):
data = json.loads(data.model_dump_json())
if (isinstance(data, (list))):
for item in data:
print_json(item)
elif (isinstance(data, (dict))):
print(json.dumps(
data,
indent=4,
ensure_ascii=False
))
else:
print(data)
class CalendarEvent(BaseModel):
name: str
date: str
address: str
participants: list[str]
completion = client.beta.chat.completions.parse( # 使用 beta 接口
model="gpt-4o-mini-2024-07-18", # 必须是版本大于 gpt-4o-mini-2024-07-18 或 gpt-4o-2024-08-06 的模型
messages=[
{"role": "system", "content": "解析出事件信息。"},
{"role": "user", "content": "3月10日:人代会审议全国人大常委会工作报告等,全国政协十四届三次会议闭幕。"},
],
response_format=CalendarEvent,
)
event = completion.choices[0].message.parsed
print_json(event)
{
“name”: “人代会审议全国人大常委会工作报告等”,
“date”: “2024-03-10”,
“address”: “”,
“participants”: [
“全国人大常委会”,
“全国政协十四届”
]
}