今天的12 天 OpenAI发布涉及ChatGPT Canvas ,这是一种新的 ChatGPT 功能,使 ChatGPT 能够弹出一个带有共享编辑器的侧面板,您可以在其中与 ChatGPT 协作编辑文档或编写代码。
我总是很高兴看到 LLM 之上出现一种新的 UI 形式,并且很高兴看到 OpenAI 超越了纯粹的聊天领域。绝对值得尝试一下,以了解人机+法学硕士协作界面的工作原理。您可以向 ChatGPT 询问“对我的文档的评论”,它会以 Google Docs 风格附加这些评论,这个功能特别简洁。
我想重点关注 Canvas 的一个特定方面,因为它说明了我已经讨论了一段时间的一个概念:完全理解核心法学硕士工具的功能越来越复杂。
Canvas 通过 Pyodide 运行 Python
如果画布编辑器包含 Python 代码,ChatGPT 会在编辑器顶部添加一个新的“运行”按钮。
ChatGPT 能够通过出色的代码解释器功能长期运行 Python,该功能在由 OpenAI 管理的严格锁定的 Kubernetes 容器中执行 Python 服务器端。
新的 Canvas 运行按钮不是同一回事– 它是一种全新的代码执行实现,可以使用Pyodide (Python 编译为 WebAssembly)直接在浏览器中运行代码。
我第一次尝试此按钮时出现以下对话框:
“Canvas 中的 Python 可以发出网络请求”‽ 这是一个非常新的功能。 ChatGPT Code Interpreter 已阻止所有网络访问,但显然 ChatGPT Canvas Python 不存在该限制。
我对此进行了一些测试,结果证明它可以从浏览器到具有兼容 CORS 标头的任何在线位置进行直接 HTTP 调用。
(作为消费者,了解 CORS 是与法学硕士合作的一个反复出现的主题,我觉得这非常有趣,因为即使在专业 Web 开发人员中,它仍然是一个相当晦涩的话题。)
Claude Artifacts允许在 Claude 内类似 Canvas 的界面中完整执行 JavaScript,但即便如此,它们可以访问的端点也受到严格限制。 OpenAI 显然做出了相反的决定,在允许的网络请求目标范围内将一切都开放。
我这样提示 ChatGPT:
use python to fetch "https://datasette.io/content.json?sql=select+*+from+stats++limit+10%0D%0A&_shape=array" and then display it nicely - the JSON looks like this:
[ { "package": "airtable-export", "date": "2020-12-14", "downloads": 2 },
我经常发现将较大的 JSON 示例的前几行粘贴到 LLM 中可以提供足够的信息来猜测其余部分。
这是结果。 ChatGPT 编写了代码并将其显示在画布中,然后我单击“运行”并将结果数据显示在下表中:
多么简洁又有趣的事情啊!我现在可以让 ChatGPT 为我编写 Python 代码,从外部 API 获取并向我显示结果。
它还不如 Claude Artifacts 强大,Claude Artifacts 允许完全自定义 HTML+CSS+JavaScript 接口,但它也比 Artifacts更强大,因为那些根本不允许发出出站 HTTP 请求。
这一切意味着什么
随着 Canvas 的推出,ChatGPT 的专家用户现在需要了解以下一些新点:
- ChatGPT 可以用 Python 编写然后执行代码,但有两种不同的方式可以做到这一点:
- 如果使用代码解释器运行,它可以访问您上传到它的文件和内置库的集合,但无法发出 API 请求。
- 如果在 Canvas 中运行,它会使用 Pyodide 并可以访问 API 端点,但不能访问您上传到其中的文件。
- 代码解释器无法
pip install
其他软件包,尽管您可以将它们作为轮子上传并说服它安装它们。 - Canvas Python 可以使用micropip安装额外的包,但这仅适用于与 Pyodide 兼容的纯 Python 轮子。
- 代码解释器被锁定:它根本无法发出 API 请求或与更广泛的互联网进行通信。如果您希望它处理数据,您需要将该数据上传到它。
- Canvas Python 可以通过 API 请求(直接进入浏览器)获取数据,但只能从实现开放 CORS 策略的源获取数据。
- Canvas 和 Code Interpreter 在它们可以提供的自定义 UI 方面仍然受到严格限制 – 但它们都可以访问 Pandas 可视化工具生态系统,因此它们可以向您显示图表或表格。
这真的非常非常令人困惑
您是否觉得这一切令人困惑?我不怪你。我是一名专业的 Web 开发人员和 20 多年的 Python 工程师,我可以大致理解并内化上述规则集。
对于我们接下来的发展方向,我真的没有任何建议。这东西很难用。我们在这些系统上添加的特性和功能越多,就越难真正掌握它们并真正理解它们可以做什么以及如何最好地将它们付诸实践。
也许这并不重要?我不知道有谁真正掌握了 Excel,以至于可以参加上周的 Microsoft Excel 世界锦标赛,但很多人都从 Excel 中获得了巨大的价值,尽管他们只触及了 Excel 功能的表面。
我确实认为值得记住这一点作为一个普遍主题。聊天机器人可能听起来很容易使用,但实际上并非如此——而且它们一直在变得越来越难使用。
标签: python 、可用性、 ai 、 webassemble 、 pyodide 、 openai 、生成型人工智能、 chatgpt 、 llms 、 claude-artifacts 、 cors
原文: https://simonwillison.net/2024/Dec/10/chatgpt-canvas/#atom-everything