Funkcja Calling
Wzywanie funkcji umożliwia modelom językowym korzystanie z narzędzi zewnętrznych poprzez generowanie ustrukturyzowanych wyjść, które określają połączenia funkcyjne, umożliwiając im interakcję z interfejsami API i innymi systemami.
Wywoływanie funkcji to technika, która umożliwia dużym modelom językowym (LLM) interakcję z zewnętrznymi narzędziami i API. Zamiast po prostu generować tekst, LLM jest szkolony do generowania ustrukturyzowanych danych, takich jak JSON, które określają funkcję do wywołania i jej argumenty. Pozwala to LLM na delegowanie zadań, pobieranie informacji i wykonywanie działań wykraczających poza jego wrodzone możliwości generowania tekstu. Proces ten zazwyczaj obejmuje zdefiniowanie zestawu funkcji z opisami i schematami wejścia/wyjścia, których LLM może następnie użyć do generowania odpowiednich wywołań. Rozszerza to użyteczność LLM, umożliwiając ich integrację z przepływami pracy i aplikacjami, które wymagają danych zewnętrznych lub działań.
graph LR
Center["Funkcja Calling"]:::main
Pre_logic["logic"]:::pre --> Center
click Pre_logic "/terms/logic"
Rel_api["api"]:::related -.-> Center
click Rel_api "/terms/api"
Rel_chain_of_thought["chain-of-thought"]:::related -.-> Center
click Rel_chain_of_thought "/terms/chain-of-thought"
Rel_function["function"]:::related -.-> Center
click Rel_function "/terms/function"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Sprawdzenie wiedzy
🧒 Wyjaśnij jak 5-latkowi
To jest jak poproszenie super-inteligentnego asystenta, żeby znalazł coś w konkretnej książce (funkcji) i powiedział Ci odpowiedź, zamiast zgadywać.
🤓 Expert Deep Dive
Funkcijos iškvietimas, kalbant apie didelius kalbos modelius (LLM), žymi paradigmų poslinkį nuo grynos teksto generacijos prie agentiško elgesio, leidžiantį LLM veikti kaip išorinių skaičiavimo išteklių orkestratoriams. Architektūriškai tai remiasi LLM gebėjimu atlikti struktūrizuotą prognozę, generuojant iš anksto apibrėžtą schemą, atspindinčią funkcijų parašus ir argumentus. Šią schemą paprastai apibrėžia programuotojas, suteikdamas LLM „įrankių rinkinį“, kurį jis gali naudoti. Procesas apima LLM, kuris analizuoja vartotojo natūralios kalbos užklausą, nustato ketinimą ir susieja jį su turimomis funkcijomis. Tada jis generuoja JSON objektą, atitinkantį schemą, nurodantį funkcijos pavadinimą ir argumentus, dažnai išgaunamus iš raginimo per entitetų išskyrimą ir laiko tarpsnių užpildymą. Atskiras vykdymo sluoksnis („įrankių vykdytojas“ arba „agentų sistema“) perima šį JSON, jį patikrina ir iškviečia atitinkamą išorinę API arba kodą. Įrankio grąžinama reikšmė vėl perduodama į LLM kontekstą, leidžiant jam sintezuoti galutinį atsakymą arba grandinėti tolesnius funkcijų iškvietimus. Šis mechanizmas žymiai padidina LLM naudingumą, pagrįsdamas jų atsakymus realaus laiko duomenimis ir leidžiant atlikti sudėtingas, daugiaetapias operacijas. Kompromisai apima galimus raginimo injekcijos (prompt injection) atakas, nukreiptas į funkcijų iškvietimo mechanizmą, įrankių apibrėžimų ir klaidų tvarkymo sudėtingumą bei vykdymo ciklo skaičiavimo antkainį. Užtikrinimas, kad LLM tiksliai susietų ketinimą su teisinga funkcija ir argumentais, ypač turint daug arba dviprasmiškai pavadintų įrankių, yra kritinis iššūkis. Šiam susiejimo tikslumui pagerinti naudojamos tokios technikos kaip kelių pavyzdžių mokymasis (few-shot learning) ir papildomas mokymas (fine-tuning).