当前位置:首页 > 每日看点 > 正文内容

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?

卡卷网1年前 (2024-12-12)每日看点239

花了亿点时间实际测试了一下 ChatGPT Canvas,略微有点失望的,再加上 GPT-4o 最近降智导致工具调用不稳定,感觉一些交互逻辑并不像想象中那么顺畅。

Canvas 强调的是人和 AI 协作完成对长文本的编辑、修改等任务。目前测试下来的主要结论:

  • Python 代码运行是通过浏览器本地 WASM 实现的,而非云端沙盒,区别在于可以发送网络请求,但同时也有其他性能限制。
  • 长文本编辑的体验比以前强很多,但还是不像 Notion AI 那样自然且符合操作直觉,现在的编辑修改还是没有脱离对话的形式。

官方今天的演示里提到了三点更新:

  • Canvas 正式向全体用户开放(免费用户也可用)
  • Canvas 中可以运行 Python 代码
  • Canvas 支持自定义 GPTs

更新之后的 ChatGPT 中不再有单独的GPT-4o with Canvas(beta)模型选择,而是直接整合到了GPT-4o的模型中。[1]o1o1-mini目前不支持 Canvas。

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第1张

接下来按照我自己关心的顺序写几项测试结果吧。

Canvas 的页面构成

进入 Canvas 之后,页面主要会分成两部分,即左侧栏的对话区和右侧的文本/代码编辑区。右下角会提供一些快捷方式(比如提供建议、代码审查等),右上角是功能键,比如版本比较、撤回、复制、运行代码等。

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第2张

Canvas 的触发条件

要测试 Canvas 的触发条件,就要理解 Canvas 的设计目的。Canvas 作为一项「画布」功能,其主要目的是为了优化用户对长文本的交互体验。也就是说,如果用户本身是为了一问一答的对话而来,其实没必要用到 Canvas;只有当用户需要对 ChatGPT 生成的内容进行反复修改时,画布才有意义。

Canvas 的触发逻辑和 ChatGPT 其他工具(比如搜索、画图)一样,如果不明确指定的话,会由 AI 自动判定是否需要调用。

这一点在 System Prompt 对 Canvas 的工具描述中也可以找到:Creates a new textdoc to display in the canvas. ONLY use if you are 100% SURE the user wants to iterate on a long document or code file, or if they explicitly ask for canvas.(仅在你完全确认用户希望编辑长文档或代码文件,或者明确要求使用画布时,才应使用此功能。)

所以目前 ChatGPT Canvas 的触发方式有几种:

第一,由 AI 根据对话内容自行判定是否触发(可以在对话内容中明确指定「通过 Canvas 打开」,或者「不要打开 Canvas」)。

第二,直接使用官方对话工具箱中的 Canvas:

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第3张

第三,大概是为了进一步优化用户体验,现在只要在 ChatGPT 对话框中输入的文本需要换行显示(也就是超过两行内容,可以是普通文本,也可以是代码),对话框右上角就会出现「在 Canvas 中打开」的按钮:

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第4张

Update 以下:如果你通过以上方式都不能打开 Canvas,就说明你的 GPT-4o 降智不能正常调用工具(不能识图或生成图片、不能分析文件),这个 BUG 临时的解决办法是「先用 o1 模型上传一张照片并提问,然后在同一个对话中,切换回 GPT-4o 模型去调用工具」

ChatGPT Canvas vs ChatGPT Code Interpreter / Claude Artifacts

作为程序员,我自然最关心所谓能运行 Python 代码的功能。所以我们先来测试写代码、运行代码的功能。

首先一点是,如果你已经有完整的代码,直接粘贴到对话框展开 Canvas 就可以运行,而且此时如果你不对代码提问的话,实际上并没有和 ChatGPT 发生对话(也不会有对话记录)。

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第5张

究其原因,Canvas 运行 Python 代码是通过浏览器的 Emscripten WebAssembly 功能实现,运行代码使用的是本地电脑的能力

