메인 콘텐츠로 건너뛰기
구조화 출력은 JSON 모드와 유사하지만, 모델의 응답이 지정한 스키마를 반드시 따르도록 보장한다는 추가적인 장점이 있습니다. 가능하다면 JSON 모드 대신 구조화 출력을 사용할 것을 권장합니다. 구조화 출력을 활성화하려면 요청에서 response_format 타입으로 json_schema를 지정하세요:
import json
import openai

client = openai.OpenAI(
    base_url='https://api.inference.wandb.ai/v1',
    api_key="<your-api-key>",  # https://wandb.ai/settings에서 API 키를 생성하세요
)

response = client.chat.completions.create(
    model="openai/gpt-oss-20b",
    messages=[
        {"role": "system", "content": "Extract the event information."},
        {"role": "user", "content": "Alice and Bob are going to a science fair on Friday."},
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "CalendarEventResponse",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "date": {"type": "string"},
                    "participants": {"type": "array", "items": {"type": "string"}},
                },
                "required": ["name", "date", "participants"],
                "additionalProperties": False,
            },
        },
    },
)

content = response.choices[0].message.content
parsed = json.loads(content)
print(parsed)