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.
Met functies aanroepen kun je OpenAI-modellen verbinden met externe tools en systemen. Dit is nuttig voor veel dingen, zoals AI-assistenten meer mogelijkheden geven of diepgaande integraties bouwen tussen je toepassingen en LLM's.
Lees meer in onze ontwikkelaarsgids voor functies aanroepen.
In juni 2024 hebben we gestructureerde output gelanceerd. Wanneer je dit inschakelt door strict: true in te stellen in je functiedefinitie, garandeert gestructureerde output dat de argumenten die het model genereert voor een functieaanroep exact overeenkomen met het JSON-schema dat je in de functiedefinitie hebt opgegeven.
In oktober 2024 hebben we de functie ‘Alles genereren’ gelanceerd, waarmee ontwikkelaars een functie kunnen beschrijven, deze rechtstreeks kunnen plakken of je code kunnen plakken en een geldig functieschema kunnen genereren. Lees meer over ‘Alles genereren’ in dit Helpcentrum-artikel
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
jsonin 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)
