Vi använder cookies. Cookies och webbläsarlagring håller dig inloggad och kommer ihåg dina preferenser. Med ditt tillstånd mäter vi också hur webbplatsen används. Du kan när som helst. Läs vår cookiepolicy.

Strukturerade utdata

Endpoints

Strukturerade utdata

Tvinga fram giltig JSON som matchar ett JSON Schema med response_format, med parametrar, exempel, svar och information om modellstöd.

Testa i playground

Strukturerade utdata får en modell att returnera JSON som matchar ett JSON Schema som du anger. Använd dem för extrahering, klassificering och alla svar som din kod tolkar. Ange response_format på Chat completions (eller text.format på Responses).

Anropsparametrar

ParameterTypBeskrivning
response_format.typestring"json_schema" för schemabegränsad utdata. "json_object" för fritt JSON-läge.
response_format.json_schema.namestringEtt namn för schemat.
response_format.json_schema.strictbooleantrue tillämpar schemat exakt där leverantören stöder det.
response_format.json_schema.schemaobjectEtt JSON Schema. Med strict, använd additionalProperties: false och lista varje egenskap i required.
{
  "model": "openai/gpt-5-mini",
  "messages": [{ "role": "user", "content": "Extract: Ada Lovelace, born 1815 in London." }],
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "person",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "born": { "type": "integer" },
          "city": { "type": "string" }
        },
        "required": ["name", "born", "city"],
        "additionalProperties": false
      }
    }
  }
}
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": "Extract the city and country from: \"I live in Lisbon, Portugal.\""
    }
  ],
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "place",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          }
        },
        "required": [
          "city",
          "country"
        ],
        "additionalProperties": false
      }
    }
  }
});
console.log(JSON.parse(result.choices[0].message.content));

Svar

JSON:en kommer som en sträng i message.content:

{
  "id": "gen-1760000000-json1",
  "model": "openai/gpt-5-mini",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": { "role": "assistant", "content": "{\"name\":\"Ada Lovelace\",\"born\":1815,\"city\":\"London\"}" }
    }
  ],
  "usage": { "prompt_tokens": 71, "completion_tokens": 18, "total_tokens": 89, "cost": 0.0000538 }
}

SDK:ernas hjälpfunktioner fungerar som vanligt, till exempel client.chat.completions.parse(...) med Zod i Node eller Pydantic i Python.

Modellstöd

  • För att hitta modeller som stöder det, kontrollera supported_parameters i Modeller efter structured_outputs eller response_format.
  • För att säkerställa att anropet bara går till leverantörer som följer schemat, lägg till provider: { "require_parameters": true }.
  • Modeller utan inbyggt stöd kan ändå producera JSON om du ber om det i prompten, men utdatan är inte garanterad. Validera den alltid.
  • Om finish_reason är "length" är JSON:en avkortad. Höj max_tokens.

Fel

Ett ogiltigt schema ger vanligtvis ett uppströms 400 med leverantörens meddelande. Övriga fel är desamma som för Chat completions. Se Fel.