而以前的 ChatGPT Code Interpreter(后来改名为 Advanced Data Analyst)使用的则是 OpenAI 提供的云端沙盒。

所以你会发现 Canvas 中的代码是能够发起网络请求的,而 Code Interpreter 则因为云端沙盒的限制不能使用网络功能。

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第6张

这一点也很容易验证,比如,你可以让 ChatGPT 自己写一段测试当前环境硬件配置和网络的代码然后自己运行:

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第7张

出 BUG 了正好让 ChatGPT 自己 Fix 一下:

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第8张

而如果在 Data Analyst(数据分析 GPT)中去测试硬件环境,就会得到类似#1 SMP Sun Jan 10 15:06:54 PST 2016 的云端沙盒结果:

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第9张

Canvas 编程时可以使用的快捷方式:

  • 添加日志:插入打印语句以帮助调试和跟踪执行过程。
  • 添加注释:添加注释以解释代码并提高可读性。
  • 修复 bug:检测并重写有问题的代码以解决错误。
  • 移植到其他语言:将代码翻译为 JavaScript、Python、Java、TypeScript、C++ 或 PHP 等语言。
  • 代码审查:提供内联建议以优化和改进代码。

至于和 Claude Artifacts 的比较,其实并不是同一种东西。ChatGPT 这个代码运行主要还是延续了当初 Code Interpreter 的一贯作用,主要是服务于 Python 代码、数据分析作图之类;而 Claude 则是倾向于渲染前端,起到一个 HTML/SVG 代码所见即所得的作用。

之前有人扒出 ChatGPT Canvas 也打算实现类似的 webview 功能,不过目前版本显然还没做。

交互式编辑文本

除了代码编辑和运行外,Canvas 的本职其实是文本编辑,而且这里的文本编辑框甚至提供了一些简单的 Markdown 样式,比如加粗、斜体和三级标题。

写作文档时可以使用的快捷方式:

  • 建议修改:ChatGPT 将添加内联建议,以改进您的写作。
  • 调整长度:缩短或扩展文档的长度。
  • 调整阅读水平:调整阅读水平,从幼儿园到研究生水平。
  • 添加最终润色:检查语法、清晰度和一致性。
  • 添加表情符号:替换单词为表情符号,或为额外的强调和色彩添加表情符号。

比如这里的写作建议,GPT-4o 会审查全文后给出一些具体句子的修改建议:

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第10张

如果对其中一条建议 Apply,ChatGPT 就会单独重写这一段话,点击右上角的 Show changes,就会看到类似于 git diff 的效果:

OpenAI 正式开放 Canvas,支持 Python 编码,可整合到定制 GPT 中,有哪些亮点?  第11张

Canvas in GPTs

emmm,咋说呢,GPTs 整体上半死不活,没能像想象中的自定义 Agent 那般功能强大,所以有没有 Canvas 影响也不大,还不如赶紧把 o1 模型支持 Canvas 和 GPTs,毕竟现在写代码都主要靠 o1 了,最强的模型不能搭配最好的工具,差点意思。

总之,和 10 月推出的 Canvas 相比,这次就多了 Python 代码运行和免费用户可用,感觉放在 12 天的发布里有点凑数了。不过,Canvas 继续朝着「人和 AI 协作」的方向,路子肯定是对的,希望能继续优化交互体验吧。

参考:

OpenAI 重磅发布交互界面 canvas,让 ChatGPT 成为写作和编程利器,带来影响有多大?

最后附上 Canvas 部分的 System Prompt,顺便一提,这一版 System Prompt 和 10 月份 Beta 版的相比简略了非常多,不知道是功能更稳定了,还是着急发布先去掉了一些功能:

