LoslegenKostenlos loslegen

Function-Calling-Tools integrieren

Du hast ein Tool zur Zeitzonenumrechnung mit der Funktion convert_timezone() erstellt und es im Tool-Format von OpenAI definiert. Jetzt musst du den vollständigen Function-Calling-Workflow implementieren. Der client ist bereits initialisiert, und die tools-Liste enthält die Definition deines Zeitzonen-Tools. Die Funktion convert_timezone() ist ebenfalls einsatzbereit.

Eine messages-Liste wurde begonnen und enthält eine Nutzereingabe, die die Zeitzoneninformation aus deinem convert_timezone-Tool benötigt.

Diese Übung ist Teil des Kurses

Arbeiten mit der OpenAI Responses API

Kurs anzeigen

Anleitung zur Übung

  • Durchlaufe die Response-Output-Items aus der ersten Responses-Anfrage, um zu prüfen, ob ein 'function_call' zu 'convert_timezone' enthalten ist; rufe dann convert_timezone() mit den entpackten Argumenten aus dem Item auf und speichere das Ergebnis in timezone_result.
  • Füge der Messages-Liste eine Nachricht vom Typ 'function_call_output' hinzu, die das Ergebnis von convert_timezone() enthält.
  • Erstelle die finale Responses-Anfrage mit den Messages, die das Funktionsergebnis enthalten, und übergib erneut die tools-Liste.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

messages = [{"role": "user", "content": "What time is 2:30pm on January 20th in New York in Tokyo time?"}]
response = client.responses.create(model="gpt-5-mini", input=messages, tools=tools)
messages += response.output

# Process function calls and execute the timezone conversion
for item in response.output:
    if item.type == "____":
        if item.name == "____":
            timezone_result = ____(**json.loads(item.arguments))
            
            # Append function output to messages
            messages.append({"type": "____", "call_id": item.call_id, "output": json.dumps({"convert_timezone": ____})})

# Make second API request with function results
response = client.responses.create(model="gpt-5-mini", input=____, tools=____)
print(response.output_text)
Code bearbeiten und ausführen