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
Functionunterstü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:
- Anfrage senden: Schicke eine Chat-Anfrage mit Tools-Definitionen an das Modell.
- Modellbewertung: Das Modell entscheidet anhand der Gesprächsinhalte, ob ein Toolaufruf erforderlich ist
- Zurückkehrende Tool Calls: Falls ein Aufruf benötigt wird, gibt das Modell den Namen der aufzurufenden Funktion sowie die Parameter zurück.
- Funktionsausführung: Der Entwickler führt den tatsächlichen Funktionsaufruf basierend auf den zurückgegebenen Informationen durch
- Ergebnis zurückgeben: Das Ergebnis der Funktionenausführung wird als neue Nachricht an das Modell gesendet
- 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.
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.
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.
4. Nachrichten erstellen
Erstellen Sie eine Benutzernachricht, um Fragen zu Paketen zu stellen.
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)
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
Werkzeuggesetzt - Inhalt: Das Ergebnis der Funktionsausführung
- ToolCallResults: Fügen Sie ein
FAIChatPlus_ChatRequestToolCallResulthinzu, legen Sie die Id (mit der zuvor verwendeten Tool Call Id), FunctionName und FunctionResult fest
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.
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.
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:
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.
Visitors. Total Visits. Page Visits.
Dieser Beitrag wurde mit ChatGPT übersetzt. Bitte geben Sie Ihr Feedback unter FeedbackWeisen Sie auf etwaige Auslassungen hin.








