Function Calling Teknisk Oversigt
Function Calling Teknisk Oversigt
1. Definition
Function Calling er en mekanisme, der giver udviklere mulighed for at beskrive tilgængelige eksterne værktøjer (såsom API'er) til store sprogmodeller (LLM'er) via JSON-skemaer. Når modellen vurderer, at den har brug for at kalde et værktøj for at besvare et bruger-spørgsmål, udsender den strukturerede tool_calls JSON-data, der angiver funktionsnavnet og parametrene. Værtsprogrammet parser og udfører dette kald, returnerer resultatet til modellen, som derefter genererer det endelige svar.
2. Kerne princip og problemløsning
- Essens: En lukket sløjfe med "to samtalerunder + mellemliggende eksekvering". Første runde: modellen træffer beslutning og udsender en værktøjsanmodning; mellemliggende: kode udfører værktøjet; anden runde: modellen genererer det endelige svar baseret på eksekveringsresultatet.
- Løst problem: Løser problemet med tidligere at skulle stole på ustabil og fejlbehæftet naturlig sprogparsing (if/else-betingelser) for at få modellen til at kalde værktøjer, og opnår standardisering og forbedret nøjagtighed gennem struktureret output.
3. Ansvarsfordeling (analogi til opgavedelegering)
- Udvikler (HR): Definerer værktøjer, skriver JSON-skemaer, der beskriver værktøjets funktion, parametre osv.
- LLM-model (leder): Forstår værktøjsbeskrivelsen, beslutter om et værktøj skal kaldes, hvilket værktøj og hvilke parametre, og udsender en struktureret kaldanmodning (
tool_calls). Modellen træffer kun beslutninger og genererer tekst, udfører ikke kode selv. - Eksekver/værtkode (medarbejder): Parser modellens
tool_calls-anmodning, udfører den tilsvarende funktion eller API-kald, og returnerer resultatet.
4. Værktøjsdefinition (JSON-skema)
Skemaet er værktøjets "brugsanvisning". Nøgleoplysninger inkluderer:
- name: Værktøjets unikke identifikator.
- description: Afgørende, modellen er fuldstændig afhængig af denne beskrivelse for at afgøre, om værktøjet skal kaldes. Jo klarere og mere præcis beskrivelsen er, desto bedre er modellens beslutning.
- parameters: Definerer de parametre, værktøjet kræver, samt deres type, beskrivelse og begrænsninger (f.eks. enum-værdier, om de er påkrævet osv.).
5. Komplet kaldeproces
Artiklen viser gennem et kodeeksempel med vejrudsigt, hele processen fra brugerens spørgsmål, første modelkald med værktøjsdefinition, model returnerer tool_calls, kode udfører funktionen, resultatet indsættes i samtalehistorikken som en role: "tool"-besked, til sidst genererer modellen det endelige svar på naturligt sprog.
6. Avancerede funktioner - Parallel værktøjskald
Når et bruger-spørgsmål kræver flere værktøjer til at samarbejde (f.eks. samtidig forespørgsel om vejr i flere byer), kan modellen i ét svar udsende en liste med flere tool_calls. Værtkoden kan udføre disse kald parallelt og derefter returnere alle resultater til modellen for syntese, hvilket forbedrer effektiviteten.
评论
暂无已展示的评论。
发表评论(匿名)