应该是国内首家,关于ChatGPT官方代码解释器插件的实践测评

您所在的位置:网站首页 realme调试模式代码 应该是国内首家,关于ChatGPT官方代码解释器插件的实践测评

应该是国内首家,关于ChatGPT官方代码解释器插件的实践测评

#应该是国内首家,关于ChatGPT官方代码解释器插件的实践测评| 来源: 网络整理| 查看: 265

阅读本文时请注意,ChatGPT代码解释器不仅能够告诉你实现某个任务时具体执行的是什么代码(对教育有着重大意义),更重要的是它能够自己主动编写、调试、修改、运行代码以完成目标(可怕的能力务必重视)。

OpenAI在3月24日发布了插件系统,并上线了网页浏览插件和代码解释器插件。在申请插件的时候(只能申请一项),相比于网页浏览插件的实时性功能,我更加关注于代码解释器插件所提供的Python沙盒能力。在3月28日我便收到了邀请,并加入到了官方的Slack群组。

ChatGPT官方插件试用邀请通知

尽管现在已经过去了两天,但这个官方Slack群组仍然只有500多人,国内通过申请的用户(看昵称)只有寥寥数人,而我有幸就是其中一位,因此我感觉有责任去写一篇详细的测评文章。

关于代码解释器插件的运行细节

通过代码解释器(Code Interpreter)插件,我们可以通过对话的方式让ChatGPT调起一个能够运行Python代码的沙盒环境,这个沙盒环境有如下一些特性:

ChatGPT代码解释器插件的界面展示

沙盒环境的服务器相当于 2核GPU,8gb内存(这是官方给的数据,但测试的时候和这个数据不符);如果你一直处在当前会话,沙盒的状态持续时间大约20分钟;沙盒环境是无状态的,也就是当你离开聊天的对话框再回到这个对话,沙盒里面的文件会被刷新掉无法恢复;沙盒环境目前内置了200多个Python库,可以直接通过对话的方式让ChatGPT快速调用;沙盒支持各类文件的上传和下载文件,包括文本文件、图片、音视频、压缩包等等;沙盒环境无法访问外部网络;代码解释器执行任务时都会通过Python代码来实现1、无法获取底层硬件信息

代码解释器插件运行在一个受限的沙箱环境中,该环境限制了对底层硬件信息(如CPU和内存)的访问,因此chatgpt是无法直接访问或检测代码解释器插件的CPU和内存信息。关于沙盒环境的服务器数据是官方在Slack群组里面提供的。

无论是上传的文件还是代码沙盒自己生成的文件都会被存储在/mnt/data目录下,我们可以对目录下的文件进行各种处理。代码沙盒的存储空间有大约8.6TB,不过ChatGPT表示这里提供的存储空间大小是基于虚拟化环境的,并不代表实际物理存储设备的大小。同时,存储空间的实际可用量可能会受到沙盒环境的限制和使用策略的影响。

沙盒的存储空间

2、无法访问外部网络

代码解释器是一个隔离受限的Python环境,无法访问外部网络,也就无法安装非内置的第三方package,也无法打开外部网络链接,但是你可以通过上传文件的方式,让它来处理。

无法获取外部链接信息

3、状态会经常被刷新掉

代码沙盒是无状态的,也就是如果你隔一段时间不处理,沙盒环境里面的文件就会被刷新掉,因此不建议用来处理耗时很长或关联性很强的任务。

状态经常会被刷新

4、更多关于沙盒环境的信息

和主流服务器都是采用UTC +0 时区的环境一样,ChatGPT的沙盒时间比国内晚8个小时,还有更多关于服务器的一些信息都是可以直接问的。

ChatGPT沙盒环境的服务器时间

比如写代码会比较关心的是服务器的一些环境变量,从环境变量可以看出代码沙盒的底层机制其实使用的是云原生里面的Kubernetes以及Docker技术:

代码沙盒环境的环境变量

生成文件并提供下载

由于代码解释器的沙盒本质上是一个Python的Serverless服务器,而且内置了很多Python的Package,因此可以用来处理文件,比如我们可以让ChatGPT写代码生成一个Excel文件。

我们只需要用真正的自然语言(Python以前号称最贴近人类语言,你现在觉得它是么),直接给ChatGPT下指令,它就能按照要求生成文件,如果状态被重置,它会自动重新开始执行。生成的文件也会保存在代码沙盒的/mnt/data/路径下。

ChatGPT生成Excel文件

由于代码沙盒的状态可以持续20多分钟,因此存储在代码沙盒的文件,还可以被后面的指令调用,从以下截图我们可以看到当ChatGPT自己写的代码运行出错时,它会自己找出原因并修改好之后再次运行:

调用沙盒里面的文件

代码沙盒内置的Python包

这个沙盒环境内置了200多个包,如果chatgpt在解决我们发送给它的问题或任务时会使用到这些内置包里面的功能时,它就会直接调用并执行。沙盒环境不支持安装额外的第三方Python包,也不支持联网,因此你给它下指令让它引入其他包或打开某个外部链接是不行的。

