始める無料で始める

関数呼び出しツールの統合

convert_timezone() 関数を使ってタイムゾーン変換ツールを作成し、OpenAI のツール形式で定義しました。次は関数呼び出しのワークフロー全体を実装します。client はすでに初期化済みで、tools リストには作成したタイムゾーン変換ツールの定義が入っています。convert_timezone() 関数も使用できる状態です。

messages リストが用意されており、convert_timezone ツールからタイムゾーン情報が必要なユーザー入力が含まれています。

この演習はコースの一部です

OpenAI Responses API を使いこなす

コースを見る

演習の手順

  • 最初の Responses リクエストからのレスポンス出力アイテムをループし、'convert_timezone' への 'function_call' が含まれるか確認し、見つかったらアイテムから引数をアンパックして convert_timezone() を呼び出し、その結果を timezone_result に保存します。
  • convert_timezone() の結果を含む、'function_call_output' 型のメッセージを messages リストに追加します。
  • 関数の結果を含む messages を使って最終的な Responses リクエストを作成し、再度 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)
コードを編集して実行