使用code_interpreter工具
code_interpreter工具為你的模型提供一個 Python 執行時,讓它能產生並執行 Python 程式碼。
什麼是code_interpreter工具?
code_interpreter工具讓生成式 AI 模型能在對話中動態撰寫並執行 Python 程式碼。 模型不僅僅討論程式碼或演算法,還能測試邏輯、處理資料,並從程式碼中回傳實際結果。 這會讓模型從思考者轉變為行動者。
主要功能包括:
- 動態 Python 執行:模型在沙盒環境中撰寫並執行 Python 程式碼
- 檔案處理:上傳、處理及下載檔案(CSV、JSON、圖片等)
- 資料分析:即時執行計算、統計分析及資料轉換
- 即時回饋:模型能看到程式碼執行結果,並能迭代或修正錯誤
- 複雜問題解決:透過可執行程式碼解決數學問題、模擬與邏輯謎題
常見使用案例
| 用例 | 範例 |
|---|---|
| 資料分析 | 解析 CSV 檔案並產生統計摘要 |
| 數學與物理 | 解微分方程或模擬物理情境 |
| 檔案轉換 | 在資料格式間轉換(如 JSON ↔ CSV 等) |
| 原型製作 | 正式實作前的測試演算法與想法 |
一個簡單的例子
以下是如何搭配 OpenAI 回應 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 生成的程式碼是否正確
- 監控成本:程式碼執行會增加標記;複雜操作可能耗費更多資源
- Leverage 函式庫:常見的套件如 pandas、numpy 和 matplotlib 已預先安裝
- 錯誤處理:模型能偵測錯誤並嘗試自動修正
需要了解的限制
- 執行在沙盒環境中,沒有外部網路存取
- 部分函式庫可能無法使用;如果標準函式庫失效,請通知模型
- 逾時限制 適用於長期執行的操作
- 程式碼 受限於記憶體——龐大的資料集可能需要串流或分塊