Python内置的安装包

Python之所以功能强大,得益于它有着非常丰富的生态,而ChatGPT可以直接“说人话”就能让代码解释器调用这些包来执行各种任务。

比如XlsxWriter、xlrd、openpyxl等可以处理Excel文件;比如pdfkit、pdf2image、PyPDF2等可以处理PDF文件;比如torchvision、torchaudio、PyAudio等处理音视频;比如Pillow、imageio、opencv-python、cv2等处理计算机视觉和图片等;比如matplotlib、seaborn生成图表;比如numpy、pandas、statsmodels等可以用于数值计算、数学分析、统计分析;比如scipy、sympy等可以用于科学计算、符号计算;比如内置的zipfile、tarfile等可以用来解压缩文件;

部分包名以及相应的版本信息

我们也可以直接让chatgpt打印你可以会使用到的内置包的具体信息,比如我们想了解scipy包的版本信息:

用ChatGPT打印内置包的信息

值得注意的是,尽管代码解释器能够处理多种类型的文件,但是它的核心是调用Python来处理,它并不是多模态的,也就是你想根据一个网站的原型图,让它生成网站的代码,这目前是做不到的。而且,chatgpt的文本理解和生成能力也是无法注入到代码沙盒里面的(代码沙盒不支持调用ChatGPT的API)。

重新定义数学教育

我们可以借助于数学软件通过数与形相结合来让学生清楚的了解方程等概念的含义,相比于用粉笔在黑板上手绘,这种方式更加精确、快捷;而且现代的数学教育,是不应该脱离计算机的代数符号以及编程的。但受限于师资力量,Geogebra、Matlab等数学软件,Python等编程知识很难在中小学老师或学生群体里普及。

而有了ChatGPT的代码解释插件,老师或学生无需下载数学软件,也不需要再在电脑上额外装Python环境和写复杂的Python代码,直接通过简单的对话方式就能让ChatGPT编写代码、运行结果、给出图表、讲解题目,更加高效与专业,这对数学教育来说是革命性的。

使用GPT-3.5,ChatGPT会经常性的做错小学数学题,但是借助于Python的Sympy等包,ChatGPT能够进行专业的符号计算。

ChatGPT进行代数符号计算

以下选取了一道数学高考题让ChatGPT使用图文结合的方式来进行讲解,其中代码部分因为讲解的内容很长我折叠了:

ChatGPT求解方程的效果展示

图片处理

我们可以上传一张图片,让ChatGPT调用模块来进行处理,其实这些使用的都是Python方面的基础知识,而用于图片处理的主要是pillow。

1、生成GIF动画

使用ChatGPT能够生成一些图形,甚至动画,最为关键的是,它会给出详细的可以执行的图形/动画的生成代码,不只是给你一个结果,而是真正让你做到“知其然,更知其所以然”。

生成GIF动画

以下是心形的数学公式,如果通过这种方式进行中学数学教育,会让学生真正爱上数学,了解数学对于物理、游戏等的重要性,而不是像以前一样的脱钩的。

t = np.linspace(0, 2 * np.pi, 1000) x = scale * (16 * np.sin(t) ** 3) y = scale * (13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t))

图片是gif图片,如果看不到动画是平台原因

2、生成链接二维码

用ChatGPT代码解释器最为重要的不是可以实现什么,而且它会用Python告诉你它是怎么实现的。比如生成链接的二维码,可能这是很多人会关注的功能,但是它不仅可以做到,还会给你完整的可以执行的代码(它写的代码是真的在执行)。

可以用来生成二维码

也就是说代码解释器在执行你给的任务的时候,都是通过写Python代码来执行,它写的代码都是可以执行的,它如果写的不对会自行修改。

控制工业机器人?

网传微软让ChatGPT通过写代码的方式来控制工业机器人的运行有着类似的原理。所以不要小看这个背后运行的逻辑,它不仅仅可以用于教育,而是完全可以应用于工业领域,它自己就能够根据自然语言(人的语言指令)编写、调试、修改代码来完成任务,这是非常强大的一件事情。也就是说以后Python将会是工业领域的第一编程语言,而不再是C、C++之类的。

你完全可以想象,有一台飞上了月球的机器人,这个机器人并没有事先安装详细的操作程序,但是你需要它做一些超出以往预期的动作,宇航员可以直接让它自己写代码来完全这些任务。它也不需要联网,就自己像个程序员一样写代码,出错了自己修改。。。

我们以往通常会根据不同的业务场景来定制化不同的应用程序,比如农业机器人、医疗机器人、餐厅机器人、迎客机器人、物流机器人...种类很多很多,代码都是需要定制化的,但是如果机器人能够自己写代码,你觉得它还需要定制么?你需要做的就是告诉它要实现什么能力,它自己来定制...



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3