code_interpreter ツールを使用する

完了

code_interpreter ツールは、Python コードを生成して実行できる Python ランタイムをモデルに提供します。

code_interpreter ツールとは

code_interpreter ツールを使用すると、生成型 AI モデルは、会話中に Python コードを動的に記述して実行できます。 モデルでは、単にコードやアルゴリズムについて説明するのではなく、ロジックをテストし、データを処理し、コードから実際の結果を返すことができます。 これにより、モデルが思考者からドアーに変換されます。

主な機能は次のとおりです。

  • 動的な Python 実行: モデルは、サンドボックス環境で Python コードを書き込んで実行します
  • ファイル処理: ファイルのアップロード、処理、ダウンロード (CSV、JSON、画像など)
  • データ分析: 計算、統計分析、データ変換を即座に実行する
  • リアルタイム フィードバック: モデルはコードの実行結果を確認し、エラーを反復処理または修正できます
  • 複雑な問題解決: 実行可能コードを使用して数学の問題、シミュレーション、ロジック パズルに取り組む

一般的なユース ケース

ユースケース(事例)
データ分析 CSV ファイルを解析し、概要統計情報を生成する
数学と物理学 微分方程式を解く、または物理シナリオをシミュレートする
ファイル変換 データ形式間の変換 (JSON ↔ CSV など)
プロトタイピング 正式な実装の前にアルゴリズムとアイデアをテストする

簡単な例

OpenAI Responses API でcode_interpreterを使用する方法を次に示します。

from openai import OpenAI

client = OpenAI(
    base_url={openai_endpoint},
    api_key={auth_key_or_token}
)

# Get response using the code_interpreter tool
response = client.responses.create(
    model={model_deployment},
    instructions="You are an AI assistant that provides information. Use the python tool to run code for math problems.",
    input="What is the square root of 16?",
    tools=[{"type": "code_interpreter",
            "container": {"type": "auto"}}]
)
print(response.output_text)

このコードからの出力は次のようになります。

The square root of 16 is 4.

さらに重要なのは、モデルによって返される 応答 オブジェクトの詳細を調べると、次のように動的に生成された Python コードを使用して結果が計算され、モデルに返されたことが明らかになります。

import math

# Calculate the square root of 16
square_root = math.sqrt(16)
square_root

code_interpreter ツールのしくみ

code_interpreter ツールを使用する一般的なプロセスは次のとおりです。

  1. 要求を送信する: ツール配列にcode_interpreterを含めます。
  2. モデルはタスクを分析します。モデルは、コードの実行が必要かどうかを判断します。
  3. モデルによってコードが生成されます。モデルは、タスクを実行するために Python コードを書き込みます。
  4. コードの実行: コードは、共通ライブラリ ( pandasnumpymath など) にアクセスできるサンドボックス環境で実行されます。
  5. 返された結果: モデルは出力を受け取り、応答に組み込みます。

ベスト プラクティス

  • 具体的な情報: データ形式と予想される出力を明確に記述します。 多くのモデルでは、内部で python ツール という名前を使ってcode_interpreterツールを識別しているため、指示にはこの名称を使用してください。
  • コンテキストを指定する: プロンプトに関連するドメインの知識を含める
  • 結果を検証する: 運用環境で使用する前に、AI によって生成されたコードの正確性を常に確認する
  • コストの監視: コード実行によってトークンが追加されます。複雑な操作では、より多くのリソースが使用される可能性があります
  • ライブラリを活用する: pandas、numpy、matplotlib などの一般的なパッケージがプレインストールされています
  • エラー処理: モデルでエラーが表示され、自動的に修正が試みられます

知っておくべき制限事項

  • 実行は、外部ネットワーク アクセスなしで サンドボックス環境 で実行されます
  • 一部のライブラリは使用できない場合があります。標準ライブラリが失敗した場合にモデルに通知する
  • 実行時間の長い操作にタイムアウト制限が適用される
  • メモリ制約を使用してコードを実行します。大量のデータセットでは、ストリーミングまたはチャンクが必要になる場合があります