OpenAI
Denne side er maskinoversat. Se den originale engelske artikel.

Funktionskald i OpenAI API

Hvad er funktionskald, og hvordan fungerer det i OpenAI API?

Opdateret: 27 days ago

Pr. 11. marts 2025 har vi udgivet byggestenene til vores nye agentplatform. Du kan finde flere oplysninger i vores API-dokumentation for Responses API, værktøjer, herunder Web Search, File Search og Computer Use, samt vores Agents SDK med Tracing.

Funktionskald giver dig mulighed for at forbinde OpenAI-modeller med eksterne værktøjer og systemer. Dette er nyttigt til mange ting, såsom at give AI-assistenter flere funktioner eller bygge dybe integrationer mellem dine applikationer og LLM'er.

Få mere at vide i vores udviklervejledning til funktionskald.

I juni 2024 lancerede vi Strukturerede outputs. Når du slår det til ved at indstille strict: true i din funktionsdefinition, garanterer Strukturerede outputs, at de argumenter, som modellen genererer til et funktionskald, matcher præcist det JSON-skema, du angav i funktionsdefinitionen.

I oktober 2024 lancerede vi funktionen ”Generér hvad som helst”, som giver udviklere mulighed for at beskrive en funktion, indsætte den direkte eller indsætte din kode og generere et gyldigt funktionsskema. Få mere at vide om ”Generér hvad som helst” i hjælpecenterartiklen her

Hvordan kan jeg bruge funktionskald?

Funktionskald er nyttige til en lang række use cases, såsom:

  • Gøre det muligt for assistenter at hente data:

  • Gøre det muligt for assistenter at udføre handlinger:

  • Gøre det muligt for assistenter at udføre beregninger:

  • Opbygning af avancerede workflows:

  • en pipeline til dataudtrækning, der henter rå tekst, derefter konverterer den til strukturerede data og gemmer den i en database.

Funktionskald understøttes i Responses API, som samler funktioner, der tidligere var delt mellem Chat Completions API og Assistants API.

Hvordan kan jeg bruge JSON-tilstand?

Når JSON-tilstand er slået til, sikres det, at modellens output er gyldig JSON, undtagen i visse grænsetilfælde, som du bør registrere og håndtere korrekt.

For at anmode om JSON-tilstand med Chat Completions API skal du indstille response_format til { "type": "json_object" } på understøttede modeller. Med Responses API skal du indstille text.format til { "type": "json_object" }, for eksempel text: { "format": { "type": "json_object" } }, hvor det er relevant. I begge API'er fungerer JSON-tilstand kun, når forudsætningerne for model/besked/værktøj er opfyldt (for eksempel at modellen understøtter json_object, at samtalen indeholder instruktioner om at producere JSON, og at eventuelle værktøjsbegrænsninger er kompatible). Mindst én anmodningsbesked eller inputbesked i den effektive inputkontekst skal indeholde json i en form, der ikke skelner mellem store og små bogstaver, såsom JSON, json eller Json; ellers returnerer API'en en fejl. I Responses opfylder feltet med instruktioner på øverste niveau ikke alene denne validering. Når funktionskald bruges på kompatible modeller/stier, anvendes JSON-begrænsninger automatisk på argumenter til funktionskald; inkompatible modeller eller kombinationer af værktøj/svarformat kan blive afvist eller bruger muligvis ikke JSON-begrænset sampling.

Vigtige bemærkninger:

  • Når du bruger JSON-tilstand, skal du altid instruere modellen i at producere JSON via en besked i samtalen, for eksempel via din systembesked. Hvis du ikke medtager en eksplicit instruktion om at generere JSON, kan modellen generere en uendelig strøm af blanktegn, og anmodningen kan fortsætte, indtil den når token-grænsen. For at hjælpe med at sikre, at du ikke glemmer det, afviser JSON-tilstand anmodninger, medmindre de relevante inputbeskeder eller instruktioner indeholder ordet json i en eller anden form, uden skelnen mellem store og små bogstaver.

  • JSON-tilstand garanterer ikke, at outputtet matcher et bestemt skema, kun at det er gyldigt og kan parses uden fejl. Du bør bruge Strukturerede outputs for at sikre, at det matcher dit skema, eller hvis det ikke er muligt, bør du bruge et valideringsbibliotek og eventuelt gentagne forsøg for at sikre, at outputtet matcher dit ønskede skema.

  • Din applikation skal registrere og håndtere de grænsetilfælde, der kan føre til, at modellens output ikke er et komplet JSON-objekt (se nedenfor)

Var denne artikel nyttig?