Anthropic API 提供兩項強大的功能,它們搭配使用時效果特別出色:Files API 與 Code Execution(程式碼執行)。雖然乍看之下它們似乎是各自獨立的功能,但將兩者結合起來,卻能為將複雜任務委派給 Claude 開啟一些非常有趣的可能性。
Files API
Files API 提供了一種處理檔案上傳的替代方式。您不必將圖片或 PDF 以 base64 資料的形式直接編碼在訊息中,而是可以事先上傳檔案,之後再參照它們。

運作方式如下:
- 使用獨立的 API 呼叫將您的檔案(圖片、PDF、文字等)上傳至 Claude
- 接收一個包含唯一檔案 ID 的檔案元資料物件
- 在未來的訊息中參照該檔案 ID,而不必包含原始檔案資料

當您想要多次參照同一個檔案,或是處理若每次請求都包含會顯得繁瑣的較大檔案時,這種方式特別有用。
Code Execution 工具
Code execution(程式碼執行)是一種伺服器端工具,不需要您提供實作。您只需在請求中包含一個預先定義的工具結構(schema),Claude 便可以選擇在隔離的 Docker 容器中執行 Python 程式碼。

程式碼執行環境的主要特性:
- 在隔離的 Docker 容器中執行
- 沒有網路存取權限(無法進行外部 API 呼叫)
- Claude 可以在單次對話中多次執行程式碼
- 結果會被擷取並由 Claude 解讀,以產生最終回應
結合 Files API 與 Code Execution
真正的強大之處在於將這些功能結合使用。由於 Docker 容器沒有網路存取權限,Files API 便成為將資料傳入與傳出執行環境的主要方式。

以下是典型的工作流程:
- 使用 Files API 上傳您的資料檔案(例如 CSV)
- 在您的訊息中包含一個帶有該檔案 ID 的容器上傳區塊(container upload block)
- 請 Claude 分析資料
- Claude 撰寫並執行程式碼以處理您的檔案
- Claude 可以產生輸出(例如圖表),供您下載
實際範例
讓我們來看一個使用串流服務資料的實際範例。這個 CSV 檔案包含使用者資訊,包括訂閱方案等級、觀看習慣,以及他們是否已流失(取消訂閱)。

首先,使用輔助函式上傳檔案:
file_metadata = upload('streaming.csv')接著建立一則訊息,其中同時包含已上傳的檔案以及分析請求:
messages = []
add_user_message(
messages,
[
{
"type": "text",
"text": """Run a detailed analysis to determine major drivers of churn.
Your final output should include at least one detailed plot summarizing your findings."""
},
{"type": "container_upload", "file_id": file_metadata.id},
],
)
chat(
messages,
tools=[{"type": "code_execution_20250522", "name": "code_execution"}]
)理解回應內容
當 Claude 使用程式碼執行時,回應中會包含多種類型的區塊:
- 文字區塊 - Claude 的分析與說明
- 伺服器工具使用區塊 - Claude 決定執行的實際程式碼
- 程式碼執行工具結果區塊 - 執行程式碼後的輸出

Claude 可能在單次回應中多次執行程式碼,逐步建構其分析。每個執行週期都包含程式碼及其結果。
下載產生的檔案
其中一項最強大的功能,是 Claude 能夠產生檔案(例如圖表或報告)並讓這些檔案可供下載。當 Claude 建立視覺化圖表時,它會被儲存在容器中,您可以使用 Files API 下載它。
請在回應中尋找 type: "code_execution_output" 的區塊——這些區塊包含產生內容的檔案 ID:
download_file("file_id_from_response")
最終結果是一份包含專業視覺化圖表的完整分析,若以人工撰寫程式碼來完成,將需要耗費大量時間。
超越資料分析
雖然資料分析是一個自然而然的應用場景,但 Files API 與程式碼執行的結合還開啟了許多其他可能性:
- 圖片處理與操作
- 文件解析與轉換
- 數學運算與建模
- 具自訂格式的報告產生
關鍵在於,您可以將複雜的運算任務委派給 Claude,同時透過 Files API 保持對輸入與輸出的控制。這創造出一種強大的工作流程,讓 Claude 成為您的程式設計助手,能夠實際執行並反覆改進解決方案。