Povzetek tehnike Function Calling
Povzetek tehnike Function Calling
1. Opredelitev
Function Calling je mehanizem, ki razvijalcem omogoča, da z uporabo sheme JSON opišejo razpoložljiva zunanja orodja (npr. API-je) velikemu jezikovnemu modelu (LLM). Ko model presodi, da je za odgovor na uporabnikovo vprašanje potrebno orodje, izpiše strukturirane podatke tool_calls v obliki JSON, ki določajo ime funkcije in parametre. Gostiteljski program razčleni in izvede ta klic, rezultat vrne modelu, ta pa nato ustvari končni odgovor.
2. Osnovno načelo in reševanje težav
- Bistvo: Zanka "dva kroga pogovora + vmesno izvajanje". V prvem krogu model odloči in izpiše zahtevo za klic orodja; vmesna koda izvede orodje; v drugem krogu model na podlagi rezultata izvedbe ustvari končni odgovor.
- Reševanje težav: Rešuje težavo, pri kateri je bilo prej potrebno zanašanje na nestabilno in nagnjeno k napakam razčlenjevanje naravnega jezika (if/else odločitve) za klicanje orodij, s strukturiranim izpisom pa dosega standardizacijo in večjo natančnost.
3. Razdelitev odgovornosti (analogija delegiranja nalog)
- Razvijalec (HR): Določi orodja, napiše shemo JSON, ki opisuje funkcionalnost orodja, parametre itd.
- Model LLM (vodja): Razume opis orodja, odloči, ali je potreben klic, katero orodje poklicati in kakšni so parametri, ter izpiše strukturirano zahtevo za klic (
tool_calls). Model samo odloča in ustvarja besedilo, ne izvaja kode. - Izvajalec/gostiteljska koda (zaposleni): Razčleni zahtevo
tool_callsmodela, dejansko izvede ustrezno funkcijo ali klic API-ja in vrne rezultat.
4. Opredelitev orodja (shema JSON)
Shema je "navodilo" za orodje, ključne informacije vključujejo:
- name: Edinstven identifikator orodja.
- description: Izjemno pomembno, model se popolnoma zanaša na ta opis, da se odloči, ali naj orodje pokliče. Bolj jasen in natančen je opis, bolj natančna je odločitev modela.
- parameters: Določa parametre, ki jih orodje zahteva, ter njihove tipe, opise, omejitve (npr. dovoljene vrednosti, obveznost itd.).
5. Celoten postopek klica
Članek s primerom kode za iskanje vremena prikazuje celoten postopek od uporabnikovega vprašanja, prvega klica modela z opredelitvijo orodja, vrnitve tool_calls s strani modela, izvedbe funkcije s strani kode, dodajanja rezultata v zgodovino pogovora s sporočilom role: "tool", do končnega odgovora modela v naravnem jeziku.
6. Napredne funkcije - vzporedni klici orodij
Ko uporabnikovo vprašanje zahteva sodelovanje več orodij (npr. hkratno iskanje vremena v več mestih), lahko model v enem odgovoru izpiše seznam več tool_calls. Gostiteljska koda lahko te klice izvede vzporedno, nato pa vse rezultate vrne modelu za celovito obdelavo, s čimer poveča učinkovitost.
评论
暂无已展示的评论。
发表评论(匿名)