OpenAI
Această pagină a fost tradusă automat. Vezi articolul original în limba engleză.

Apelarea funcțiilor în API-ul OpenAI

Ce este apelarea funcțiilor și cum funcționează în API-ul OpenAI?

Actualizat: 4 days ago

Începând cu 11 martie 2025, am lansat componentele de bază ale noii noastre platforme Agents. Pentru detalii, consultați documentația API pentru API-ul Responses, Tools, inclusiv Web Search, File Search și Computer Use, precum și Agents SDK cu Tracing.

Apelarea funcțiilor vă permite să conectați modelele OpenAI la instrumente și sisteme externe. Acest lucru este util pentru multe situații, cum ar fi oferirea de capabilități asistenților AI sau construirea unor integrări profunde între aplicațiile dvs. și LLM-uri.

Aflați mai multe în ghidul pentru dezvoltatori despre apelarea funcțiilor.

În iunie 2024, am lansat Structured Outputs. Când îl activați setând `strict: true` în definiția funcției, Structured Outputs garantează că argumentele generate de model pentru un apel de funcție corespund exact cu JSON Schema pe care ați furnizat-o în definiția funcției.

În octombrie 2024, am lansat funcția „Generate Anything”, care le permite dezvoltatorilor să descrie o funcție, să o lipească direct sau să lipească propriul cod și să genereze o schemă de funcție validă. Aflați mai multe despre „Generate Anything” în acest articol din centrul de ajutor

Cum pot folosi apelarea funcțiilor?

Apelarea funcțiilor este utilă pentru un număr mare de cazuri de utilizare, cum ar fi:

  • Permițând asistenților să preia date:

    • un asistent AI trebuie să preia cele mai recente date despre client dintr-un sistem intern atunci când un utilizator întreabă „care sunt comenzile mele recente?” înainte de a putea genera răspunsul pentru utilizator

  • Permițând asistenților să întreprindă acțiuni:

    • un asistent AI trebuie să programeze întâlniri pe baza preferințelor utilizatorului și a disponibilității din calendar.

  • Permițând asistenților să efectueze calcule:

    • un asistent meditator la matematică trebuie să efectueze un calcul matematic.

  • Construirea unor fluxuri de lucru complexe:

    • un flux de extragere a datelor care preia text brut, apoi îl convertește în date structurate și îl salvează într-o bază de date.

Apelarea funcțiilor este acceptată în API-ul Responses, care unifică capabilități ce anterior erau împărțite între API pentru completarea discuțiilor și API-ul Assistants.

Cum pot folosi modul JSON?

Când modul JSON este activat, se garantează că ieșirea modelului este JSON valid, cu excepția unor cazuri-limită pe care ar trebui să le detectați și să le gestionați corespunzător.

Pentru a solicita modul JSON cu API-ul Responses sau cu API pentru completarea discuțiilor, puteți seta response_format la { "type": "json_object" } pe modelele acceptate, dar acest lucru funcționează doar când sunt îndeplinite condițiile preliminare pentru model/mesaj/instrument (de exemplu, modelul acceptă json_object, conversația include o instrucțiune de a produce JSON, iar orice constrângeri ale instrumentelor sunt compatibile). Pentru modul JSON cu response_format: {"type": "json_object"}, cel puțin un mesaj din cerere trebuie să conțină json într-o anumită formă, cum ar fi JSON, json sau Json; în caz contrar, API-ul returnează o eroare. Când apelarea funcțiilor este folosită pe modele/căi compatibile, constrângerile JSON sunt aplicate automat argumentelor apelului de funcție; modelele incompatibile sau combinațiile instrument/format de răspuns pot fi respinse sau este posibil să nu folosească eșantionare constrânsă JSON.

Note importante:

  • Când utilizați modul JSON, trebuie să instruiți întotdeauna modelul să producă JSON printr-un mesaj din conversație, de exemplu prin mesajul de sistem. Dacă nu includeți o instrucțiune explicită de a genera JSON, modelul poate produce un flux nesfârșit de spații albe, iar cererea poate continua să ruleze până când atinge limita de tokenuri. Pentru a vă ajuta să nu uitați, modul JSON respinge cererile dacă mesajele sau instrucțiunile de intrare relevante nu conțin cuvântul json într-o anumită formă, fără a ține cont de majuscule.

  • Modul JSON nu garantează că ieșirea corespunde unei anumite scheme, ci doar că este validă și poate fi analizată fără erori. Ar trebui să folosiți Structured Outputs pentru a vă asigura că se potrivește cu schema dvs. sau, dacă acest lucru nu este posibil, ar trebui să folosiți o bibliotecă de validare și, eventual, reîncercări pentru a vă asigura că ieșirea corespunde schemei dorite.

  • Aplicația dvs. trebuie să detecteze și să gestioneze cazurile-limită care pot face ca ieșirea modelului să nu fie un obiect JSON complet (vedeți mai jos)

A fost util acest articol?