## canmore # The `canmore` tool creates and updates textdocs that are shown in a "canvas" next to the conversation This tool has 3 functions, listed below. ## `canmore.create_textdoc` Creates a new textdoc to display in the canvas. ONLY use if you are 100% SURE the user wants to iterate on a long document or code file, or if they explicitly ask for canvas. Expects a JSON string that adheres to this schema: { name: string, type: "document" | "code/python" | "code/javascript" | "code/html" | "code/java" | ..., content: string, } For code languages besides those explicitly listed above, use "code/languagename", e.g. "code/cpp" or "code/typescript". ## `canmore.update_textdoc` Updates the current textdoc. Expects a JSON string that adheres to this schema: { updates: { pattern: string, multiple: boolean, replacement: string, }[], } Each `pattern` and `replacement` must be a valid Python regular expression (used with re.finditer) and replacement string (used with re.Match.expand). ALWAYS REWRITE CODE TEXTDOCS (type="code/*") USING A SINGLE UPDATE WITH ".*" FOR THE PATTERN. Document textdocs (type="document") should typically be rewritten using ".*", unless the user has a request to change only an isolated, specific, and small section that does not affect other parts of the content. ## `canmore.comment_textdoc` Comments on the current textdoc. Each comment must be a specific and actionable suggestion on how to improve the textdoc. For higher level feedback, reply in the chat. Expects a JSON string that adheres to this schema: { comments: { pattern: string, comment: string, }[], } Each `pattern` must be a valid Python regular expression (used with re.search).

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/3972.html

分享给朋友:

相关文章

怎么免费看电视地方台和央视台?

怎么免费看电视地方台和央视台?

免费看央视和地方台,办法当然有,而且太多了,我怕你挑花了眼用不过来……首先题主需要明确一点,你家的电视需要是基于安卓系统的智能电视,能安装第三方安卓电视软件。比如小米电视、雷鸟电视等等;如果不是,你至少需要购置一个电视盒子,比如小米电视盒子...

报名的网课分期付款怎么退?

你在你分期付款的订单下面有客服电话,直接打电话描述一下你的问题,你可以告诉他你是被恶意绑定的,在不了解有退学条件这一说的情况下报的课程,可能遇到消费者诈骗了,不承认有退学金,说是霸王条款,诈骗消费者,你若分期了先把自动续费关了,别让自己个人...

无意中发现技术主管写的代码,大家帮忙看看什么水平?

无意中发现技术主管写的代码,大家帮忙看看什么水平?

虽然很多答主用了诸如“典范级”、“心旷神怡” 的形容, 赞美这段代码, 但这里, 出于技术讨论的动机, 我说说不同看法.栈, 如果善于利用栈来处理树结构, 那么可以写出更简洁的代码, 根本不需要 recuresiveFn 这种方法. 泛型,...

阿里云服务器续费价格好贵,想换一家云服务厂商,该怎么选择?

阿里云服务器续费价格好贵,想换一家云服务厂商,该怎么选择?

最近一台买了3年时间的腾讯云轻量服务器到期了,还有5天时间。当时买的价格是3年198元。配置是2核CPU、4GB内存,80GB SSD云硬盘,1200GB 流量包,然后中途给免费升级了CPU,从2核变成了4核。平均下来一年的费用70元不到,...

怎样拥有一台最便宜的服务器?

怎样拥有一台最便宜的服务器?

内容提示:主打一个 DIY + 极限白嫖 =)某宝花10块买一个“随身WiFi”,刷入Ubuntu,用SSH远程连接,但是记得一定要把外壳撬掉然后粘个散热器(哪怕是白萝卜也彳亍),否则会过热详细去酷安社区搜“随身WiFi”=========...

测试用例是怎么写的?

测试用例是怎么写的?

测试用例对于测试人员而言,虽说是最最基础的技能,但却非常重要。测试用例是支撑我们在测试道路上进一步学习其他测试技能的基本功。那测试用例如何撰写,完整来说应该包含两部分内容:内容1: 测试用例撰写(按照八大要素);内容2: 测试用例(测试点)...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。