← 返回列表

Function Calling Technische Samenvatting

Function Calling Technische Samenvatting

1. Definitie

Function Calling is een mechanisme waarmee ontwikkelaars via een JSON-schema beschikbare externe tools (zoals API's) kunnen beschrijven aan een groot taalmodel (LLM). Wanneer het model besluit dat een tool moet worden aangeroepen om de vraag van de gebruiker te beantwoorden, geeft het gestructureerde tool_calls JSON-gegevens uit, met de naam van de functie en de parameters. De hostprogramma parseert en voert deze aanroep uit, geeft het resultaat terug aan het model, waarna het model het uiteindelijke antwoord genereert.

2. Kernprincipe en opgeloste problemen

  • Essentie: Een gesloten lus van "tweerondes conversatie + tussentijdse uitvoering". In de eerste ronde beslist het model en geeft het een toolaanroepverzoek; de tussentijdse code voert de tool uit; in de tweede ronde genereert het model het uiteindelijke antwoord op basis van het uitvoeringsresultaat.
  • Opgeloste problemen: Lost het probleem op dat voorheen bij het aanroepen van tools door het model afhankelijk was van onstabiele, foutgevoelige natuurlijke taalverwerking (if/else-beslissingen). Door gestructureerde uitvoer wordt standaardisatie en nauwkeurigheidsverbetering bereikt.

3. Taakverdeling (analogie van taakdelegatie)

  • Ontwikkelaar (HR): Definieert tools, schrijft JSON Schema met beschrijving van toolfunctionaliteit, parameters, enz.
  • LLM-model (Manager): Begrijpt de toolbeschrijving, beslist of een tool moet worden aangeroepen, welke tool en met welke parameters, en geeft een gestructureerd aanroepverzoek (tool_calls) uit. Het model beslist alleen en genereert tekst, voert geen code uit.
  • Uitvoerder/hostcode (Werknemer): Parseert het tool_calls-verzoek van het model, voert de bijbehorende functie of API-aanroep daadwerkelijk uit en geeft het resultaat terug.

4. Tooldefinitie (JSON Schema)

Schema is de "handleiding" van de tool, met belangrijke informatie:
- name: Unieke identificatie van de tool.
- description: Cruciaal, het model vertrouwt volledig op deze beschrijving om te beslissen of de tool moet worden aangeroepen. Hoe duidelijker en nauwkeuriger de beschrijving, hoe beter de beslissing van het model.
- parameters: Definieert de vereiste parameters van de tool en hun type, beschrijving, beperkingen (zoals opsommingswaarden, verplicht of niet, enz.).

5. Volledige aanroepprocedure

Het artikel toont aan de hand van een codevoorbeeld voor het opvragen van het weer het volledige proces: van gebruikersvraag, eerste modelaanroep met tooldefinities, model retourneert tool_calls, code voert functie uit, resultaat wordt als role: "tool"-bericht terug in de gespreksgeschiedenis geplaatst, tot het model het uiteindelijke natuurlijke taalantwoord genereert.

6. Geavanceerde functie - Parallelle toolaanroep

Wanneer de gebruikersvraag meerdere tools vereist om samen te antwoorden (bijvoorbeeld gelijktijdig het weer in meerdere steden opvragen), kan het model in één reactie een lijst met meerdere tool_calls uitvoeren. De hostcode kan deze aanroepen parallel uitvoeren en vervolgens alle resultaten tegelijk aan het model teruggeven voor synthese, wat de efficiëntie verhoogt.

评论

暂无已展示的评论。

发表评论(匿名)