Code Interpreter 通过 run_code() / runCode() 在 Sandbox 内执行代码。Python 是默认语言,其他语言通过 language 参数选择。
创建 Sandbox
使用 code-interpreter-v1 模板创建 Sandbox:
import os
from e2b_code_interpreter import Sandbox
sandbox = Sandbox.create(
template="code-interpreter-v1",
api_key=os.environ["E2B_API_KEY"],
api_url=os.environ["E2B_API_URL"],
domain=os.environ["E2B_DOMAIN"],
)TypeScript 示例:
import { Sandbox } from "@e2b/code-interpreter";
const sandbox = await Sandbox.create("code-interpreter-v1", {
apiKey: process.env.E2B_API_KEY,
apiUrl: process.env.E2B_API_URL,
domain: process.env.E2B_DOMAIN,
});执行 Python 代码
execution = sandbox.run_code("""
import pandas as pd
df = pd.DataFrame({"value": [1, 2, 3]})
print(df)
df["value"].sum()
""")
stdout = "".join(execution.logs.stdout or [])
print(stdout.strip())
print(execution.text)TypeScript 示例:
const execution = await sandbox.runCode(`
import pandas as pd
df = pd.DataFrame({"value": [1, 2, 3]})
print(df)
df["value"].sum()
`);
const stdout = execution.logs.stdout.join("");
console.log(stdout.trim());
console.log(execution.text);print() 写入 stdout;最后一个裸表达式写入 execution.text,并可能在 execution.results 中生成结构化结果。
设置超时
长时间任务应显式设置执行超时和请求超时:
execution = sandbox.run_code(
"import time; time.sleep(5); 42",
timeout=30,
request_timeout=60,
)TypeScript 示例:
const execution = await sandbox.runCode(
"import time; time.sleep(5); 42",
{
timeoutMs: 30_000,
requestTimeoutMs: 60_000,
},
);timeout 限制 Sandbox 内代码执行时长;request_timeout 限制 SDK 请求等待时长。具体参数名以当前语言 SDK 为准。
执行其他语言
云沙箱 Code Interpreter 支持通过 language 参数执行 JavaScript、TypeScript 和 Bash;不支持 Java 和 R。生产接入前建议先用最小代码验证目标语言。
execution = sandbox.run_code(
'console.log("hello from js")',
language="javascript",
)TypeScript 示例:
const execution = await sandbox.runCode('console.log("hello from js")', {
language: "javascript",
});更多语言示例参见支持语言。
输出行为
execution.logs.stdout/execution.logs.stderr返回标准输出和标准错误。stdout/stderr 片段包含时间戳。
execution.execution_count/execution.executionCount表示当前上下文内的执行序号。execution.text返回最后一个裸表达式的文本展示。execution.results返回富结果,例如文本和表格。图表请写入文件后通过 Filesystem 取回。execution.error返回运行时报错。
该文章对您有帮助吗?