← 返回列表

Sammanfattning av Function Calling-teknik

Sammanfattning av Function Calling-teknik

1. Definition

Function Calling är en mekanism som gör det möjligt för utvecklare att beskriva tillgängliga externa verktyg (t.ex. API:er) för stora språkmodeller (LLM) via JSON-schema. När modellen bedömer att ett verktyg behöver anropas för att besvara en användarfråga, genererar den strukturerad tool_calls JSON-data som anger funktionsnamn och parametrar. Värdprogrammet tolkar och utför anropet, returnerar resultatet till modellen, som sedan genererar det slutliga svaret.

2. Kärnprincip och problem som löses

  • Kärna: En sluten loop med "två rundor av konversation + mellanliggande exekvering". Första rundan: modellen fattar beslut och genererar en verktygsanropsbegäran; mellanliggande kod exekverar verktyget; andra rundan: modellen genererar slutligt svar baserat på exekveringsresultatet.
  • Problem som löses: Löser problemet med tidigare instabila och felbenägna naturliga språktolkningar (if/else-satser) för att få modellen att anropa verktyg, genom att använda strukturerad utdata för att standardisera och förbättra noggrannheten.

3. Ansvarfördelning (analogi med uppgiftsdelegering)

  • Utvecklare (HR): Definierar verktyg, skriver JSON-schema som beskriver verktygets funktion, parametrar etc.
  • LLM-modell (chef): Förstår verktygsbeskrivningen, fattar beslut om huruvida ett verktyg behöver anropas, vilket verktyg och parametrar, och genererar en strukturerad anropsbegäran (tool_calls). Modellen fattar endast beslut och genererar text, den exekverar inte kod.
  • Exekverare/värdkod (anställd): Tolkar modellens tool_calls-begäran, utför motsvarande funktion eller API-anrop, och returnerar resultatet.

4. Verktygsdefinition (JSON-schema)

Schema är verktygets "manual", nyckelinformation inkluderar:
- name: Verktygets unika identifierare.
- description: Avgörande, modellen förlitar sig helt på denna beskrivning för att avgöra om verktyget ska anropas. Ju tydligare och mer exakt beskrivningen är, desto bättre beslut fattar modellen.
- parameters: Definierar verktygets parametrar med deras typer, beskrivningar, begränsningar (t.ex. uppräkningsvärden, om de är obligatoriska etc.).

5. Fullständig anropsprocess

Artikeln visar genom ett kodexempel för väderfråga hela processen från användarfråga, första modellanrop med verktygsdefinition, modellens returnering av tool_calls, kodexekvering av funktion, inmatning av resultatet som meddelande med role: "tool" i konversationshistoriken, till slutlig generering av naturligt språksvar från modellen.

6. Avancerad funktion - parallella verktygsanrop

När en användarfråga kräver samverkan av flera verktyg (t.ex. samtidig väderfråga för flera städer), kan modellen i ett svar generera en lista med flera tool_calls. Värdkoden kan utföra dessa anrop parallellt och sedan returnera alla resultat till modellen för sammanställning, vilket förbättrar effektiviteten.

评论

暂无已展示的评论。

发表评论(匿名)