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: 6 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ással OpenAI-modelleket kapcsolhat külső eszközökhöz és rendszerekhez. Ez számos célra hasznos: új képességekkel ruházhatja fel az AI-asszisztenseket, vagy szorosan integrálhatja alkalmazásait a nagy nyelvi modellekkel (LLM-ekkel).

További információt a funkcióhívás fejlesztői útmutatójában talál.

2024 júniusában bevezettük a strukturált kimeneteket. A támogatott modellek és kéréskonfigurációk esetén, amikor a modell funkcióhívást ad ki, a függvénydefinícióban megadott strict: true beállítás biztosítja, hogy a létrehozott argumentumok megfeleljenek a megadott sémának, feltéve, hogy az a JSON Schema támogatott részhalmazát használja, és teljesíti a szigorú mód követelményeit. A nem támogatott vagy nem megfelelő sémát tartalmazó kéréseket a rendszer hibával elutasítja.

2024 októberében bevezettük a „Bármi generálása” funkciót, amellyel a fejlesztők leírhatnak vagy közvetlenül beilleszthetnek egy függvényt, illetve beilleszthetik a kódjukat, és érvényes függvénysémát hozhatnak létre. A „Bármi generálása” funkcióról ebben a súgóközpontbeli cikkben olvashat bővebben

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?