Skip to content
Blogserie_KI_RZ_4
Gioele Monopoli17. September 20243 min read

AI in der Praxis: ChatGPT als Agent

ChatGPT hat zahlreiche Möglichkeiten eröffnet, Texte basierend auf Eingaben zu generieren. Dennoch erkennen wir oft seine Grenzen aufgrund seiner Trainingsdaten und seines internen Wissens, beispielsweise bei der Durchführung arithmetischer Berechnungen oder der Bereitstellung von Echtzeitinformationen wie dem Wetter oder den heutigen Nachrichten. Glücklicherweise können wir die Fähigkeiten von ChatGPT durch die Integration externer Funktionen erweitern. Diese Möglichkeit ist als Function Calling bekannt.

Was ist Function Calling?

Function Calling ermöglicht es, vordefinierte Funktionen basierend auf den erhaltenen Aufforderungen auszuführen. Durch die Aktivierung von Function Calling kann ChatGPT mit externen Systemen interagieren, Echtzeitinformationen abrufen und komplexe Operationen durchführen, was es zu einem leistungsstarken Werkzeug für verschiedene Anwendungen macht.

Wie es funktioniert

Der Prozess des Aufrufs von Funktionen innerhalb von ChatGPT umfasst mehrere Schritte:

Predefined Functions: Diese Funktionen werden vor der Interaktion festgelegt und sind so konzipiert, dass sie spezifische Aufgaben ausführen. Zum Beispiel könnten wir eine Funktion haben, die eine Multiplikation durchführt:
def multiply(a: float, b: float) -> float:
   """Multiply two numbers and returns the product"""
   return a * b

multiply_tool = FunctionTool.from_defaults(fn=multiply)

Recognition: Wenn ChatGPT auf eine Aufforderung stösst, die die Kriterien für einen Funktionsaufruf erfüllt, erkennt es die Notwendigkeit, diese Funktion auszuführen. Zum Beispiel könnte ein Benutzer fragen: „What is 150 times 30?“

response = agent.chat("What is 150 times 30?")

Execution: Mit dem von ChatGPT gelieferten Argument führt das System dann die Funktion aus, was den Zugriff auf externe Datenbanken, die Durchführung von Berechnungen oder die Interaktion mit anderer Software beinhalten kann. In diesem Fall erkennt ChatGPT korrekt, dass es die multiply()-Funktion aufrufen sollte.

=== Calling Function ===
Calling function: multiply with args: {"a": 150, "b": 30}
Got output: 4500
========================

 

Response: Die Ausgabe der Funktion wird in die Antwort von GPT integriert und liefert dem Benutzer die gewünschten Informationen oder führt die angeforderte Aktion aus. In unserem Beispiel wird die gefragte Berechnung geliefert.
150 times 30 is equal to 4500.

 

Verwandlung in einen Agenten

Ein Agent im Kontext von GPT bezieht sich auf das Modell, das autonom im Namen eines Benutzers Aufgaben ausführt. Dies beinhaltet das Verstehen von Benutzeranfragen, das Treffen von Entscheidungen und das Ausführen von Aufgaben ohne kontinuierlichen direkten Input. Beispiele für agentenbasierte Aufgaben umfassen das Buchen von Terminen, das Bereitstellen massgeschneiderter Empfehlungen und das Verwalten von Zeitplänen. Diese Aufgaben werden mithilfe der oben erläuterten Function Calling ausgeführt.

Kundendienst ist ein Hauptbeispiel, bei dem Agenten erstellt werden können. Agenten können Antworten automatisieren und komplexe Anfragen durch Function Calling bearbeiten, wodurch die Kundeninteraktion mit personalisierten Antworten verbessert wird.

Ein weiteres Beispiel ist der Virtuelle Assistent. Virtuelle Assistenten können verwendet werden, um Zeitpläne zu verwalten, Erinnerungen zu setzen und sich mit anderen Anwendungen und Diensten zu integrieren.

Praxisbeispiel

Erstellen wir einen Kundendienstagenten, um Benutzerinformationen zu speichern, wenn ein Benutzer ein Konto eröffnen möchte. Wir speichern die Daten in einer Variablen namens account_info. Die Schritte sind wie folgt:

Definieren Sie die benötigte Funktion. Wir speichern Adresse und E-Mail.

def save_address(address: str) -> str:
   """Save the address and return the address"""
   account_info["address"] = address
   return address

save_address_tool = FunctionTool.from_defaults(fn=save_address)

def save_email(email: str) -> str:
   """Save the email and return the email"""
   account_info["email"] = email
   return email

save_email_tool = FunctionTool.from_defaults(fn=save_email)

 

Wir starten den Agenten.
=> agent.chat("I would like to create an account")

"""Agent: Sure! To create an account, I will need some information from you. Please provide me with the following details:

1. Your address
2. Your email address

Once you provide this information, I will proceed with creating your account."""

=> agent.chat("my address is 1234 Main St, New York, NY 10001")

"""Agent: Thank you for providing your address. Next, please provide me with your email address to complete the account creation process."""

=> agent.chat("my email is test1@email.com. Is it ok?")

"""Agent: Thank you for providing your email address. Your account has been successfully created with the following details:

- Address: 1234 Main St, New York, NY 10001
- Email: test1@email.com

 

Aufrufen von account_info, um zu sehen, ob die Informationen korrekt gespeichert wurden.
account_info

"""{'address': '1234 Main St, New York, NY 10001',
         'email': 'test1@email.com'}"""

Und das war's. Sie haben jetzt die Kontoinformationen, die Sie in Ihrer Datenbank speichern und weiterverwenden können. Sie haben einen echten Anwendungsfall gesehen, bei dem KI-Agenten eingesetzt werden können

Kontaktieren Sie uns

Interessiert daran, wie KI-Agenten Ihre automatisierte Aufgabenbearbeitung verbessern können? Schreiben Sie uns für eine Beratung, wie wir KI-Lösungen auf Ihre individuellen Geschäftsanforderungen zuschneiden können.

Kontakt

 

VERWANDTE ARTIKEL