OpenAI
Ez az oldal gépi fordítással készült. Tekintsd meg az eredeti angol nyelvű cikket.

Funkcióhívás az OpenAI API-ban

Mi a funkcióhívás, és hogyan működik az OpenAI API-ban?

Frissítve: 13 days ago

2025. március 11-től elérhetővé tettük új ügynökplatformunk alapvető építőelemeit. A részletekért lásd a Responses API-hoz, az eszközökhöz, köztük a Web Search, File Search és Computer Use eszközökhöz, valamint a Agents SDK-hoz a Tracing funkcióval kapcsolatos API-dokumentációnkat.

A funkcióhívás lehetővé teszi, hogy OpenAI-modelleket külső eszközökhöz és rendszerekhez kapcsolj. Ez sok mindenre hasznos, például AI-asszisztensek képességekkel való felruházására, vagy mély integrációk létrehozására az alkalmazásaid és az LLM-ek között.

Tudj meg többet a funkcióhívási fejlesztői útmutatónkban.

2024 júniusában bevezettük a strukturált kimeneteket. Ha a funkciódefinícióban a strict: true beállítással bekapcsolod, a strukturált kimenetek garantálják, hogy a modell által egy funkcióhíváshoz generált argumentumok pontosan megfelelnek a funkciódefinícióban megadott JSON-sémának.

2024 októberében bevezettük a „Generate Anything” funkciót, amely lehetővé teszi a fejlesztőknek, hogy leírjanak egy funkciót, közvetlenül beillesszék azt, vagy beillesszék a kódjukat, és érvényes funkciósémát generáljanak. Tudj meg többet a „Generate Anything” funkcióról ebben a súgóközpont-cikkben.

Hogyan használhatom a funkcióhívást?

A funkcióhívás számos felhasználási esetben hasznos, például:

  • Annak lehetővé tétele, hogy az asszisztensek adatokat kérjenek le:

  • Annak lehetővé tétele, hogy az asszisztensek műveleteket hajtsanak végre:

  • Annak lehetővé tétele, hogy az asszisztensek számításokat végezzenek:

  • Összetett munkafolyamatok építése:

  • egy adatkinyerési folyamat, amely nyers szöveget kér le, majd strukturált adattá alakítja, és adatbázisba menti.

A funkcióhívás a Responses API-ban támogatott, amely egységesíti azokat a képességeket, amelyek korábban a csevegés-befejezési API és az Assistants API között voltak megosztva.

Hogyan használhatom a JSON módot?

Ha a JSON mód be van kapcsolva, a modell kimenete néhány kivételes esettől eltekintve garantáltan érvényes JSON lesz; ezeket az eseteket megfelelően észlelni és kezelni kell.

Ha a csevegés-befejezési API-val szeretnéd kérni a JSON módot, a támogatott modelleken állítsd a response_format értékét erre: { "type": "json_object" }. A Responses API esetén állítsd a text.format értékét erre: { "type": "json_object" }, például text: { "format": { "type": "json_object" } }, ahol alkalmazható. Mindkét API-ban a JSON mód csak akkor működik, ha a modellre/üzenetre/eszközre vonatkozó előfeltételek teljesülnek (például a modell támogatja a json_object értéket, a beszélgetés tartalmaz utasításokat JSON előállítására, és az eszközkorlátozások kompatibilisek). A tényleges bemeneti kontextusban legalább egy kérésüzenetnek vagy bemeneti üzenetnek tartalmaznia kell a json szót kis- és nagybetűktől független formában, például JSON, json vagy Json; ellenkező esetben az API hibát ad vissza. A Responsesben a legfelső szintű instructions mező önmagában nem felel meg ennek az ellenőrzésnek. Ha kompatibilis modelleken/útvonalakon funkcióhívást használsz, a JSON-korlátozások automatikusan érvényesülnek a funkcióhívási argumentumokra; az inkompatibilis modelleket vagy eszköz-/válaszformátum-kombinációkat a rendszer elutasíthatja, vagy előfordulhat, hogy nem használnak JSON-korlátozott mintavételezést.

Fontos megjegyzések:

  • A JSON mód használatakor mindig utasítanod kell a modellt, hogy JSON-t állítson elő a beszélgetés valamelyik üzenetén keresztül, például a rendszerüzenetben. Ha nem adsz meg kifejezett utasítást JSON generálására, a modell végtelennek tűnő üres karakterfolyamot generálhat, és a kérés folyamatosan futhat, amíg el nem éri a tokenkorlátot. Annak érdekében, hogy ezt ne felejtsd el, a JSON mód elutasítja a kéréseket, hacsak a releváns bemeneti üzenetek vagy utasítások nem tartalmazzák a json szót valamilyen formában, kis- és nagybetűktől függetlenül.

  • A JSON mód nem garantálja, hogy a kimenet megfelel bármilyen konkrét sémának; csak azt, hogy érvényes és hibamentesen feldolgozható. Használj strukturált kimeneteket annak biztosítására, hogy a kimenet megfeleljen a sémádnak; ha ez nem lehetséges, használj ellenőrző könyvtárat és szükség esetén ismételt próbálkozásokat, hogy a kimenet megfeleljen a kívánt sémának.

  • Az alkalmazásodnak észlelnie és kezelnie kell azokat a szélső eseteket, amelyek miatt a modell kimenete nem teljes JSON-objektum (lásd alább).

Hasznos volt ez a cikk?