全部產品
Search
文件中心

Function Compute:流式輸出

更新時間:Aug 16, 2026

Code Interpreter 支援在代碼執行期間接收 stdout、stderr 和富結果回調。流式輸出適合前端即時展示、服務端日誌採集和長時間分析任務進度反饋。

stdout 和 stderr

JavaScript / TypeScript 使用 onStdout 和 onStderr:

import { Sandbox } from '@e2b/code-interpreter'

await sandbox.runCode(
  `
import sys
import time

print("start")
time.sleep(3)
print("warning", file=sys.stderr)
time.sleep(3)
print("done")
`,
  {
    onStdout: (data) => console.log("stdout:", data),
    onStderr: (data) => console.error("stderr:", data),
    onError: (error) => console.error("error:", error),
  },
);

Python SDK 使用 on_stdout 和 on_stderr。回調參數是輸出片段,通常包含內容、是否為錯誤輸出和時間戳記。不要假設一次回調對應一整行業務日誌。

from e2b_code_interpreter import Sandbox

sandbox.run_code(
    """
import sys
import time

print("start")
time.sleep(3)
print("warning", file=sys.stderr)
time.sleep(3)
print("done")
""",
    on_stdout=lambda data: print("stdout:", data),
    on_stderr=lambda data: print("stderr:", data),
    on_error=lambda error: print("error:", error),
)

富結果

表格、文本等富結果也可以通過回調提前接收。圖表請寫入檔案後通過 Filesystem 取回。

import { Sandbox } from '@e2b/code-interpreter'

await sandbox.runCode(
  `
import pandas as pd

df = pd.DataFrame({"value": [1, 2, 3]})
df
`,
  {
    onResult: (result) => console.log("result:", result),
  },
);

Python SDK 使用對應的 snake_case 回調參數,具體參數名以當前 SDK 版本為準。

from e2b_code_interpreter import Sandbox

sandbox.run_code(
    """
import pandas as pd

df = pd.DataFrame({"value": [1, 2, 3]})
df
""",
    on_result=lambda result: print("result:", result),
)

使用建議

  • 流式回調用於使用者體驗和日誌觀察,業務成功與否仍應以最終 execution.error 和返回結果判斷。

  • 日誌量較大時,應在業務側截斷、採樣或落盤,避免把完整輸出儲存在記憶體中。

  • 前端展示流式輸出時,應區分 stdout、stderr、富結果和最終狀態。

  • 如果雲沙箱當前模板或 SDK 未觸發富結果回調,可回退為等待最終 execution.results。