Function Calling technikai összefoglaló
Function Calling technikai összefoglaló
1. Meghatározás
A Function Calling egy olyan mechanizmus, amely lehetővé teszi a fejlesztők számára, hogy JSON séma segítségével leírják az elérhető külső eszközöket (pl. API-kat) a nagy nyelvi modell (LLM) számára. Amikor a modell úgy ítéli meg, hogy egy eszközt kell meghívnia a felhasználó kérdésének megválaszolásához, strukturált tool_calls JSON adatokat ad ki, jelezve a meghívandó függvény nevét és paramétereit. A gazdaprogram elemzi és végrehajtja ezt a hívást, az eredményt visszaadja a modellnek, amely aztán generálja a végső választ.
2. Alapelv és megoldott problémák
- Lényeg: „Két körös párbeszéd + köztes végrehajtás” zárt ciklusa. Az első körben a modell dönt és kiadja az eszközhívási kérelmet; a köztes kód végrehajtja az eszközt; a második körben a modell a végrehajtás eredménye alapján generálja a végső választ.
- Megoldott problémák: Megoldotta azt a korábbi problémát, amikor a modell eszközhívásához instabil, hibára hajlamos természetes nyelvi elemzésre (if/else feltételek) volt szükség, és strukturált kimenettel szabványosítást és pontosságnövelést ért el.
3. Feladatmegosztás (feladatdelegálási analógia)
- Fejlesztő (HR): Meghatározza az eszközöket, megírja az eszköz funkcióit, paramétereit stb. leíró JSON Sémát.
- LLM modell (menedzser): Értelmezi az eszközleírást, dönt arról, hogy szükséges-e hívás, melyik eszközt és milyen paraméterekkel hívja, és strukturált hívási kérelmet (
tool_calls) ad ki. A modell csak dönt és szöveget generál, nem maga hajtja végre a kódot. - Végrehajtó/gazdakód (alkalmazott): Elemzi a modell
tool_callskérését, ténylegesen végrehajtja a megfelelő függvényt vagy API-hívást, és visszaadja az eredményt.
4. Eszközmeghatározás (JSON Schema)
A séma az eszköz „használati útmutatója”, a kulcsfontosságú információk:
- name: Az eszköz egyedi azonosítója.
- description: Kiemelten fontos, a modell teljes mértékben erre a leírásra támaszkodik annak eldöntésében, hogy meghívja-e az eszközt. Minél világosabb és pontosabb a leírás, annál pontosabb a modell döntése.
- parameters: Meghatározza az eszköz által igényelt paramétereket, azok típusát, leírását, megszorításait (pl. felsorolt értékek, kötelezőség stb.).
5. Teljes hívási folyamat
A cikk egy időjárás-lekérdező kódpéldán keresztül mutatja be a teljes folyamatot a felhasználói kérdéstől, az eszközdefinícióval ellátott első modellhíváson, a modell tool_calls visszatérésén, a kód függvényvégrehajtásán, az eredmény role: "tool" üzenetként történő visszahelyezésén át a beszélgetési előzményekbe, egészen a modell végső természetes nyelvű válaszának generálásáig.
6. Haladó funkció - Párhuzamos eszközhívás
Amikor a felhasználói kérdés több eszköz együttműködését igényli (pl. több város időjárásának egyidejű lekérdezése), a modell egyetlen válaszban több tool_calls-t tartalmazó listát adhat ki. A gazdakód párhuzamosan végrehajthatja ezeket a hívásokat, majd az összes eredményt egyszerre visszaadja a modellnek összesítésre, ezzel növelve a hatékonyságot.
评论
暂无已展示的评论。
发表评论(匿名)