OpenAI
Denne siden ble maskinoversatt. Se den opprinnelige engelske artikkelen.

Funksjonskall i OpenAI API

Hva er funksjonskall, og hvordan fungerer det i OpenAI API?

Oppdatert: 15 days ago

Fra og med 11. mars 2025 har vi lansert byggesteinene i vår nye agent-plattform. For detaljer, se API-dokumentasjonen vår for Responses API, verktøy inkludert Web Search, File Search og Computer Use, og Agents SDK med Tracing.

Funksjonskall lar deg koble OpenAI-modeller til eksterne verktøy og systemer. Dette er nyttig for mange ting, for eksempel å gi AI-assistenter flere egenskaper eller bygge dype integrasjoner mellom applikasjonene dine og LLM-er.

Finn ut mer i vår utviklerveiledning for funksjonskall.

I juni 2024 lanserte vi strukturerte utdata. Når du slår det på ved å sette strict: true i funksjonsdefinisjonen din, garanterer strukturerte utdata at argumentene som modellen genererer for et funksjonskall, samsvarer nøyaktig med JSON-skjemaet du oppga i funksjonsdefinisjonen.

I oktober 2024 lanserte vi funksjonen «Generer hva som helst», som lar utviklere beskrive en funksjon, lime den inn direkte eller lime inn koden din og generere et gyldig funksjonsskjema. Finn ut mer om «Generer hva som helst» i denne hjelpesenterartikkelen

Hvordan kan jeg bruke funksjonskall?

Funksjonskall er nyttig for et stort antall bruksområder, for eksempel:

  • Gjøre det mulig for assistenter å hente data:

  • Gjøre det mulig for assistenter å utføre handlinger:

  • Gjøre det mulig for assistenter å utføre beregninger:

  • Bygge rike arbeidsflyter:

  • en datauttrekkspipeline som henter råtekst, deretter konverterer den til strukturerte data og lagrer den i en database.

Funksjonskall støttes i Responses API, som samler funksjoner som tidligere var delt mellom Chat Completions API (API for samtalesvar) og Assistants API.

Hvordan kan jeg bruke JSON-modus?

Når JSON-modus er slått på, sikres det at modellens utdata er gyldig JSON, bortsett fra i noen grensetilfeller som du bør oppdage og håndtere på riktig måte.

For å be om JSON-modus med Chat Completions API (API for samtalesvar), sett response_format til { "type": "json_object" } på støttede modeller. Med Responses API setter du text.format til { "type": "json_object" }, for eksempel text: { "format": { "type": "json_object" } }, der det er aktuelt. I begge API-ene fungerer JSON-modus bare når forutsetningene for modell/melding/verktøy er oppfylt (for eksempel at modellen støtter json_object, at samtalen inneholder instruksjoner om å produsere JSON, og at eventuelle verktøybegrensninger er kompatible). Minst én forespørselsmelding eller inndatamelding i den effektive inndatakonteksten må inneholde json i en form som ikke skiller mellom store og små bokstaver, for eksempel JSON, json eller Json; ellers returnerer API-et en feil. I Responses oppfyller ikke instruksjonsfeltet på øverste nivå alene denne valideringen. Når funksjonskall brukes på kompatible modeller/baner, brukes JSON-begrensninger automatisk på argumenter for funksjonskall; inkompatible modeller eller kombinasjoner av verktøy og svarformat kan bli avvist eller kanskje ikke bruke JSON-begrenset sampling.

Viktige merknader:

  • Når du bruker JSON-modus, må du alltid instruere modellen om å produsere JSON via en melding i samtalen, for eksempel via systemmeldingen din. Hvis du ikke inkluderer en eksplisitt instruksjon om å generere JSON, kan modellen generere en endeløs strøm av blanktegn, og forespørselen kan fortsette å kjøre til den når tokengrensen. For å bidra til at du ikke glemmer det, avviser JSON-modus forespørsler med mindre de relevante inndatameldingene eller instruksjonene inneholder ordet json i en eller annen form, uten å skille mellom store og små bokstaver.

  • JSON-modus garanterer ikke at utdataene samsvarer med et bestemt skjema, bare at de er gyldige og kan parses uten feil. Du bør bruke strukturerte utdata for å sikre at de samsvarer med skjemaet ditt, eller hvis det ikke er mulig, bør du bruke et valideringsbibliotek og eventuelt nye forsøk for å sikre at utdataene samsvarer med ønsket skjema.

  • Applikasjonen din må oppdage og håndtere grensetilfellene som kan føre til at modellens utdata ikke er et komplett JSON-objekt (se nedenfor)

Var denne artikkelen nyttig?