ChatGPT官方代码解释器插件Code-Interpreter大揭秘:Code-Interpreter背后都有什么(执行环境、硬件资源、包含的Python库等)?
Code Interpreter是ChatGPT官方提供的一个插件。使用这个插件之后,ChatGPT可以通过生成Python代码来解决你的问题。在上周,Code Interperter已经完全开放给所有的付费用户,在大家使用了一段时间之后,已经有很多人通过机智的prompt来获取了Code Interpreter背后的执行环境和系统prompt信息等。本文针对这些获取的信息做一个总结,供大家参考。

Code Interpreter简介
首先,让我们来了解一下OpenAI的官方插件——Code Interpreter。这个插件是一个专业级别的代码解释器,专门用于执行Python脚本。Code Interpreter不仅继承了ChatGPT强大的代码生成能力,更通过执行代码的功能,将ChatGPT从一个简单的语言模型,扩展成了一个能够为用户解决各类问题的强大工具。
目前,Code Interpreter在数据分析和代码调试方面表现出强大的能力。它可以有效地处理和解析数据,为你的数据分析项目提供便利。此外,如果你在编程过程中遇到问题,Code Interpreter也可以帮助你定位和修复代码中的错误。
而在图像处理和视频编辑领域,Code Interpreter更是展现出其无与伦比的实用性。配合CV(计算机视觉)相关的库,它能轻松生成和编辑图像和视频。
因此,很多人评价Code Interpreter让ChatGPT强大了10倍。
但是,Code Interpterter背后到底是什么样的环境?包含了哪些Python库?每个用户有多少资源支撑Code Interpreter的执行?这些信息都隐藏在后面,我们无从得知。但是随着Code Interpreter开放给所有用户,很多人已经通过非常巧妙的prompt获得了该插件背后的信息,接下来我们总结一下。
OpenAI为Code Interpreter设置的系统Prompt
首先是来自宝玉老师的分享。根据他构造的prompt,ChatGPT回答了OpenAI给Code Interpreter设置的系统Prompt,主要内容如下:

可以看到,OpenAI为Code Interpreter设置了几个东西:首先是和其它不带Code Interpreter插件一样的信息,包括:
- 数据依然限制在2021年9月
- 今天的日期
- 对于数学公式,使用LaTeX渲染
- 对于任何从网页、插件或者其它工具来的信息,通知用户,是否需要执行
上述内容应该是所有带插件的ChatGPT都一样的内容,但是Code Interpreter多了一个关于代码执行的prompt,重点如下:
- ChatGPT可以将生成的Python代码发给Jupter notebook环境来执行
- 如果任意代码执行时间超过120秒,那就不再等待结果
- 用户的数据文件持久化在
/mnt/data
目录下 - 不允许访问互联网
- 不要发起外部网站的请求或者是API的调用
这些信息已经大致可以描述出OpenAI为Code Interpreter所做的限制和范围。简而言之就是限制了代码执行能力,且不允许非法调用。
Code Interpreter的执行硬件环境
另外一个比较重要的信息就是Code Interpreter的执行环境。依然是来自宝玉老师的分享,里面提到了目前Code Interpreter所在的沙箱环境包含的主要资源为:
- 💾 54.9GB内存
- 💽 123.87GB磁盘空间,53.24GB空闲磁盘空间
- 💻 16个vCPU
- 💻 没有GPU
不过,根据一些其他人的分享,这个数据应该是不准确的。因为根据实测结果,每个人执行的资源都很少(包括10秒的视频转gif提示内存不足、24FPS的GIF无法处理等)。因此,这可能是宿主机的资源,本身的Code Interpreter可能是在容器中。
Code Interpreter的完整的沙箱环境
Yam Peleg在7月9日也和很多人一起做了一个十分有趣的活动,大家集思广益来对Code Interpreter做逆向工程。已经获取了Code Interpreter沙箱环境。
如下图所示,是Code Interpreter的沙箱目录:

可以看到沙箱环境非常简单,基本就是Python脚本、库和配置文件。目前,很多人已经获取了Code Interpreter包含的完整的安装的python库了。如下图所示

总共包含343个常见的Python库。为了支持对图片视频的处理,像OpenCV这种库也存在。此外,像常见的matplotlib、markdown、PyMuPDF、PyAudio等都有,可以看到,为了处理多模态数据,Code Interpreter包含了很多对音视频处理的常见库。
完整的包列表参考:https://github.com/petergpt/code-interpreter-packages/blob/main/packages_with_descriptions_Vfinal.md
其它关于Code Interpreter的信息
除了上述环境信息外,还有一些其它的数据。例如,根据Yam Peleg他们做的逆向工程,他们怀疑Code Interpreter的模型与GPT-4并不完全一样。因为用户访问的EndPoint位置和参数都不一样。而且,实验显示GPT-4的聊天接口的窗口长度是8K。
另外,还有一些其它方式破解Code Interpreter的限制,包括尝试让它安装上传的whl文件,基于自定义的instructions.txt来建立一个个性化的CodeInterpreter。
从目前透露的信息看,虽然Code Interpreter很强大,但是它的沙箱环境和构造方法似乎不是非常复杂。可能是由于GPT-4过于强大进而导致简单的Code Interpreter沙箱就能大大增强GPT-4的能力。
对于Code Interpreter信息,我们将继续保持关注。
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
