Function Calling – Technische Zusammenfassung
Function Calling – Technische Zusammenfassung
1. Definition
Function Calling ist ein Mechanismus, der es Entwicklern ermöglicht, über ein JSON-Schema verfügbare externe Werkzeuge (z. B. APIs) für ein großes Sprachmodell (LLM) zu beschreiben. Wenn das Modell entscheidet, dass ein Werkzeug zur Beantwortung einer Benutzerfrage erforderlich ist, gibt es strukturierte tool_calls-JSON-Daten aus, die den aufzurufenden Funktionsnamen und die Parameter angeben. Das Hostprogramm analysiert und führt diesen Aufruf aus, übergibt das Ergebnis an das Modell, das dann die endgültige Antwort generiert.
2. Kernprinzip und gelöste Probleme
- Wesen: Ein Kreislauf aus „zwei Gesprächsrunden + Zwischenausführung“. In der ersten Runde trifft das Modell eine Entscheidung und gibt eine Tool-Aufforderung aus; der Code führt das Tool in der Mitte aus; in der zweiten Runde generiert das Modell basierend auf dem Ausführungsergebnis die endgültige Antwort.
- Gelöste Probleme: Es löst das Problem, dass früher bei der Aufforderung des Modells zur Nutzung von Tools eine instabile, fehleranfällige Verarbeitung natürlicher Sprache (if/else-Entscheidungen) erforderlich war. Durch strukturierte Ausgabe werden Standardisierung und Genauigkeit verbessert.
3. Aufgabenverteilung (analog zur Aufgaben Delegation)
- Entwickler (HR): Definiert Werkzeuge, erstellt JSON-Schema mit Beschreibung der Funktion, Parameter usw.
- LLM-Modell (Manager): Versteht die Werkzeugbeschreibung, entscheidet, ob ein Werkzeug aufgerufen werden muss, welches und mit welchen Parametern, und gibt eine strukturierte Aufrufanforderung (
tool_calls) aus. Das Modell trifft nur Entscheidungen und generiert Text, führt aber keinen Code selbst aus. - Ausführer/Hostcode (Mitarbeiter): Analysiert die
tool_calls-Anforderung des Modells, führt die entsprechende Funktion oder den API-Aufruf tatsächlich aus und gibt das Ergebnis zurück.
4. Werkzeugdefinition (JSON-Schema)
Das Schema ist die „Bedienungsanleitung“ des Werkzeugs. Wichtige Informationen umfassen:
- name: Eindeutige Kennung des Werkzeugs.
- description: Von entscheidender Bedeutung, das Modell verlässt sich vollständig auf diese Beschreibung, um zu entscheiden, ob das Werkzeug aufgerufen werden soll. Je klarer und genauer die Beschreibung, desto genauer die Entscheidung des Modells.
- parameters: Definiert die erforderlichen Parameter des Werkzeugs sowie deren Typ, Beschreibung und Einschränkungen (z. B. Aufzählungswerte, ob erforderlich usw.).
5. Vollständiger Aufrufablauf
Der Artikel zeigt anhand eines Codebeispiels zur Wetterabfrage den gesamten Prozess: von der Benutzerfrage über den ersten Modellaufruf mit Werkzeugdefinition, die Rückgabe von tool_calls durch das Modell, die Ausführung der Funktion durch den Code, das Einfügen des Ergebnisses als Nachricht mit role: "tool" in den Gesprächsverlauf bis hin zur endgültigen Generierung der natürlichen Sprachantwort durch das Modell.
6. Erweiterte Funktion – Parallele Tool-Aufrufe
Wenn eine Benutzerfrage die Zusammenarbeit mehrerer Werkzeuge erfordert (z. B. gleichzeitige Abfrage des Wetters in mehreren Städten), kann das Modell in einer Antwort eine Liste mit mehreren tool_calls ausgeben. Der Hostcode kann diese Aufrufe parallel ausführen und dann alle Ergebnisse zusammen an das Modell zur Synthese zurückgeben, was die Effizienz steigert.
评论
暂无已展示的评论。
发表评论(匿名)