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: 28 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 îți permite să conectezi modelele OpenAI la instrumente și sisteme externe. Acest lucru este util pentru multe lucruri, cum ar fi dotarea asistenților AI cu capabilități sau construirea unor integrări profunde între aplicațiile tale și LLM-uri.

Află mai multe în ghidul nostru pentru dezvoltatori privind apelarea funcțiilor.

În iunie 2024, am lansat speech-to-speech. Când activezi funcția setând strict: true în definiția funcției tale, speech-to-speech garantează că argumentele generate de model pentru un apel de funcție corespund exact schemei JSON pe care ai furnizat-o în definiția funcției.

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

Cum pot folosi apelarea funcțiilor?

Apelarea funcțiilor este utilă pentru numeroase cazuri de utilizare, precum:

  • Permiterea asistenților să preia date:

  • Permiterea asistenților să efectueze acțiuni:

  • Permiterea asistenților să efectueze calcule:

  • 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 care anterior erau împărțite între API-ul 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 trebuie să le detectezi și să le gestionezi corespunzător.

Pentru a solicita modul JSON cu API-ul pentru completarea discuțiilor, setează response_format la { "type": "json_object" } pe modelele acceptate. Cu API-ul Responses, setează text.format la { "type": "json_object" }, de exemplu text: { "format": { "type": "json_object" } }, acolo unde este cazul. În oricare dintre API-uri, modul JSON funcționează doar când sunt îndeplinite cerințele preliminare pentru model/mesaj/instrument (de exemplu, modelul acceptă json_object, conversația include instrucțiuni pentru a produce JSON, iar orice constrângeri ale instrumentelor sunt compatibile). Cel puțin un mesaj de solicitare sau un mesaj de intrare din contextul de intrare efectiv trebuie să conțină json într-o formă fără diferențiere între litere mari și mici, cum ar fi JSON, json sau Json; altfel, API-ul returnează o eroare. În Responses, doar câmpul de instrucțiuni de nivel superior nu satisface această validare. Când se folosește apelarea funcțiilor pe modele/căi compatibile, constrângerile JSON sunt aplicate automat argumentelor apelurilor de funcții; modelele incompatibile sau combinațiile incompatibile instrument/format de răspuns pot fi respinse sau pot să nu folosească eșantionare constrânsă de JSON.

Note importante:

  • Când folosești modul JSON, trebuie întotdeauna să instruiești modelul să producă JSON printr-un mesaj din conversație, de exemplu prin mesajul de sistem. Dacă nu incluzi o instrucțiune explicită de a genera JSON, modelul poate genera un flux nesfârșit de spații albe, iar solicitarea poate continua să ruleze până când atinge limita de tokenuri. Pentru a te ajuta să nu uiți, modul JSON respinge solicitările dacă mesajele sau instrucțiunile de intrare relevante nu conțin cuvântul json într-o formă oarecare, fără diferențiere între litere mari și mici.

  • Modul JSON nu garantează că ieșirea se potrivește unei scheme specifice, ci doar că este validă și se parsează fără erori. Ar trebui să folosești speech-to-speech pentru a te asigura că se potrivește schemei tale sau, dacă acest lucru nu este posibil, ar trebui să folosești o bibliotecă de validare și eventual reîncercări pentru a te asigura că ieșirea se potrivește schemei dorite.

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

A fost util acest articol?