Chuyển đến nội dung chính
Có hai đường:
  • response_format: {"type": "json_object"} — mô hình trả về JSON hợp lệ
  • response_format: {"type": "json_schema", "json_schema": {...}} — đầu ra của mô hình tuân theo schema của bạn

Ví dụ (json_schema, OpenAI)

resp = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Extract name and age."}],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "person",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "age": {"type": "integer"},
                },
                "required": ["name", "age"],
            },
        },
    },
)

Hỗ trợ giữa các nhà cung cấp

response_format được hỗ trợ ở bất cứ đâu mô hình upstream có thể đáp ứng. Với Gemini, lớp dịch của OrcaRouter ánh xạ nó tới responseMimeType + responseSchema. Với OpenAI / Grok / DeepSeek (tất cả các upstream tương thích OpenAI), trường này đi đến upstream theo định dạng bản địa. Anthropic không cung cấp tương đương cho response_format, vì vậy hãy dùng mẫu tool_use của Anthropic khi bạn cần đầu ra bị ràng buộc theo schema ở đó.
Nhà cung cấpjson_objectjson_schemaGhi chú
OpenAIĐịnh dạng trường bản địa của OpenAI
Grok (xAI)xAI tương thích OpenAI
DeepSeek⚠️Kiểm tra hỗ trợ theo từng mô hình của DeepSeek
GeminiĐược dịch sang responseMimeType + responseSchema
AnthropicDùng mẫu tool_use thay thế

Xem thêm