OpenAI
Deze pagina is automatisch vertaald. Bekijk het oorspronkelijke Engelstalige artikel.

Functies aanroepen in de OpenAI API

Wat is functies aanroepen en hoe werkt het in de OpenAI API?

Bijgewerkt: 4 days ago

Per 11 maart 2025 hebben we de bouwstenen van ons nieuwe Agents-platform uitgebracht. Zie voor meer informatie onze API-docs voor onze Responses API, Tools waaronder Web Search, File Search en Computer Use, en onze Agents SDK met Tracing.

Functies aanroepen maakt het mogelijk om modellen van OpenAI te koppelen aan externe tools en systemen. Dit is voor veel toepassingen nuttig, bijvoorbeeld om AI-assistenten extra mogelijkheden te geven of diepgaande integraties tussen je applicaties en LLM's te bouwen.

Lees meer in onze ontwikkelaarshandleiding voor functies aanroepen.

In juni 2024 hebben we gestructureerde output geïntroduceerd. Bij ondersteunde modellen en aanvraagconfiguraties zorgt de instelling strict: true in je functiedefinitie ervoor dat de gegenereerde argumenten voldoen aan het opgegeven schema wanneer het model een functieaanroep uitvoert, mits het schema de ondersteunde subset van JSON Schema gebruikt en aan de vereisten voor de strikte modus voldoet. Aanvragen met niet-ondersteunde of niet-conforme schema's worden met een foutmelding afgewezen.

In oktober 2024 introduceerden we de functie "Alles genereren", waarmee ontwikkelaars een functie kunnen beschrijven en deze rechtstreeks kunnen plakken, of hun code kunnen plakken om een geldig functieschema te genereren. Lees meer over "Alles genereren" in dit artikel in het Helpcentrum

Hoe kan ik functies aanroepen gebruiken?

Functies aanroepen is nuttig voor een groot aantal use-cases, zoals:

  • Assistenten gegevens laten ophalen:

  • Assistenten acties laten uitvoeren:

  • Assistenten berekeningen laten uitvoeren:

  • Rijke workflows bouwen:

  • een pijplijn voor gegevensextractie die ruwe tekst ophaalt, deze vervolgens omzet in gestructureerde gegevens en opslaat in een database.

Functies aanroepen wordt ondersteund in de Responses-API, die mogelijkheden samenbrengt die eerder waren verdeeld over de Chat Completions-API en de Assistants-API.

Hoe kan ik de JSON-modus gebruiken?

Wanneer de JSON-modus is ingeschakeld, is gegarandeerd dat de output van het model geldige JSON is, behalve in enkele randgevallen die je moet detecteren en correct afhandelen.

Als je de JSON-modus wilt aanvragen met de Chat Completions-API, stel je response_format in op { "type": "json_object" } voor ondersteunde modellen. Met de Responses-API stel je text.format in op { "type": "json_object" }, bijvoorbeeld text: { "format": { "type": "json_object" } }, waar van toepassing. In beide API's werkt de JSON-modus alleen wanneer aan de vereisten voor model/bericht/tool is voldaan (bijvoorbeeld: het model ondersteunt json_object, het gesprek bevat instructies om JSON te produceren en eventuele toolbeperkingen zijn compatibel). Ten minste één aanvraagbericht of invoerbericht in de effectieve invoercontext moet json bevatten in een hoofdletterongevoelige vorm, zoals JSON, json of Json; anders retourneert de API een fout. In Responses voldoet alleen het instructieveld op het hoogste niveau niet aan deze validatie. Wanneer functies aanroepen wordt gebruikt op compatibele modellen/paden, worden JSON-beperkingen automatisch toegepast op argumenten voor functieaanroepen; incompatibele modellen of combinaties van tool-/responsindelingen kunnen worden geweigerd of gebruiken mogelijk geen JSON-beperkte sampling.

Belangrijke opmerkingen:

  • Wanneer je de JSON-modus gebruikt, moet je het model altijd instrueren om JSON te produceren via een bericht in het gesprek, bijvoorbeeld via je systeembericht. Als je geen expliciete instructie opneemt om JSON te genereren, kan het model een eindeloze stroom witruimte genereren en kan de aanvraag blijven doorlopen totdat de tokenlimiet is bereikt. Om te helpen voorkomen dat je dit vergeet, weigert de JSON-modus aanvragen tenzij de relevante invoerberichten of instructies het woord json in een bepaalde vorm bevatten, ongeacht hoofdletters.

  • De JSON-modus garandeert niet dat de output overeenkomt met een specifiek schema, alleen dat deze geldig is en zonder fouten kan worden geparsed. Gebruik gestructureerde output om ervoor te zorgen dat deze overeenkomt met je schema, of, als dat niet mogelijk is, gebruik een validatiebibliotheek en eventueel nieuwe pogingen om te zorgen dat de output overeenkomt met je gewenste schema.

  • Je toepassing moet de randgevallen detecteren en afhandelen die ertoe kunnen leiden dat de modeloutput geen volledig JSON-object is (zie hieronder)

Was dit artikel nuttig?