POST
Chat(结构化输出)
POST /v1/chat/completions — JSON 结构化输出
Chat(结构化输出)
强制模型按照指定 JSON 格式输出,适合需要解析返回数据的场景。
接口信息
| HTTP 方法 | POST |
| 接口路径 | /v1/chat/completions |
| 认证 | Bearer Token |
方法一:response_format JSON 模式
{
"model": "gpt-4o",
"response_format": { "type": "json_object" },
"messages": [
{
"role": "system",
"content": "你是一个助手,必须以 JSON 格式回答。"
},
{
"role": "user",
"content": "提取以下文本中的姓名和年龄:张三今年25岁,是一名工程师。"
}
]
}
方法二:JSON Schema(推荐)
使用 response_format.json_schema 精确定义输出结构:
from openai import OpenAI
from pydantic import BaseModel
client = OpenAI(
base_url="https://api000.com/v1",
api_key="sk-xxxxxxxxxxxxxxxx"
)
class Person(BaseModel):
name: str
age: int
occupation: str
response = client.beta.chat.completions.parse(
model="gpt-4o",
messages=[
{"role": "user", "content": "提取:张三今年25岁,是一名工程师。"}
],
response_format=Person,
)
person = response.choices[0].message.parsed
print(person.name, person.age) # 张三 25
注意事项
重要: 使用 JSON 模式时,必须在 system 或 user 消息中明确要求输出 JSON,否则模型可能会生成无休止的空白流。