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 ツールを使用する一般的なプロセスは次のとおりです。
- 要求を送信する: ツール配列にcode_interpreterを含めます。
- モデルはタスクを分析します。モデルは、コードの実行が必要かどうかを判断します。
- モデルによってコードが生成されます。モデルは、タスクを実行するために Python コードを書き込みます。
- コードの実行: コードは、共通ライブラリ ( pandas、 numpy、 math など) にアクセスできるサンドボックス環境で実行されます。
- 返された結果: モデルは出力を受け取り、応答に組み込みます。
ベスト プラクティス
- 具体的な情報: データ形式と予想される出力を明確に記述します。 多くのモデルでは、内部で python ツール という名前を使ってcode_interpreterツールを識別しているため、指示にはこの名称を使用してください。
- コンテキストを指定する: プロンプトに関連するドメインの知識を含める
- 結果を検証する: 運用環境で使用する前に、AI によって生成されたコードの正確性を常に確認する
- コストの監視: コード実行によってトークンが追加されます。複雑な操作では、より多くのリソースが使用される可能性があります
- ライブラリを活用する: pandas、numpy、matplotlib などの一般的なパッケージがプレインストールされています
- エラー処理: モデルでエラーが表示され、自動的に修正が試みられます
知っておくべき制限事項
- 実行は、外部ネットワーク アクセスなしで サンドボックス環境 で実行されます
- 一部のライブラリは使用できない場合があります。標準ライブラリが失敗した場合にモデルに通知する
- 実行時間の長い操作にタイムアウト制限が適用される
- メモリ制約を使用してコードを実行します。大量のデータセットでは、ストリーミングまたはチャンクが必要になる場合があります