Function calling (LLM) (HU)
Function Calling (Függvényhívás) — ez egy mechanizmus a nagy nyelvi modellekben (LLM), amely lehetővé teszi a modell számára, hogy külső eszközökkel és API-kkal kommunikáljon, strukturált adatokat (jellemzően JSON formátumban) generálva a függvények meghívásához, közvetlen szöveges válasz helyett[1].
Más szóval, a modell a felhasználói kérés alapján meghatározza, hogy a felkínált készletből melyik függvényt kell meghívni és milyen paraméterekkel. Ez a mechanizmus bővíti az LLM-ek alkalmazási körét, lehetővé téve számukra, hogy interfészként szolgáljanak a természetes nyelv és a gyakorlati műveletek között. Ez lehetőséget nyit a mesterséges intelligencia külső rendszerekkel való integrációjára: a modell aktuális adatokat kérhet le, műveleteket hajthat végre, vagy szolgáltatásokat vehet igénybe, ami különösen értékes intelligens asszisztensek és autonóm ágensek létrehozásakor. A külső eszközök használata csökkenti a hallucinációk (kitalált tények) kockázatát is, mivel megbízható forrásokhoz fordul[2].
Történet és megvalósítási megközelítések
Korai megközelítések (prompting és Toolformer)
Az az elképzelés, hogy a nyelvi modelleket megtanítsák eszközök meghívására, 2022–2023-ban alakult ki. A korai megközelítések összetett prompting technológiákra támaszkodtak. Így 2022-ben vezették be a ReAct sémát, ahol a modell a párbeszéd során felváltva végzett következtetéseket és műveleteket (eszközhívásokat), amelyek egyetlen szövegbe voltak kódolva.
Meredek lépést jelentett a Toolformer modell megjelenése, amelyet a Meta kutatói 2023 elején mutattak be. A Toolformer megmutatta, hogy az LLM-ek speciálisan továbbtaníthatók arra, hogy önállóan hívjanak meg külső eszközöket (számológép, keresőmotor, naptár) szöveges utasítások alapján, speciális API-hívási tokeneket illesztve a generált szövegbe[3].
Hivatalos támogatás és fejlesztés
Mérföldkövet jelentett az OpenAI, amely 2023 júniusában hivatalosan bevezette a Function Calling támogatást a GPT-3.5 és GPT-4 modellekhez tartozó API-jaiba[4]. A modellek új verzióit arra tanították tovább, hogy felismerjék azokat a helyzeteket, amikor a felhasználói kérés külső függvény meghívását feltételezi, és pontosan strukturált JSON-objektumot generáljanak az argumentumokkal. Az OpenAI ezt a lehetőséget „új módszernek nevezte a GPT és a külső eszközök, illetve API-k megbízható összekapcsolására".
Nyílt kezdeményezések
A kereskedelmi megvalósításokat követően megjelentek a nyílt modellek, amelyeket helyes függvényhívások generálására tanítottak tovább.
- Gorilla: A UC Berkeley projektje, a LLaMA továbbtanított változata, amely több ezer különböző API-hoz képes hívásokat generálni. Az ilyen modellek értékelésére létrehozták a Berkeley Function-Calling Leaderboard benchmarkot[5].
- ToolAlpaca, ToolLLaMA, Hermes: Nyílt modellek sorozatai, amelyeket szintetikus függvényhívás-példákon tanítottak tovább, ezeket gyakran erősebb modellek generálták.
A működési mechanizmus
A Function Calling használatának folyamata általában több lépésből áll:
- Függvények meghatározása. A fejlesztő előre meghatározza a modell számára elérhető függvények készletét (például külső API-kat), és leírja azok szignatúráját és rendeltetését, általában JSON Schema formátumban.
- Kérés elemzése. A párbeszéd során a modell elemzi a felhasználó szándékát, és önállóan dönt arról, hogy a válaszhoz szükséges-e valamelyik meghatározott függvény meghívása.
- Hívás generálása. Ha műveletre van szükség, az LLM a szokásos szöveg helyett speciális strukturált kimenetet generál (például JSON-t a függvény nevével és argumentumaival). Ha nincs szükség hívásra, a modell normál szöveges választ ad vissza.
- Függvény végrehajtása. A külső program (a chatbot kerete vagy az ágens) megkapja a JSON-t, végrehajtja a megadott függvény tényleges hívását a javasolt paraméterekkel, és az eredményt visszaküldi a modellnek.
- Végső válasz kialakítása. A modell a kapott adatokat felhasználva generálja a felhasználónak szóló végleges választ[4].
Ennek a többlépéses folyamatnak a kezelésére a modellek tanítása során speciális párbeszédformátumokat alkalmaznak, például az OpenAI ChatML jelölését, ahol a „felhasználó" és az „asszisztens" szerepeken kívül bevezetik a „függvény" szerepet a hívási eredmények átadásához.
Alkalmazás és előnyök
A függvények meghívásának lehetősége jelentősen bővíti az LLM-ekkel megoldható feladatok körét.
- Integráció külső API-kkal. A modell válaszolhat olyan kérésekre, amelyek aktuális információt igényelnek, külső szolgáltatásokat hívva meg (például az időjárás, a devizaárfolyamok vagy a hírek lekéréséhez).
- Felhasználói műveletek automatizálása. Az LLM képes elvégezni rutinfeladatokat: e-maileket küldeni, naptáreseményeket létrehozni, rendeléseket leadni webáruházakban.
- Adatbázisokhoz és elemzésekhez való hozzáférés. A természetes nyelvű kérések belső API-hívásokká vagy SQL-lekérdezésekké alakíthatók az adatok kinyeréséhez és elemzéséhez.
- Strukturált információ kinyerése. Az LLM maga is képes tényeket kiemelni hosszú szövegekből (például neveket, dátumokat, címeket), és azokat strukturált JSON-tömb formájában visszaadni, amely kényelmesen feldolgozható programozottan.
Biztonsági problémák
A Function Calling a modellek lehetőségeit bővítve egyúttal új kockázatokat is hordoz.
- Ellenőrizetlen kimenetek. A modell és a külső eszközök közötti interakciót gondosan védeni kell. Ha a modell az API-tól rosszindulatú vagy hibás értéket kap, azt beépítheti a válaszba, vagy egy másik függvényt hívhat meg annak alapján, ami kiszámíthatatlan következményekhez vezethet.
- Támadások a függvényargumentumokon keresztül. A kutatók a Function Calling módhoz specifikus sebezhetőségeket fedeztek fel. 2025-ben bemutattak egy támadást, amelyet „A Function Calling sötét oldala" névvel illettek. Lényege abban áll, hogy a modellnek egy speciális „függvényt" ajánlanak fel, amelynek argumentumaiban tiltott utasítás (jailbreak-payload) rejtőzik. A modell, a függvényhívás elvét követve, szabályszegő tartalmat hordozó argumentumokat generál, és ezzel megkerüli a moderációs szűrőket. A tesztelés során a támadás több mint 90%-os sikerességet mutatott hat modern modellen, köztük a GPT-4-en és a Claude-on[2].
Az ilyen incidensek megelőzése érdekében javasolt, hogy a modell csak megbízható eszközökhöz férhessen hozzá, kritikus fontosságú műveletek végrehajtása előtt vezessenek be felhasználói megerősítést, valamint alkalmazzanak speciális „védelmi" promptokat és az argumentumok szigorú ellenőrzését veszélyes tartalom szempontjából.
Hivatkozások
- Az OpenAI hivatalos Function Calling bejelentése
- A Gorilla LLM projekt oldala
- Apideck (2024). An Introduction to Function Calling and Tool Use. Apideck Blog.
- LangChain (2025). Tool Calling (Documentation). LangChain Docs.
- Mistral AI (2025). Function Calling – Documentation. Mistral Docs.
- Hopsworks (2024). What is Function Calling with LLMs?. Hopsworks Dictionary.
- Hopsworks (2024). Unlocking the Power of Function Calling with LLMs. Hopsworks Blog.
- University of California, Berkeley (2025). Berkeley Function Calling Leaderboard V3. Online Resource.
Irodalom
- Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. ACL 2025.
- OpenAI (2023). Function Calling and Other API Updates. OpenAI Blog.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
- Liu, W. et al. (2024). ToolACE: Winning the Points of LLM Function Calling. arXiv:2409.00920.
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
Jegyzetek
- ↑ «What is Function Calling with LLMs?». Hopsworks. [1]
- ↑ 2.0 2.1 Wu, Z. et al. «The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models». Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing, 2025. [2]
- ↑ Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv:2302.04761, 2023. [3]
- ↑ 4.0 4.1 «Function calling and other API updates». OpenAI, 2023. [4]
- ↑ «Gorilla: Large Language Model Connected to Massive APIs». University of California, Berkeley. [5]