Wie Function Calling funktioniert
Function Calling ermöglicht adaptive Workflows, die Echtzeitdaten und strukturierte Ausgaben nutzen und so dynamischere und reaktionsfähigere Modellinteraktionen schaffen.- Anfrage mit Tools senden: Beginnen Sie, indem Sie eine Benutzeranfrage zusammen mit verfügbaren Tools senden, die im JSON-Schema definiert sind. Dieses Schema gibt Parameter für jede Funktion an.
- Das Modell verarbeitet und schlägt vor: Das Modell interpretiert die Anfrage, bewertet die Absicht und entscheidet, ob es konversationell antworten oder Funktionsaufrufe vorschlagen wird. Wenn eine Funktion aufgerufen wird, füllt es die Argumente basierend auf dem Schema aus.
- Modellantwort erhalten: Sie erhalten eine Antwort vom Modell, die einen Funktionsaufrufvorschlag enthalten kann. Führen Sie die Funktion mit den bereitgestellten Argumenten aus und geben Sie das Ergebnis zur weiteren Interaktion an das Modell zurück.
Nicht alle Modelle unterstützen Function Calling. Siehe Infercom Inference Service Modelle für die Liste der verfügbaren Modelle und deren Funktionen.
Beispielverwendung
Die folgenden Beispiele beschreiben jeden Schritt der Verwendung von Function Calling mit einem End-to-End-Beispiel nach dem letzten Schritt.Schritt 1: Funktionsschema definieren
Definieren Sie ein JSON-Schema für Ihre Funktion. Sie müssen Folgendes angeben:- Den Namen der Funktion.
- Eine Beschreibung dessen, was sie tut.
- Die Parameter, ihre Datentypen und Beschreibungen.
Example schema for getting the weather
Schritt 2: Function Calling in Ihrer Anfrage konfigurieren
Fügen Sie beim Senden einer Anfrage die Funktionsdefinition im Parametertools ein und setzen Sie tool_choice auf einen der folgenden Werte:
auto: Ermöglicht dem Modell, zwischen der Generierung einer Nachricht oder dem Aufrufen einer Funktion zu wählen. Dies ist die Standard-Tool-Auswahl, wenn das Feld nicht angegeben wird.required: Dies zwingt das Modell, einen Funktionsaufruf zu generieren. Das Modell wird dann immer eine oder mehrere Funktion(en) zum Aufrufen auswählen.- Um einen bestimmten Funktionsaufruf zu erzwingen, setzen Sie
tool_choice = {"type": "function", "function": {"name": "get_weather"}}. Dies stellt sicher, dass das Modell nur die angegebene Funktion verwendet.
Der folgende Codeblock zeigt eine gefälschte Wetterabfrage, die eine zufällige Temperatur zwischen 20°C und 50°C zurückgibt. Für genaue und Echtzeitwetterdaten verwenden Sie eine ordnungsgemäße Wetter-API.
Schritt 3: Tool-Aufrufe handhaben
Wenn das Modell sich entscheidet, eine Funktion aufzurufen, finden Sietool_calls in der Antwort. Extrahieren Sie die Funktionsaufrufdetails und führen Sie die entsprechende Funktion mit den bereitgestellten Parametern aus.
Example code
Schritt 4: Funktionsergebnisse an das Modell zurückgeben
Sobald Sie das Ergebnis berechnet haben, geben Sie es an das Modell zurück, um die Konversation fortzusetzen oder die Ausgabe zu bestätigen.Example code
Schritt 5: Beispielausgabe
Eine Beispielausgabe wird unten gezeigt.End-to-End-Beispiel
Der folgende Codeblock zeigt eine gefälschte Wetterabfrage, die eine zufällige Temperatur zwischen 20°C und 50°C zurückgibt. Für genaue und Echtzeitwetterdaten verwenden Sie eine ordnungsgemäße Wetter-API.
JSON-Schema
Sie können den Parameterresponse_format auf Ihr definiertes Schema setzen, um sicherzustellen, dass das Modell ein JSON-Objekt erzeugt, das Ihrer angegebenen Struktur entspricht.
Stellen Sie sicher, dass Sie den Parameter
"strict" auf false setzen, da true noch nicht unterstützt wird. Wenn es verfügbar ist, wird es sicherstellen, dass das Modell Ihr Funktionsschema strikt befolgt, anstatt einen Best-Effort-Versuch zu unternehmen.JSON-Modus
Sie können den Parameterresponse_format in Ihrer Anfrage auf json_object setzen, um sicherzustellen, dass das Modell ein gültiges JSON ausgibt. Falls der Modus kein gültiges JSON generieren kann, wird ein Fehler zurückgegeben.
Falls das Modell kein gültiges JSON generieren kann, erhalten Sie eine Fehlermeldung Model did not output valid JSON.
Example response