開始使用免費開始

整合可呼叫函式的工具

你已經使用 convert_timezone() 建立了一個時區轉換工具,並依照 OpenAI 的工具格式完成定義。現在你需要實作完整的函式呼叫流程。client 已初始化,而 tools 清單中也包含了你的時區轉換工具定義。convert_timezone() 也可直接使用。

系統已建立一個 messages 清單,內含一個需要從你的 convert_timezone 工具取得時區資訊的使用者輸入。

本練習屬於課程

使用 OpenAI Responses API

檢視課程

練習說明

  • 迴圈遍歷第一次 Responses 請求的回應輸出項目,檢查是否包含對 'convert_timezone''function_call';若有,從該項目解包引數並呼叫 convert_timezone(),將結果儲存到 timezone_result
  • 在 messages 清單中加入一則型別為 'function_call_output' 的訊息,內容為 convert_timezone() 的結果。
  • 建立最終的 Responses 請求,將包含函式結果的 messages 傳入,並同樣傳入 tools 清單。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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.4-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.4-mini", input=____, tools=____)
print(response.output_text)
編輯並執行程式碼