OpenAI
Den här sidan har maskinöversatts. Visa den ursprungliga engelska artikeln.

Funktionsanrop i OpenAI API

Vad är funktionsanrop och hur fungerar det i OpenAI API?

Uppdaterades: 27 days ago

Från och med den 11 mars 2025 har vi släppt byggstenarna i vår nya plattform för Agenter. Mer information finns i vår API-dokumentation för Responses API, verktyg inklusive Web Search, File Search och Computer Use, samt vår Agents SDK med Tracing.

Funktionsanrop gör det möjligt att ansluta OpenAI-modeller till externa verktyg och system. Detta är användbart för många saker, till exempel att ge AI-assistenter nya förmågor eller bygga djupa integrationer mellan dina applikationer och LLM:er.

Läs mer i vår utvecklarguide om funktionsanrop.

I juni 2024 lanserade vi Strukturerade utdata. När du aktiverar det genom att ange strict: true i din funktionsdefinition garanterar Strukturerade utdata att argumenten som modellen genererar för ett funktionsanrop exakt matchar det JSON-schema du angav i funktionsdefinitionen.

I oktober 2024 lanserade vi funktionen ”Generera vad som helst”, som gör det möjligt för utvecklare att beskriva en funktion, klistra in den direkt eller klistra in sin kod och generera ett giltigt funktionsschema. Läs mer om ”Generera vad som helst” i den här artikeln i hjälpcentret

Hur kan jag använda funktionsanrop?

Funktionsanrop är användbara för ett stort antal användningsfall, till exempel:

  • Göra det möjligt för assistenter att hämta data:

  • Göra det möjligt för assistenter att vidta åtgärder:

  • Göra det möjligt för assistenter att utföra beräkningar:

  • Bygga omfattande arbetsflöden:

  • en pipeline för dataextrahering som hämtar råtext, sedan omvandlar den till strukturerade data och sparar den i en databas.

Funktionsanrop stöds i Responses API, som förenar funktioner som tidigare var uppdelade mellan API för slutförda chattar och Assistants API.

Hur kan jag använda JSON-läge?

När JSON-läge är aktiverat säkerställs att modellens utdata är giltig JSON, förutom i vissa randfall som du bör upptäcka och hantera på lämpligt sätt.

För att begära JSON-läge med API för slutförda chattar anger du response_format till { "type": "json_object" } på modeller som stöds. Med Responses API anger du text.format till { "type": "json_object" }, till exempel text: { "format": { "type": "json_object" } }, där det är tillämpligt. I båda API:erna fungerar JSON-läge endast när förutsättningarna för modell/meddelande/verktyg är uppfyllda (till exempel att modellen stöder json_object, att konversationen innehåller instruktioner om att producera JSON och att eventuella verktygsbegränsningar är kompatibla). Minst ett begärandemeddelande eller indatameddelande i den faktiska indatakontexten måste innehålla json i en skiftlägesokänslig form, till exempel JSON, json eller Json; annars returnerar API:et ett fel. I Responses uppfyller fältet med instruktioner på toppnivå inte ensamt den här valideringen. När funktionsanrop används på kompatibla modeller/sökvägar tillämpas JSON-begränsningar automatiskt på funktionsanropsargument; inkompatibla modeller eller kombinationer av verktyg och svarsformat kan avvisas eller kanske inte använder JSON-begränsad sampling.

Viktiga anmärkningar:

  • När du använder JSON-läge måste du alltid instruera modellen att producera JSON via något meddelande i konversationen, till exempel via ditt systemmeddelande. Om du inte inkluderar en uttrycklig instruktion om att generera JSON kan modellen generera en oändlig ström av blanksteg och begäran kan fortsätta köras tills den når token-gränsen. För att säkerställa att du inte glömmer detta avvisar JSON-läge begäranden om inte de relevanta indatameddelandena eller instruktionerna innehåller ordet json i någon form, skiftlägesokänsligt.

  • JSON-läge garanterar inte att utdata matchar något specifikt schema, utan endast att den är giltig och kan parsas utan fel. Du bör använda Strukturerade utdata för att säkerställa att den matchar ditt schema, eller om det inte är möjligt bör du använda ett valideringsbibliotek och eventuellt nya försök för att säkerställa att utdata matchar ditt önskade schema.

  • Din applikation måste upptäcka och hantera de randfall som kan leda till att modellens utdata inte är ett komplett JSON-objekt (se nedan)

Var den här artikeln till hjälp?