使用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工具的一般流程如下:

  1. 你發送請求:將code_interpreter納入你的工具陣列。
  2. 模型分析任務:模型判斷是否需要執行程式碼。
  3. 模型產生程式碼:模型會撰寫 Python 程式碼來完成任務。
  4. 程式碼執行:程式碼在沙盒環境中運行,並可存取常見函式庫(例如 pandasnumpymath)。
  5. 回傳結果:模型接收輸出並將其納入回應中。

最佳做法

  • 具體說明:清楚描述資料格式與預期輸出。 許多模型在內部使用名稱 Python 工具 來識別 code_interpreter 工具—因此,在您的說明中使用這種名稱。
  • 提供背景:在提示中加入相關的領域知識
  • 驗證結果:在生產環境中使用前,務必檢查 AI 生成的程式碼是否正確
  • 監控成本:程式碼執行會增加標記;複雜操作可能耗費更多資源
  • Leverage 函式庫:常見的套件如 pandas、numpy 和 matplotlib 已預先安裝
  • 錯誤處理:模型能偵測錯誤並嘗試自動修正

需要了解的限制

  • 執行在沙盒環境中,沒有外部網路存取
  • 部分函式庫可能無法使用;如果標準函式庫失效,請通知模型
  • 逾時限制 適用於長期執行的操作
  • 程式碼 受限於記憶體——龐大的資料集可能需要串流或分塊