Code Interpreter API
使用 LibreChat 的 Code Interpreter API 安全地执行代码并无缝管理文件
简介
LibreChat 的 Code Interpreter API 提供了一种安全且便捷的方式,通过简单的 API 接口来执行代码并管理文件。无论您是通过 LibreChat 的 Agents 使用它,还是将其直接集成到您的应用程序中,该 API 都为您提供了一个强大的沙盒环境,用于运行多种编程语言的代码。
开源
LibreChat 的 Code Interpreter 由 ClickHouse/code-interpreter 提供支持,这是一个开源(Apache 2.0)的沙盒代码执行服务。您可以自行托管该服务,并将 LibreChat 指向您自己的实例。
入门指南
- 部署 code-interpreter 服务(使用 Docker Compose 或 Helm,请参阅该仓库的 README)
- 通过
LIBRECHAT_CODE_BASEURL和LIBRECHAT_CODE_API_KEY环境变量将 LibreChat 指向它。 - 通过 LibreChat 的 Agents 或“运行代码”按钮安全地执行代码并生成文件
核心功能
支持的语言
在多种编程语言中执行代码:
- Python, Node.js (JS/TS), Go, C/C++, Java, PHP, Rust, Fortran, Rscript
无缝文件处理
- 上传文件以进行处理
- 下载生成的输出
- 安全文件管理
- 基于会话的文件组织
安全与便捷
- 安全的沙盒执行环境
- 强隔离模式(通过 NsJail 或 libkrun 实现的 microVM)
- 最终用户无需进行本地设置
- 基于会话的隔离文件存储
程序化工具调用
程序化工具调用 (Programmatic Tool Calling) 让 LibreChat Agent 能够通过 Code Interpreter 沙盒路由选定的 MCP 工具。LibreChat 不再要求模型直接调用每个工具,而是提供了一个由 Code Interpreter 支持的编排工具;生成的沙盒代码可以调用已注册的工具存根 (tool stubs)、使用循环和条件判断、处理中间结果并返回最终答案。
沙盒仍然无法获得常规的网络访问权限。工具调用通过 Code Interpreter Tool Call Server 和 LibreChat 的已注册工具映射进行中转,因此只有代理(agent)可用的工具才能被调用。
使用 API
在 LibreChat 中
LibreChat 通过以下主要方法为 API 提供了一流的支持:
-
AI Agents:在您的 agent 配置中启用 Code Interpreter,以允许其自动执行代码并处理文件。
-
手动执行:使用聊天界面中代码块内的“Run Code”按钮,如下所示:
-
程序化工具调用:启用
programmatic_tools功能并将选定的 MCP 工具标记为 Programmatic,以便智能体(agents)能够从沙盒代码中编排这些工具。

设置 API key
- 用户个人设置: 在 LibreChat 提示时输入您的 API 密钥(使用上述方法)
- 全局设置: 在项目的 .env 文件中使用
LIBRECHAT_CODE_API_KEY环境变量(为所有用户提供访问权限)
直接 API 集成
Code Interpreter API 可以通过简单的 API 密钥认证集成到任何应用程序中:
- 部署您自己的 code-interpreter 实例并创建一个 API key
- 在请求中使用
x-api-key请求头包含 API 密钥
自托管基础 URL
设置 LIBRECHAT_CODE_BASEURL 环境变量,将 LibreChat 指向您自托管的 code-interpreter 实例,并使用在该部署上生成的 API 密钥,其使用方式与上述相同。
核心功能
代码执行
- 在支持的语言中运行代码片段
- 接收 stdout/stderr 输出
- 获取执行统计信息(内存使用量、CPU 时间)
- 处理程序参数
- 访问执行状态和结果
文件操作
- 上传输入文件
- 下载生成的输出
- 当 LibreChat 可以安全地提取/渲染 Office、CSV、文本和类 PDF 的工件时,可在内联预览中生成它们。
- 列出可用文件
- 删除不必要的文件
- 管理文件会话
生成的工件预览在大小上受到限制。在 LibreChat 的 .env 中设置 FILE_PREVIEW_MAX_EXTRACT_BYTES 以更改用于内联预览提取的源文件大小限制;较大的文件仍可供下载。
局限性
- 代码无法访问网络
- 每次运行最多只能生成 10 个文件
- 资源限制(每次执行的内存、文件上传大小以及请求配额)取决于您如何配置和部署您的环境。
使用场景
- 代码测试:测试多种语言的代码片段
- 文件处理 (File Processing):以编程方式转换和分析文件
- AI Applications: 安全地执行 AI 生成的代码
- Development Tools: 构建交互式编码环境
- Objective Logic: 验证代码逻辑与正确性,提升 AI 模型性能
开源与自托管
Code Interpreter 服务在 Apache 2.0 许可证下开源,地址为 ClickHouse/code-interpreter。将代码执行作为独立服务可以保持核心 LibreChat 应用程序的轻量化:你仅在需要时部署沙盒基础设施,并且可以将其与聊天应用独立扩展。
该服务作为一组可独立扩展的组件(API 网关、沙盒工作进程和文件服务器)运行,并支持强隔离模式(NsJail 或通过 libkrun 实现的 microVM),因此您可以安全地运行不受信任的代码。有关 Docker Compose 和 Helm 的部署说明,请参阅该存储库的 README。
结论
Code Interpreter API 提供了一种安全、便捷的方式,可在隔离的沙盒中执行代码并管理文件。无论您是通过 LibreChat 的 Agents 使用它,还是将其直接集成到您的应用程序中,它都能为代码执行需求提供强大的解决方案。
有关详细的技术规范、部署指南和 API 参考,请参阅 code-interpreter repository。
#LibreChat #CodeExecution #API #Development
这篇指南怎么样?