Function Calling Teknisk Oppsummering
Function Calling Teknisk Oppsummering
1. Definisjon
Function Calling er en mekanisme som lar utviklere beskrive tilgjengelige eksterne verktøy (som APIer) til store språkmodeller (LLM) via JSON-skjema. Når modellen vurderer at den trenger å kalle et verktøy for å svare på brukerens spørsmål, genererer den strukturerte tool_calls JSON-data som angir funksjonsnavn og parametere. Vertskoden analyserer og utfører dette kallet, returnerer resultatet til modellen, som deretter genererer det endelige svaret.
2. Kjerne Prinsipp og Problemer Det Løser
- Essens: En "to-runders samtale + mellomliggende utførelse"-sløyfe. Første runde: modellen bestemmer seg og sender en verktøykall-forespørsel; mellomliggende kode utfører verktøyet; andre runde: modellen genererer det endelige svaret basert på utførelsesresultatet.
- Problemer det løser: Løser problemet med tidligere ustabil og feilutsatt naturlig språktolkning (if/else-sjekker) for å få modellen til å kalle verktøy, og oppnår standardisering og nøyaktighetsforbedring gjennom strukturert utdata.
3. Ansvarsfordeling (Analogi til Oppgavedelegering)
- Utvikler (HR): Definerer verktøy, skriver JSON-skjema som beskriver verktøyets funksjon, parametere osv.
- LLM-modell (Manager): Forstår verktøybeskrivelsen, bestemmer om et kall er nødvendig, hvilket verktøy som skal kalles og hvilke parametere som skal brukes, og sender en strukturert kallforespørsel (
tool_calls). Modellen tar bare beslutninger og genererer tekst, den utfører ikke kode selv. - Utfører/Vertskode (Ansatt): Analyserer modellens
tool_calls-forespørsel, utfører den tilsvarende funksjonen eller API-kallet, og returnerer resultatet.
4. Verktøydefinisjon (JSON-skjema)
Skjemaet er verktøyets "bruksanvisning", nøkkelinformasjon inkluderer:
- name: Unik identifikator for verktøyet.
- description: Avgjørende, modellen er helt avhengig av denne beskrivelsen for å avgjøre om verktøyet skal kalles. Jo tydeligere og mer presis beskrivelsen er, desto bedre blir modellens beslutning.
- parameters: Definerer parametere som kreves av verktøyet, deres typer, beskrivelser, begrensninger (som opplistingsverdier, om de er obligatoriske osv.).
5. Full Kallflyt
Artikkelen viser gjennom et kodeeksempel for værsøk hele prosessen: fra brukerens spørsmål, første modellkall med verktøydefinisjon, modellen returnerer tool_calls, kode utfører funksjonen, resultatet settes inn i samtalehistorikken som en role: "tool"-melding, til slutt genererer modellen det endelige svaret på naturlig språk.
6. Avanserte Funksjoner - Parallell Verktøykall
Når brukerens spørsmål krever samarbeid mellom flere verktøy (f.eks. samtidig spørre om vær i flere byer), kan modellen i én respons sende en liste med flere tool_calls. Vertskoden kan utføre disse kallene parallelt, og deretter returnere alle resultatene samlet til modellen for integrering, noe som forbedrer effektiviteten.
评论
暂无已展示的评论。
发表评论(匿名)