概述
结构化输出功能允许您定义 JSON Schema,并通过 response_format 约束模型输出格式。网关会将相关参数直接透传给上游,是否支持取决于目标模型、上游协议实现和实际请求组合。
⚠️ 使用建议
开始接入前,请先用 /v1/models 获取当前可用模型,并结合目标上游文档确认该模型是否支持 json_object 或 json_schema。如果上游不支持,接口会直接返回上游错误。
请求示例
Python
from openai import OpenAI
from pydantic import BaseModel, Field
client = OpenAI(
base_url="https://api.vip.lingapi.ai/v1",
api_key="sk-xxxxxxxx"
)
# 定义输出结构
class UserInfo(BaseModel):
name: str = Field(description="用户姓名")
age: int = Field(description="用户年龄")
email: str = Field(description="用户邮箱")
interests: list[str] = Field(description="兴趣爱好列表")
response = client.chat.completions.create(
model="<请替换为实际可用的模型 ID>",
messages=[
{"role": "system", "content": "请从对话中提取用户信息。"},
{"role": "user", "content": "你好,我叫张三,今年 28 岁,邮箱是 zhangsan@example.com,喜欢读书和旅游。"}
],
response_format={"type": "json_schema", "json_schema": UserInfo.model_json_schema()}
)
print(response.choices[0].message.content)
返回示例
JSON
{
"name": "张三",
"age": 28,
"email": "zhangsan@example.com",
"interests": ["读书", "旅游"]
}
应用场景
- 信息提取:从文本中提取结构化字段
- 数据格式化:将非结构化内容转成标准 JSON
- 接口编排:为下游系统生成稳定字段
- 规则校验:在模型侧提前约束输出范围
💡 提示
如果您不确定当前模型是否支持严格 Schema,可先从 json_object 模式开始联调,再按上游返回逐步收紧到 json_schema。