← 返回列表

Technické zhrnutie Function Calling

Technické zhrnutie Function Calling

1. Definícia

Function Calling je mechanizmus, ktorý umožňuje vývojárom popísať dostupné externé nástroje (napr. API) veľkému jazykovému modelu (LLM) pomocou JSON schémy. Keď model usúdi, že na zodpovedanie otázky používateľa je potrebné zavolať nástroj, vygeneruje štruktúrované JSON dáta tool_calls, ktoré špecifikujú názov funkcie a parametre. Hostiteľský program tieto dáta spracuje, vykoná volanie a vráti výsledok modelu, ktorý následne vygeneruje konečnú odpoveď.

2. Hlavný princíp a riešené problémy

  • Podstata: Uzavretý cyklus „dve kolá konverzácie + medzivykonanie“. V prvom kole model rozhodne a vygeneruje požiadavku na volanie nástroja; medzikód vykoná nástroj; v druhom kole model na základe výsledku vygeneruje konečnú odpoveď.
  • Riešené problémy: Rieši predchádzajúce problémy s nestabilným a chybovým spracovaním prirodzeného jazyka (if/else podmienky) pri volaní nástrojov modelom, pričom pomocou štruktúrovaného výstupu dosahuje štandardizáciu a zvýšenie presnosti.

3. Rozdelenie zodpovedností (analógia delegovania úloh)

  • Vývojár (HR): Definuje nástroje, vytvára JSON schému popisujúcu funkcie, parametre atď.
  • LLM model (manažér): Rozumie popisu nástrojov, rozhoduje, či je potrebné volanie, ktorý nástroj zavolať a aké parametre použiť, a generuje štruktúrovanú požiadavku (tool_calls). Model iba rozhoduje a generuje text, nevykonáva kód osobne.
  • Vykonávateľ/hostiteľský kód (zamestnanec): Spracuje tool_calls požiadavku modelu, skutočne vykoná príslušnú funkciu alebo API volanie a vráti výsledok.

4. Definícia nástroja (JSON schéma)

Schéma je „návod na použitie“ nástroja. Kľúčové informácie:
- name: Jedinečný identifikátor nástroja.
- description: Mimoriadne dôležité, model sa výhradne na základe tohto popisu rozhoduje, či nástroj zavolať. Čím jasnejší a presnejší popis, tým presnejšie rozhodnutie modelu.
- parameters: Definuje požadované parametre nástroja, ich typy, popis, obmedzenia (napr. výčtové hodnoty, povinnosť atď.).

5. Kompletný proces volania

Článok prostredníctvom príkladu kódu na zistenie počasia ukazuje celý proces od otázky používateľa, cez prvé volanie modelu s definíciou nástroja, vrátenie tool_calls modelom, vykonanie funkcie kódom, vloženie výsledku do histórie konverzácie ako správa s role: "tool", až po konečné vygenerovanie odpovede v prirodzenom jazyku modelom.

6. Pokročilé funkcie - Paralelné volanie nástrojov

Keď otázka používateľa vyžaduje spoluprácu viacerých nástrojov (napr. súčasné zistenie počasia vo viacerých mestách), model môže v jednej odpovedi vygenerovať zoznam obsahujúci viacero tool_calls. Hostiteľský kód môže tieto volania vykonať paralelne a potom všetky výsledky naraz vrátiť modelu na syntézu, čím sa zvyšuje efektivita.

评论

暂无已展示的评论。

发表评论(匿名)