Zum Inhalt

Blaupausen Kapitel - Werkzeugaufruf

Eine Werkzeugaufruf (Tool Call), auch bekannt als Funktionsaufruf (Function Calling), bezieht sich darauf, dass ein großes Modell basierend auf dem Dialoginhalt entscheiden kann, ob ein externes Werkzeug oder eine Funktion aufgerufen werden muss, um Informationen zu erhalten oder Aktionen auszuführen. Das Modell gibt den Namen der aufzurufenden Funktion und die Parameter zurück, die dann vom Entwickler ausgeführt werden, bevor das Ergebnis an das Modell zurückgegeben wird, um den Dialog fortzusetzen.

AIChatPlus unterstützt die Tool-Call-Funktion auf folgenden Plattformen:

  • OpenAI
  • Claude
  • Gemini
  • Ollama
  • CllamaServer (llama.cpp Server)

Die zentralen Konzepte

Tool-Definition

Die Definition des Tools umfasst die folgenden Schlüsselfelder:

  • Typ: Art des Tools, derzeit wird nur Function unterstützt
  • Name: Funktionsname, darf nur aus den Zeichen a-z, A-Z, 0-9, Unterstrichen oder Bindestrichen bestehen, maximale Länge 64
  • Beschreibung: Funktionsbeschreibung, das Modell nutzt diese, um zu bestimmen, wann die Funktion aufgerufen werden soll
  • Eigenschaften: Die Funktionsparameterliste, wobei jeder Parameter Attribute wie Name, Beschreibung, Typ, Erforderlich usw. enthält.

Tool Call Ablauf

Der vollständige Ablauf eines Tool Calls sieht wie folgt aus:

  1. Anfrage senden: Schicke eine Chat-Anfrage mit Tools-Definitionen an das Modell.
  2. Modellbewertung: Das Modell entscheidet anhand der Gesprächsinhalte, ob ein Toolaufruf erforderlich ist
  3. Zurückkehrende Tool Calls: Falls ein Aufruf benötigt wird, gibt das Modell den Namen der aufzurufenden Funktion sowie die Parameter zurück.
  4. Funktionsausführung: Der Entwickler führt den tatsächlichen Funktionsaufruf basierend auf den zurückgegebenen Informationen durch
  5. Ergebnis zurückgeben: Das Ergebnis der Funktionenausführung wird als neue Nachricht an das Modell gesendet
  6. Fortsetzen des Dialogs: Das Modell generiert eine endgültige Antwort basierend auf den Funktionsergebnissen.

Beispiel für OpenAI Tool Call

Im Folgenden wird OpenAI als Beispiel verwendet, um zu demonstrieren, wie die Tool Call-Funktion genutzt werden kann.

1. Definition Tool

Erstellen Sie zunächst die Tool-Definition. In diesem Beispiel definieren wir eine Funktion get_delivery_date, die das Zustelldatum eines Pakets abruft.

guide bludprint

2. Definieren der Tool-Parameter

Füge dem Tool Properties (Parameter) hinzu. In diesem Beispiel fügen wir einen Parameter order_id vom Typ string hinzu und setzen ihn als erforderlich.

guide bludprint

3. Konfiguration Optionen

Erstelle den Knoten OpenAI Chat Request Options, setze den API-Schlüssel und das Modell und verbinde das Tools-Array mit den Optionen.

guide bludprint

4. Nachrichten erstellen

Erstellen Sie eine Benutzernachricht, um Fragen zu Paketen zu stellen.

guide bludprint

5. Anfrage senden und Tool Call verarbeiten

Erstellen Sie den Knoten Send OpenAI Chat Request In World und binden Sie das Ereignis On Message Finished. Holen Sie im Ereignisrückruf das ToolCalls-Array aus der Payload.

Wenn das Modell entscheidet, ein Tool aufzurufen, ist das ToolCalls-Array nicht leer. Durchlaufen Sie das Array, um Informationen über jeden Tool-Aufruf zu erhalten:

  • Id: Die eindeutige Kennung des Tool Calls
  • Funktionsname: Der aufzurufende Funktionsname
  • FunctionArguments: Funktionsargumente (im JSON-String-Format)

guide bludprint

6. Funktion ausführen und Ergebnis zurückgeben

Führe die entsprechende Funktionslogik basierend auf dem FunctionName aus (in diesem Beispiel wird simuliert, die Lieferzeit eines Pakets abzurufen) und gib das Ergebnis dann als Nachricht vom Typ ToolCallResult an das Modell zurück.

Erstellen einer neuen Nachricht, folgende Einstellungen sind erforderlich:

  • Rolle: Auf Werkzeug gesetzt
  • Inhalt: Das Ergebnis der Funktionsausführung
  • ToolCallResults: Fügen Sie ein FAIChatPlus_ChatRequestToolCallResult hinzu, legen Sie die Id (mit der zuvor verwendeten Tool Call Id), FunctionName und FunctionResult fest

guide bludprint

7. Konversation fortsetzen

Füge die Nachricht mit dem ToolCallResult-Ergebnis zum Nachrichtenverlauf hinzu und sende die Anfrage erneut. Das Modell generiert basierend auf den zurückgegebenen Funktionen eine abschließende Antwort in natürlicher Sprache.

guide bludprint

10. Ergebnisse

Fortgeschrittene Verwendung

Mehrere Tools

Es können mehrere Tools gleichzeitig definiert werden, und das Modell wählt nach Bedarf aus, welche Funktionen aufgerufen werden sollen.

guide bludprint

Komplexe Parametertypen

Tool-Parameter unterstützen verschiedene Typen. Über die Felder ExtraJsonString oder ExtraJsonObject können komplexere Parameterdefinitionen hinzugefügt werden, wie beispielsweise Aufzählungstypen:

{"enum": ["Beijing", "HongKong"]}

guide bludprint

Andere Plattformen

Die Verwendung von Tool Call für Claude, Gemini, Ollama und CllamaServer ähnelt der von OpenAI. Sie müssen lediglich die entsprechenden Request- und Options-Knoten ersetzen. Die zentralen Datenstrukturen jeder Plattform (FAIChatPlus_ChatRequestTool, FAIChatPlus_ChatResponseToolCall usw.) sind universell.

Original: https://wiki.disenone.site/de

This post is protected by CC BY-NC-SA 4.0 agreement, should be reproduced with attribution.

Dieser Beitrag wurde mit ChatGPT übersetzt. Bitte geben Sie Ihr Feedback unter FeedbackWeisen Sie auf etwaige Auslassungen hin.