Funktion Calling

Funktionsaufruf ermöglicht es Sprachmodellen, externe Tools zu verwenden, indem strukturierte Ausgänge generiert werden, die Funktionsaufrufe angeben und es ihnen ermöglichen, mit APIs und anderen Systemen zu interagieren.

Funktionsaufrufe sind eine Technik, die es großen Sprachmodellen (LLMs) ermöglicht, mit externen Werkzeugen und APIs zu interagieren. Anstatt einfach nur Text zu generieren, wird das LLM darauf trainiert, strukturierte Daten, wie z.B. JSON, auszugeben, die eine aufzurufende Funktion und ihre Argumente spezifizieren. Dies ermöglicht es dem LLM, Aufgaben zu delegieren, Informationen abzurufen und Aktionen auszuführen, die über seine inhärenten Textgenerierungsfähigkeiten hinausgehen. Der Prozess beinhaltet typischerweise die Definition einer Reihe von Funktionen mit Beschreibungen und Eingabe-/Ausgabeschemata, die das LLM dann verwenden kann, um entsprechende Aufrufe zu generieren. Dies erweitert den Nutzen von LLMs und ermöglicht ihre Integration in Workflows und Anwendungen, die externe Daten oder Aktionen erfordern.

        graph LR
  Center["Funktion Calling"]:::main
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Rel_api["api"]:::related -.-> Center
  click Rel_api "/terms/api"
  Rel_chain_of_thought["chain-of-thought"]:::related -.-> Center
  click Rel_chain_of_thought "/terms/chain-of-thought"
  Rel_function["function"]:::related -.-> Center
  click Rel_function "/terms/function"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Wissenstest

1 / 3

🧒 Erkläre es wie einem 5-Jährigen

Stell dir vor, du bittest einen superklugen Assistenten, etwas in einem bestimmten Buch (der Funktion) nachzuschlagen und dir die Antwort zu sagen, anstatt einfach nur zu raten.

🤓 Expert Deep Dive

Function Calling im Kontext von LLMs stellt einen Paradigmenwechsel von reiner Textgenerierung hin zu agentenhaftem Verhalten dar und ermöglicht es LLMs, als Orchestratoren externer Rechenressourcen zu agieren. Architektonisch beruht dies auf der Fähigkeit des LLMs, strukturierte Vorhersagen zu treffen und ein vordefiniertes Schema auszugeben, das Funktionssignaturen und Argumente repräsentiert. Dieses Schema wird typischerweise vom Entwickler definiert und stellt dem LLM ein "Toolset" zur Verfügung, das es nutzen kann. Der Prozess beinhaltet, dass das LLM die natürliche Sprachabfrage des Benutzers parst, die Absicht identifiziert und diese auf verfügbare Funktionen abbildet. Anschließend generiert es ein JSON-Objekt, das dem Schema entspricht und den Funktionsnamen sowie die Argumente spezifiziert, die oft durch Entitätsextraktion und Slot Filling aus dem Prompt abgeleitet werden. Eine separate Ausführungsschicht (der "Tool Runner" oder "Agent Framework") fängt dieses JSON ab, validiert es und ruft die entsprechende externe API oder den Code auf. Der Rückgabewert des Tools wird dann wieder in den Kontext des LLMs eingespeist, was es ihm ermöglicht, eine endgültige Antwort zu synthetisieren oder weitere Funktionsaufrufe zu verketten. Dieser Mechanismus erhöht die Nützlichkeit von LLMs erheblich, indem er ihre Antworten auf Echtzeitdaten stützt und komplexe, mehrstufige Operationen ermöglicht. Zu den Kompromissen gehören potenzielle Prompt-Injection-Angriffe, die auf den Function-Calling-Mechanismus abzielen, die Komplexität der Verwaltung von Tool-Definitionen und Fehlerbehandlung sowie der Rechenaufwand der Ausführungsschleife. Sicherzustellen, dass das LLM die Absicht korrekt auf die richtige Funktion und die richtigen Argumente abbildet, insbesondere bei zahlreichen oder mehrdeutigen Tool-Namen, ist eine kritische Herausforderung. Techniken wie Few-Shot Learning und Fine-Tuning werden eingesetzt, um die Genauigkeit dieser Abbildung zu verbessern.

🔗 Verwandte Begriffe

Voraussetzungen:

📚 Quellen