简单总结。Canvas 之前已存在于 ChatGPT 中,但这次的更新主要集中在 增强协作性、拓展功能以及更广泛的可用性 上。以下是本次更新的简单总结:
这次 Canvas 的更新让它从一个初步的协作编辑工具,变成了一个 功能更全面、更强大的协作平台,无论是写作、编程还是其他需要协作的任务,都能提供更高效、更便捷的体验。其中,Python 代码直接执行 功能是本次更新的核心亮点,它也极大地拓展了 Canvas 的应用场景。
第一部分:介绍与 Sora 更新 (Kevin)
大家好,欢迎来到第四天的活动。我是 Kevin,负责 OpenAI 的产品。昨天,我们发布了 Sora,市场反响极其热烈。我们的团队昨晚加班到深夜,今天一早就回到工作岗位,正全力以赴地确保大家尽快用上 Sora。我们非常期待看到大家用它创造出怎样的作品。今天,我们要介绍的是 Canvas,这款产品已经在过去几个月面向 Plus 用户进行了测试。Canvas 让你能够与 ChatGPT 协同工作,进行更高级的写作和编程,不再局限于简单的对话。我们这次发布了三项重要更新:
-
全面开放: Canvas 现在面向 所有用户 开放,并已集成到我们的核心模型中,使用起来非常方便。
-
运行 Python 代码: 你现在可以直接在 Canvas 中 运行 Python 代码,并即时看到运行结果,包括文字和图像。
-
自定义 GPT 也支持 Canvas: 我们将 Canvas 引入了 自定义 GPT,让你能够利用 Canvas 的强大功能来增强你的自定义 GPT。
第二部分:Canvas 介绍与故事创作示例 (Lee 和 Alexi)
大家好,我是 Lee,一名致力于帮助大家更好地使用 ChatGPT 的工程师。大家好,我是 Alexi,也是一名 ChatGPT 的产品工程师。Lee,你家孩子是不是很期待圣诞节?那当然!我们觉得用 Canvas 给他们编个圣诞故事一定很有意思。咱们来试试。
从今天起,在编辑框里你会看到一个新按钮,点开就能看到包括 Canvas 在内的各种实用工具。点击这个按钮就会创建一个新的 Canvas。咱们来写个故事吧,就说“帮我给孩子们写一个关于傻精灵的圣诞故事”。
Canvas 最显著的特点是采用了 并排视图:左边是你熟悉的聊天界面,右边是 Canvas 编辑区域。ChatGPT 会直接在 Canvas 里写故事。以前 ChatGPT 是直接在聊天窗口里输出内容,这样一来,文档内容和其他文字就容易混在一起,修改起来很不方便。
这是 ChatGPT 写的故事开头:“圣诞大‘乌龙’里的傻精灵(别担心,不是真的灾难!)故事发生在北极边陲一个白雪皑皑的小村庄——叮当镇……”我觉得标题有点长,得改短点。在 Canvas 里,你可以和 ChatGPT 并肩编辑,就像使用其他文档编辑器一样,你可以随意添加、加粗和修改文字。
你还可以在聊天窗口里给 ChatGPT 提供反馈,提出修改意见,ChatGPT 会直接在 Canvas 里进行更新。在 Canvas 的下方有一些快捷操作按钮,包括:编辑建议、请求反馈、调整文章长度、调整阅读难度、最终润色(检查拼写和语法错误)、添加表情符号 等。我们来试试给文字加点表情。
ChatGPT 现在正在 Canvas 中对文档进行修订,新版本会以 流式更新 的方式覆盖旧版本。聊天窗口会清晰地显示指令和互动过程,不会因为版本更新而显得杂乱无章。
你可以通过两种方式启动 Canvas:一是直接让 ChatGPT 帮你 一起创作内容(无论是写作还是编程),二是点击编辑框里的 Canvas 按钮。
第三部分:使用 Canvas 获取写作反馈 (Alexi)
除了讲故事,很多人还会用 ChatGPT 来辅助写作。我们现在要展示 Canvas 的一些新功能,这些功能可以更方便地 获取写作反馈。我自己写了一篇物理相关的文章,题目是《圣诞老人的雪橇:探秘暗能量在驯鹿驱动中的作用》。我把它从文本编辑器里复制出来,粘贴到 ChatGPT 的输入框里。因为内容比较多,所以界面右上角会出现一个 “在 Canvas 中打开”的按钮。点击它,文章内容就会导入到一个可编辑的 Canvas 画布中,就像 Lee 刚才演示的那样。
我会这样问 ChatGPT:“请以我的物理教授的口吻,给我的文章提一些意见。”以前,ChatGPT 给出的反馈会直接显示在聊天窗口里,这样很难把反馈意见和文章的内容对应起来。但有了 Canvas,ChatGPT 就可以选中文章中需要评论的具体段落,然后 直接在旁边添加评论。这样一来,你就能清楚地知道这些建议是针对哪里提出的。比如,ChatGPT 选中了文章中的一句话“长期以来,圣诞老人的雪橇和会飞的驯鹿就以其神秘的魔力吸引着人们……”,然后评论说“不妨更明确地将导言部分和对暗能量的科学探索联系起来,这样就能更快地突出文章的物理学主题”。
每条评论旁边都有一个 “应用”按钮,点击之后 ChatGPT 就会按照它的理解对文章进行修改,当然,你也可以选择 拒绝这些修改。因为这是我自己写的文章,所以我决定自己动手修改。我比较喜欢其中一条评论,它建议我“可以简单解释一下暗能量的神秘之处,给读者提供一些背景知识”。于是我就加了一句“我们既不清楚宇宙为何会膨胀,也不明白圣诞老人的雪橇为什么飞得那么快”,并补充了一句“我对宇宙的这些奥秘非常感兴趣”。我觉得另一条评论说得不太对,就把它忽略掉了。等修改完成后,就可以点击 “复制”按钮 把文章复制出来,交给教授了。
第四部分:在 Canvas 中编程 (Alexi 和 Lee)
除了写作,很多人也用 ChatGPT 来写程序。我们对 Canvas 的编程功能进行了一些重要的改进。我这里有一段 Python 代码,一直运行不起来。我把它复制到 ChatGPT 里。“在 Canvas 中打开”按钮会打开一个 Canvas 编辑器,它支持 Python 语法高亮,甚至还有一些 基本的代码自动补全功能。
我问 ChatGPT:“你能帮我调试一下这段代码吗?看看是哪里出了问题?”ChatGPT 很快就发现是 Matplotlib 库里没有“plot.Lael”这个东西,并给出了修改后的代码。现在,我们可以 直接在 Canvas 里运行 Python 代码 了,点击 “运行”按钮 就可以。程序运行后,我们看到报错信息:“label 未定义”。ChatGPT 还在旁边添加了注释:“……因为 label 不是 Matplotlib 库里有效的函数……”
点击 “修复错误”按钮,ChatGPT 就能自动帮你修改代码。 “显示更改”按钮 则会像 Git 那样,以 “差异” 的形式显示代码的修改之处。修改完成后,我们再次运行代码,这次折线图终于正确显示出来了。
Canvas 使用的是 WebAssembly 技术的 Python 模拟器,它可以加载几乎所有的 Python 库,并以极快的速度运行代码,让你能够 立即看到运行结果,并与 ChatGPT 无缝协作,形成一个高效的反馈循环,包括生成各种图表。
圣诞老人需要一些 桑基图 来追踪玩具在他工厂里的流向。我于是就问 ChatGPT:“请帮我为圣诞老人的玩具生产流程添加一个桑基图,颜色要搭配得当。”ChatGPT 就自动添加了绘制桑基图所需的代码。我们运行这段代码,结果发现颜色有点问题。ChatGPT 建议我们每条流线使用一种颜色。经过几次调整,我们终于得到了想要的图表。我们还可以继续和 ChatGPT 协作,对图表进行进一步的优化,甚至可以直接把生成的图表拖到输入框里,让 ChatGPT 更直观地了解图表的样子,从而更好地进行改进。以上就是 Canvas 中一些新的编程功能。
Section 5: Canvas 在自定义 GPT 中的应用
最后,我们把 Canvas 带到了自定义 GPT 的世界。自定义 GPT 允许你针对特定任务设置 个性化的指令、上下文和行为,并且可以 方便地分享给其他人使用。我专门为圣诞老人创建了一个自定义 GPT,用来 帮助他起草回信。
Alexi,我看到你给圣诞老人的信就放在桌子上。我拍了张照片,咱们可以用它来演示一下。圣诞老人那边也会记录你平时表现好不好。我会先告诉圣诞老人的助手,Alexi 今年表现得不错。
然后,我们把照片发给这个自定义 GPT,它就会自动在一个 Canvas 画布中开始写回信:“亲爱的 Alexi,嚯嚯嚯……谢谢你的来信……”你看,这就生成了一个很棒的初稿,圣诞老人可以在此基础上进行 编辑和修改。
这里有个重点:我 没有手动点击 Canvas 按钮,Canvas 就自动创建好了。这是因为我在创建这个自定义 GPT 的时候,已经在指令里设置好了。咱们来看看我是怎么设置的。
进入 GPT 的配置界面,你可以设置 头像、名称和描述。其中 最关键的是指令部分:‘你的任务是作为圣诞老人的助手,使用 Canvas 来起草回信……每封回信都要带有圣诞老人特有的风格和幽默感……你的主要工作是使用 Canvas 工具来回复信件。’也就是说,我在指令中 明确告诉这个 GPT 要使用 Canvas 工具。
配置界面的底部是一些 功能选项,你可以勾选需要启用的功能。现在,这里多了一个新的选项——‘Canvas’。对于 新创建的 GPT,‘Canvas’选项会 默认开启。而对于 已经存在的 GPT,为了避免影响它们的正常运行,这个选项会 默认关闭。如果你想在已有的 GPT 中使用 Canvas,只需要在这个配置界面里 勾选相应的选项 就可以了。
总结
以上就是关于 Canvas 的全部内容!我们现在将 Canvas 作为一项默认功能推送给所有网页用户,无论你使用的是免费版还是付费版,都可以使用 Canvas。我们今天介绍了如何 在 Canvas 中使用你自己的内容、如何 执行代码,以及如何在 自定义 GPT 中使用 Canvas。我们非常期待看到大家用 Canvas 创造出各种各样的作品。这项功能 今天就会正式上线。
最后,给大家讲个圣诞笑话:圣诞老人怎么拍照?用‘诺斯·宝丽来’(North Polaroid,谐音北极)!我们明天再见!
谐音梗:
-
Polaroid: 指的是宝丽来公司生产的拍立得相机,特点是即拍即得。
-
North Pole: 指的是地球的北极。
Canvas: Day4 - 12 Days of OpenAI 英文字幕整理版本
Section 1: Introduction and Sora Update (Kevin)
"Hey everyone, welcome to day four. I’m Kevin, leading product at OpenAI. Yesterday, we launched Sora, and the demand has been incredible. The team worked late last night and is already back this morning, doing everything possible to provide access to Sora as soon as we can. We’re excited to see what you create. Today, we’re focusing on Canvas, a product in beta for Plus users for the past couple of months. Canvas allows you to collaborate with ChatGPT on writing and coding beyond simple chat. We’re launching three key updates:
-
General Availability: Canvas is now available to everyone and integrated into our main model for seamless use.
-
Python Code Execution: You can now run Python code directly within your canvases and see the output, including text and graphics.
-
Canvas for Custom GPTs: We’re bringing Canvas to custom GPTs, allowing you to infuse them with its power."
Section 2: Introduction to Canvas and Storytelling Example (Lee and Alexi)
"Hi everyone, I’m Lee, an engineer helping you collaborate with ChatGPT. Hi everyone, I’m Alexi, also a product engineer working on ChatGPT. Lee, are your kids excited about Christmas? They sure are! We thought it would be fun to create a Christmas story for them using Canvas. Let’s try it out.
Starting today, there’s a new button in the composer to view available tools, including Canvas. Clicking it creates a canvas. Let’s write a story: ‘Help me write a Christmas story about silly elves for my kids.’
The key difference is the side-by-side view: the familiar chat interface on the left and the Canvas on the right. ChatGPT is now writing the story directly in the Canvas. Previously, ChatGPT would write directly in the chat, making it difficult to distinguish the document content from other text, especially when making changes.
Here’s what ChatGPT created: ‘The Silly Elves in the Christmas Catastrophe (No, not a catastrophe!) In the snowy village of Tinseltown…’ The title’s a bit long, so I’ll shorten it. You can edit alongside ChatGPT. It’s a collaborative document, like other document editors. You can add, bold, and modify text.
You can also provide feedback and request changes in the chat, and ChatGPT will update the Canvas. The bottom corner has shortcuts for common actions: Suggest edits, Ask for feedback, Adjust the length, Reading level, Add final polish (for spelling and grammar), and Add emojis. Let’s try adding emojis to words.
ChatGPT is now revising the document in Canvas, streaming the new version over the previous one. The chat shows the instructions and back-and-forth, but it’s not cluttered with revisions.
Canvas can be triggered in two ways: asking ChatGPT to collaborate on content (writing or code) or using the Canvas button in the composer."
Section 3: Using Canvas for Feedback on Writing (Alexi)
"Besides storytelling, people use ChatGPT for writing assistance. We’re showcasing new Canvas features for easier feedback. I have a physics essay, ‘Santa’s Sleigh: Exploring the Role of Dark Energy in Reindeer Propulsion.’ I’ll paste it into the prompt area. Because it’s a longer text, there’s an ‘Open in Canvas’ button. Clicking it puts the content into the editable Canvas.
I’ll ask ChatGPT: ‘Can you leave some comments on my essay from the perspective of my physics professor?’ Previously, feedback was inline in the chat, making it hard to connect to specific parts of the work. Now, ChatGPT selects specific portions and leaves inline comments. For example, ‘Consider linking this introduction…’ It selected the sentence and provided specific feedback.
Each comment has an ‘Apply’ button for ChatGPT to make the edit, which you can then accept or reject. I’ll make some changes myself based on the feedback. I’ll dismiss a comment I feel I’ve addressed. When finished, I can copy the text and send it to my professor."
Section 4: Programming in Canvas (Alexi and Lee)
"Many people use ChatGPT for programming. We’ve made exciting improvements to programming in Canvas. I have some Python code that’s not working. I’ll paste it into ChatGPT. The ‘Open in Canvas’ button opens a Canvas as a code editor with Python syntax highlighting and basic autocomplete.
I’ll ask: ‘Can you help me debug this code? What might be going wrong?’ ChatGPT identifies that ‘plot.Lael’ doesn’t exist in Matplotlib and provides corrected code. We can now run Python code within Canvas using the ‘Run’ button. We see the exception: ‘label is not defined.’ ChatGPT leaves a comment: ‘…because label is not a valid function…’
The ‘Fix bug’ button lets ChatGPT correct the code. The ‘Show changes’ button shows an inline diff, like in Git. After the fix, we run the code again, and the line chart renders.
Canvas uses a WebAssembly Python emulator, allowing it to load almost any Python library and run code nearly instantly, providing immediate feedback and a tight feedback cycle, including generating graphics.
Santa needs Sankey flow diagrams to track toy flow. I’ll ask ChatGPT: ‘Add a Sankey flow diagram for Santa’s toys. Please use appropriate colors.’ ChatGPT adds code for the diagram. We run it, but there’s a color problem. ChatGPT suggests using a single color per flow. After some iterations, we get a graphic. We can further refine it with ChatGPT, even dragging the image into the prompt to provide visual context."
Section 5: Canvas in Custom GPTs (Lee and Alexi)
"Finally, we’re bringing Canvas to custom GPTs. GPTs allow custom instructions, context, and behavior for specific tasks, and they can be shared. I made one for Santa to draft responses to letters.
Alexi, I noticed your letter to Santa on your desk. I took a picture. We can use it as an example. Santa also has context about whether you’ve been naughty or nice. I’ll tell Santa’s drafter that Alexi has been nice this year.
We send this to our custom GPT, and it starts writing a letter in a Canvas: ‘Dear Alexi, Ho ho ho… Thank you for your letter…’ It’s a great first draft that Santa can edit.
I didn’t click the Canvas button; it was automatically created. This is because I put it in the custom GPT’s instructions. Let’s see how I made it.
In the GPT’s configuration, you set a picture, name, and description. The key part is the instructions: ‘Your tool for Santa to help write first draft responses in Canvas… Every response be written in Santa’s style… Your job is to write responses using the Canvas tool.’ I told it to use Canvas.
At the bottom are capability checkboxes. The new ‘Canvas’ option is there. For new GPTs, it will be on by default. For existing GPTs, it’s off to avoid disrupting their behavior. You can easily enable it in the configuration."
Section 6: Conclusion (Lee and Kevin)
"That’s Canvas! We’re rolling it out to all web users, regardless of plan, as a default experience. Whether you’re on a free or paid plan, you’ll have Canvas. We covered using your own content, code execution, and Canvas in custom GPTs. We’re excited to see what you create. This is rolling out today.
Before we go, a Christmas joke: How does Santa take photos? With a North Polaroid! See you tomorrow!"