跳至主要内容

Python 沙箱

每個對話都擁有一個獨立的 Python 沙箱容器。模型在回答過程中可以自主編寫並執行 Python 程式碼:分析你上傳的資料、繪製圖表、處理表格,甚至生成可下載的 PDF / PPTX / DOCX / XLSX 文件。沙箱與聊天並行執行,檔案在整個對話生命週期內持久儲存。

本頁講使用者可見的行為;沙箱服務本身的部署見 沙箱部署

模型何時使用沙箱

你不需要任何特殊操作,直接用自然語言提需求即可。模型在遇到下列任務時會自行呼叫程式碼執行工具:

  • 數學計算、統計分析;
  • 讀取並分析你上傳的 CSV / Excel / 資料檔案;
  • 繪製圖表(matplotlib 等,支援中文字型);
  • 生成可下載檔案(報告、幻燈片、表格,見下文「文件生成」);
  • 多步驟資料流水線(先看資料結構,再計算,再產出檔案)。

一個典型的單條訊息工作流:

你:"分析 data.csv,生成柱狀圖,再製作一份包含該圖表的幻燈片。"

模型在同一輪內依次執行:
python_execute 讀取 /workspace/uploads/data.csv,輸出分析結果
image_generate 渲染柱狀圖,產物自動存入工作區
python_execute 用 python-pptx 把圖表嵌入 slide.pptx
幻燈片以下載卡片出現在回覆末尾

檔案如何進入沙箱

每次程式碼執行前,系統自動把以下內容暫存到沙箱的 /workspace/uploads/ 目錄,模型可以直接按路徑讀取:

內容說明
本對話中你上傳的所有檔案表格、CSV、PDF、圖片等,單個最大 20 MB
本對話中生成的所有圖片產物例如上一步 image_generate 畫出的圖
你有許可權使用的技能資產位於 /workspace/skills/<name>/,如文件模板

因此「上傳檔案、讓模型生成圖、再把圖塞進文件」這類跨工具流水線不需要你做任何中間操作。

執行過程視覺化

程式碼執行以工具呼叫行的形式出現在回覆上方的思考過程面板中(面板互動詳見 對話與模型):

  • 行首狀態點:執行中為鼠尾草綠脈衝點,完成為綠色對勾,失敗為紅色警示三角;
  • 行尾是即時耗時計數,執行中每秒跳動,結束後定格總時長;
  • 點選該行展開:上方是模型編寫的完整 Python 程式碼(等寬字型、可滾動),下方是終端樣式的執行輸出(stdout / stderr)。

長時間的沙箱執行不會表現為空白等待,你始終能看到它在跑、跑了多久、在執行什麼程式碼。

產物:圖表、檔案與資料

寫入沙箱 /workspace/outputs/ 目錄的檔案會成為產物(artifact),在本輪迴復中流式回傳:

產物型別展示方式
圖片(PNG 等)直接內聯顯示在回覆中,點選在新標籤頁檢視原圖
其他檔案(PDF / PPTX / DOCX / XLSX / CSV 等)以帶檔名的下載卡片出現在回覆末尾,點選即下載

產物永久附著在這條訊息上:重新整理頁面、切換分支、分享對話後仍然可以下載。

文件生成(PDF / PPTX / DOCX / XLSX)

沙箱預裝了完整的文件生成工具鏈,直接向模型提出「生成一份 PDF 報告 / 做一份 PPT / 匯出 Excel」即可:

格式生成方式產出特性
PDF模型編寫帶樣式的 HTML/CSS 後轉換排版可控、文字可選中,適合報告 / 簡歷 / 合同
PPTX(視覺優先)每頁以 HTML 設計後截圖,再合成幻燈片版式與設計稿一致,頁面為整頁圖片,文字不可再編輯
PPTX(可編輯)程式設計式排版或填充模板文字可編輯;配合管理員提供的模板技能效果更佳
DOCX程式設計式生成或模板填充文字可編輯
XLSX程式設計式生成支援公式、樣式與資料校驗
  • 支援視覺能力的模型會在生成後自檢頁面截圖(文字溢位、重疊、截斷),發現問題自動修改再產出,質量明顯更好;不支援視覺的模型一次成型。
  • 沙箱內建 CJK 字型,圖表與文件中的中文正常顯示。
  • 管理員可以把「文件模板 + 工作流說明」打包成技能,模型生成文件時自動載入,你會在工具呼叫行裡看到 use_skill 步驟。

會話工作區:跨輪持久

沙箱是有狀態的計算環境,以對話為單位:

  • /workspace 下的檔案在多次執行之間、多輪訊息之間都保留:上一輪寫出的中間資料、安裝的第三方包,後續訊息可以直接接著用;
  • 會話中途切換模型,檔案仍然在:沙箱歸平臺管理,與具體廠商無關;
  • 每次程式碼執行是獨立程序,變數不跨執行保留,跨步驟傳遞資料請讓模型落盤為檔案(模型自己知道這一點);
  • 沙箱容器閒置一段時間(預設 30 分鐘,管理員可調)後被回收,工作區自動歸檔;下次執行時自動恢復,對你完全透明
提示

管理員可以在後臺的沙箱檢查器(/admin/sandbox)瀏覽與清理任意對話的工作區檔案,排查磁碟佔用問題。

超時與資源限制

限制項預設值說明
單次執行超時120 秒超時強制終止本次執行。管理員可在後臺「工具」頁調整,最高可配到 10 分鐘
文本輸出截斷後回傳超長的 stdout/stderr 會被截斷,避免灌爆模型上下文
單個產物檔案20 MB超限的檔案不會作為產物回傳
單輪呼叫次數16 次一條訊息內模型最多執行 16 次 Python(深度研究模式為 8 次)
CPU / 記憶體容器級限額由部署方配置,防止單對話佔滿宿主機

網路訪問

沙箱容器預設與公網隔離(無網路),這是安全基線:模型程式碼不能外發資料、不能訪問內網。

  • 需要聯網獲取的內容,由平臺的其他工具代勞:web_fetch 抓網頁、fetch_image 把公網圖片下載進 /workspace/uploads/ 供程式碼使用;
  • 能否 pip install 第三方包取決於部署方是否配置了內網 PyPI 映象白名單;沙箱映象已預裝 pandas、numpy、scipy、scikit-learn、matplotlib、openpyxl 等常用資料科學棧,大多數任務開箱即用。

失敗與自動重試

  • 容器被回收後執行:系統檢測到會話失效時,自動重建沙箱、重新暫存所有檔案、透明重試,你不會看到任何錯誤;
  • 程式碼本身報錯:異常與 stderr 會回傳給模型,模型通常會修改程式碼自行重試(在單輪次數預算內),你可以在思考過程面板裡看到每一次嘗試;
  • 執行超時:該次執行被強殺並向模型報告,模型可拆小任務重試。

未配置沙箱時

  • 管理員未配置沙箱服務地址時,程式碼執行工具進入安全模式,只能做簡單算術,適合演示與開發除錯;完整能力需要部署沙箱 sidecar,見 沙箱部署
  • 與服務端沙箱互補,AI 回覆中的 Python 程式碼塊右上角有「執行」按鈕,由瀏覽器內的 Pyodide 引擎執行:即點即跑、零後端依賴,輸出按行流式顯示,matplotlib 圖表內聯展示,支援「停止」與超時保護。首次執行需從 CDN 載入引擎(約 12 MB),之後常駐。該路徑同樣預設禁止網路訪問,適合快速驗證模型給出的程式碼片段。