Function Calling und Tool-Nutzung mit LLMs
Tools als JSON-Schema definieren, tool_calls in der Antwort verarbeiten, Ergebnisse ausführen und zurückgeben.
Function Calling und Tool-Nutzung mit LLMs ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was ist Function Calling?
Function Calling (auch Tool-Nutzung genannt) ermöglicht es einem LLM, anzufordern, dass Ihr Code eine Funktion ausführt. Das Modell führt selbst nichts aus, sondern gibt eine strukturierte Anfrage zurück, die besagt: „Rufen Sie diese Funktion mit diesen Argumenten auf.“ Ihr Programm führt sie aus und übergibt das Ergebnis zurück.
So können LLMs aktuelle Daten abrufen, Berechnungen durchführen oder echte Aktionen auslösen.
Ein Tool beschreiben
Sie übergeben dem Modell eine Liste von Tools. Jedes Tool hat einen name, eine description und parameters, die als JSON Schema definiert sind. Die Beschreibung ist entscheidend, weil das Modell anhand ihrer entscheidet, wann das Tool verwendet werden soll.
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"}
},
"required": ["city"]
}
}
}]JSON Schema für Parameter
Das Feld parameters verwendet das standardisierte JSON Schema. Sie deklarieren ein Objekt mit properties, die jeweils einen type und eine Beschreibung enthalten, sowie ein required-Array. Dadurch weiß das Modell genau, welche Argumente es erzeugen soll.
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"},
"units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["city"]
}Tools an das Modell übergeben
Senden Sie die tools-Liste an chat.completions.create(). Das Modell kann nun abhängig von der Anfrage des Benutzers entweder mit Text oder mit einem Tool-Aufruf antworten.
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Weather in Tokyo?"}],
tools=tools
)Einen Tool-Aufruf erkennen
Wenn das Modell ein Tool verwenden möchte, enthält die Antwort message.tool_calls statt normalen Texts. Prüfen Sie, ob diese Liste vorhanden ist, bevor Sie von einer einfachen Textantwort ausgehen.
msg = response.choices[0].message
if msg.tool_calls:
print("Model wants to call a tool")
else:
print(msg.content)Die Argumente analysieren
Jeder Tool-Aufruf enthält function.name und function.arguments. Die Argumente werden als JSON-String übergeben. Analysieren Sie sie daher vor der Verwendung mit json.loads().
import json
call = msg.tool_calls[0]
name = call.function.name
args = json.loads(call.function.arguments)
print(name, args) # get_weather {"city": "Tokyo"}Die Funktion ausführen
Führen Sie nun IHRE tatsächliche Python-Funktion mit den analysierten Argumenten aus. Das LLM hat nur entschieden, was aufgerufen werden soll; die eigentliche Arbeit erledigt Ihr Code.
def get_weather(city):
return {"city": city, "temp_c": 18, "condition": "Cloudy"}
result = get_weather(**args)Das Ergebnis an das Modell zurückgeben
Senden Sie das Ergebnis zurück, damit das Modell eine Antwort in natürlicher Sprache formulieren kann. Hängen Sie zuerst die ursprüngliche Nachricht des Assistenten und anschließend eine Nachricht mit der Rolle tool an, die das Ergebnis und die passende tool_call_id enthält.
messages.append(msg) # the assistant tool-call message
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result)
})Die abschließende Antwort erzeugen
Rufen Sie das Modell erneut mit den aktualisierten messages auf. Da es nun das Tool-Ergebnis kennt, erzeugt es eine verständliche abschließende Antwort für den Benutzer.
final = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools
)
print(final.choices[0].message.content)Der vollständige Tool-Use-Ablauf
Der vollständige Ablauf: (1) Tools senden, (2) das Modell gibt einen Tool-Aufruf zurück, (3) Argumente analysieren, (4) die Funktion ausführen, (5) das Ergebnis als Tool-Nachricht zurückgeben, (6) das Modell formuliert die Antwort. Ein Modell kann vor dem Abschluss mehrere Tool-Aufrufe anfordern. Wiederholen Sie den Ablauf daher, bis tool_calls leer ist.
Die Tool-Auswahl steuern
Verwenden Sie den Parameter tool_choice, um das Verhalten zu steuern. "auto" (Standard) überlässt die Entscheidung dem Modell, "none" verbietet Tools, und die Übergabe eines bestimmten Tool-Namens erzwingt genau diese Funktion. Das ist nützlich, wenn Sie eine strukturierte Ausgabe garantieren müssen.
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools,
tool_choice={"type": "function", "function": {"name": "get_weather"}}
)Kurze Überprüfung
Testen Sie Ihr Verständnis der Tool-Nutzung.
Rückblick: Function Calling
Sie haben Tools mit einem Namen, einer Beschreibung und Parametern nach JSON Schema definiert und sie an das Modell übergeben. Sie haben tool_calls erkannt, function.arguments mit json.loads() analysiert, Ihre echte Funktion ausgeführt und das Ergebnis als Nachricht mit der Rolle tool und der passenden tool_call_id zurückgegeben.
Ein abschließender Modellaufruf verwandelt das rohe Ergebnis in eine natürliche Antwort und schließt damit den Tool-Use-Ablauf ab.
Häufig gestellte Fragen
Ist die Lektion „Function Calling und Tool-Nutzung mit LLMs“ kostenlos?
Ja — der vollständige Text von „Function Calling und Tool-Nutzung mit LLMs“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Function Calling und Tool-Nutzung mit LLMs“?
Tools als JSON-Schema definieren, tool_calls in der Antwort verarbeiten, Ergebnisse ausführen und zurückgeben. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Function Calling und Tool-Nutzung mit LLMs“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- OpenAI API: chat.completions und Streaming
- Anthropic Claude API in Python
- Function Calling und Tool-Nutzung mit LLMs
- Prompt Engineering für produktive LLM-Apps