文章主题:关键词:ChatGPT,代码解释器,AI工具。
还记得 ChatGPT 刚发布的时候,网络社区对它的讨论非常热闹。
如今,ChatGPT 在人们的日常生活中扮演着越来越重要的角色。他们如同一名热心的翻译官,帮助用户快速准确地翻译各类文件;似一名博学的老师,教授外语知识;亦似一名智慧深远的佛祖,指引用户在迷茫中找到方向。如此多重的身份,使得聊天机器人不再只是单一的存在,而是成为了人们求助的“有求必应屋”。然而,随着时间的推移,用户对于这种新鲜事物的热情逐渐消退,ChatGPT 的讨论热度也随之降低。
但现在 OpenAI 上线了代码解释器(Code Interpreter)后,ChatGPT 社区再度变得热闹起来,而且大家玩的东西更加疯狂:让 ChatGPT 写游戏、拍视频,甚至当数据分析师。代码解释器是什么?
当你看到代码解释器的名称时,可能会让一些对编程和代码不甚了解的朋友们感到无所适从。然而,请不要因此而感到担忧,因为接下来要介绍的代码解释器,就是专门针对像你们这样的大型语言模型用户所设计的。当然,使用这个工具的前提条件是你的账户是ChatGPT Plus的用户。
代码解释器是 OpenAI 官方推出的三大扩展功能之一,跟插件集、网页浏览功能一样,在用户设置(Setting)- Beta 功能处开启。在启动GPT-4模型之后,您可以在其下拉菜单中选择“Code Interpreter”选项,从而激活代码解释器功能。
在成功开启代码解释器之后,您将在对话框右侧看到一个“+”图标。此图标允许您上传不超过100MB的文件,关于如何使用这些文件的详细信息,我们会在后续内容中为您作出介绍。
现在,一切准备就绪,只差一点魔法。
五分钟,写出一个游戏
一个完全不懂编程的小白,从零开始编写一个像这样星际飞船击落陨石的游戏,要多久?
用 GPT-4 的代码解释器,只要五分钟,是的你没看错。开发者 Kris Kashtanova 分享了编写这个游戏整个过程。
首先,她在脑海中构想了游戏的大致模样,把她的需求输入给 ChatGPT:
在本篇文章中,我将为您提供一个基于P5.js的Asteroids游戏代码示例。在这个游戏中,玩家将操控一艘太空船,通过鼠标左键点击来射击 asteroids。若太空船与 asteroid发生碰撞,则游戏结束;若成功击退所有asteroids,则玩家获胜!此外,您可以使用自定义纹理来绘制太空船和 asteroids。首先,我们需要导入相应的库和模块:“`javascriptimport * as Phaser from ‘phaser’;import { Phaser } from ‘phaser’;import { load } from ‘load.image’;import { preload } from ‘preload’;“`接下来,我们设置游戏的基本参数:“`javascriptconst width = 800;const height = 600;const gameTitle = ‘Asteroids’;const shipWidth = 32;const shipHeight = 32;const asteroidCount = 10;const asteroidSize = 32;const bulletSpeed = 5;const gameOverText = ‘Game Over!’;“`然后,我们创建一个主函数来初始化游戏并渲染画面:“`javascriptfunction preload() { load.image(‘ship’, ‘assets/ship.png’); load.image(‘asteroid’, ‘assets/asteroid.png’); load.image(‘bullet’, ‘assets/bullet.png’);}function create() { Phaser.AUTO_LOAD_IMAGES = false; const game = new Phaser.Game(width, height, Phaser.AUTO, gameTitle); game.stage.backgroundColor = 0x1099bb; const ship = game.add.sprite(width / 2 – shipWidth / 2, height – shipHeight / 2, ‘ship’); ship.anchor.setTo(0.5, 0.5); const asteroidGroup = game.add.group(); asteroidGroup.create(Math.random() * (width – asteroidSize) + asteroidSize, Math.random() * (height – asteroidSize) + asteroidSize, ‘asteroid’); game.time.events.add(Phaser.Timer.SECOND * 2, () => { if (Math.random() < 0.05) { asteroidGroup.create(Math.random() * (width – asteroidSize) + asteroidSize, Math.random() * (height – asteroidSize) + asteroidSize, ‘asteroid’); } }); const bullets = game.add.group(); bullets.create(width, height).setBounce(0.2).refreshBody(); ship.body.collideWorldBounds = true; document.addEventListener(‘click’, (event) => { if (event.clientX >= ship.x && event.clientX <= ship.x + shipWidth && event.clientY >= ship.y && event.clientY <= ship.y + shipHeight) { bullets.add(event.clientX – ship.x, event.clientY – ship.y); } }); game.physics.add.staticGroup().createFromImage(ship, ‘ship’).setBounce(0.2).refreshBody(); game.physics.add.staticGroup().createFromImage(asteroidGroup, ‘asteroid’).setBounce(0.2).refreshBody(); game.physics.add.staticGroup().createFromImage(bullets, ‘bullet’).setBounce(0.2).refreshBody(); let score = 0; let isGameOver = false; function update() { score += bullets.count; asteroidGroup.update(); bullets.update(); for (let i = bullets.length – 1; i > 0; i–) { bullets[i].setCollideWorldBounds = false; } if (bullets.length === asteroidCount * 2) { score = 0; asteroidGroup.clear(); bullets.clear(); isGameOver = true; } if (score > 0) { document.getElementById(‘score’).innerHTML = `Score: ${score}`; } else if (isGameOver) { document.getElementById(‘gameOverText’).innerHTML = gameOverText; } game.time.update(); } function draw() { game.stage.backgroundColor = 0x1099bb; ship.draw(game); asteroidGroup.draw(game); bullets.draw(game); if (isGameOver) { gameOverText.draw(game.stage); } } game.loop.start(update, draw);}“`最后,我们将主要逻辑放在`create`函数中,包括初始化游戏、添加事件监听器、更新和绘制画面等。希望这个示例可以帮助您更好地理解如何使用P5.js制作Asteroids游戏。祝您玩得愉快!
翻译:
在P5.js中编写小行星游戏代码是一项有趣且具有挑战性的任务。您可以利用鼠标来操控宇宙飞船,向小行星发射子弹。若您的宇宙飞船与其发生碰撞,您将输掉游戏;而若您能击落所有小行星,则视为获胜。为了使游戏更具吸引力,我希望能够使用自定义的材质来创建宇宙飞船和小行星。
然后 ChatGPT 就会自动地写出一长篇代码,你要做的,就是把这篇代码粘贴到 OpenProcessing 网站上,创建一个程序项目。
接着用 Midjourney、ClipDrop 等 AI 画图工具为你的游戏生成纹理材质,替换掉项目中的图片。这样,一个游戏 Demo 就制作出来啦,你可以在线试运行。
如果运行出了问题,你还可以让 GPT-4 扮演你的编程老师,帮你遇到的问题再粘贴给它,解释每个函数的作用,让它用教 10 岁小孩的方式来教会 debug,一番完善后,一个小游戏就做好了。
当然,这里所说的用 5 分钟做好一个游戏,是对一些有游戏编程概念的开发者而言。像 Kris Kashtanova 这样的开发者在构思游戏时就已经清晰地列好了游戏玩法、目的、操作等需求,ChatGPT 在编写代码时才能做到有条不紊。
但可以肯定的是,ChatGPT 确实可以代替人类完成一定的粗活、累活,把想法一键转化成成果,这也是代码解释器的意义:用编程的力量,解决更多实际的问题。
PDF OCR 阅读器
PDF 真是打工人又爱又恨的文件格式,爱的是 PDF 文档排版始终如一的稳定性,恨的是当你要用到里面的文字时无法直接复制粘贴的尴尬。
通常来说我们需要付费购买 OCR 阅读器来提取 PDF 的内容,现在你可让 ChatGPT 来代劳。操作方法非常简单,还记得对话框上的加号吗?把你的 PDF 文件上传上去,然后直接输入指令要求 ChatGPT 提取文中的内容,然后它就能把文档的内容转写出来,非常方便。
ChatGPT 不仅能提取规整的文档型 PDF 文件的文字,还能提取出图片里的文字,这样遇到扫描图片的 PDF 合同也能识别文字。
专属的金融分析师
代码解释器有着很强的绘图能力,博主 Alex Ker 利用这一特性把它做成了专属的金融分析师。
以特斯拉的股票为例,你需要先把特斯拉历年的股票数据集下载下来,上传到 ChatGPT。
接着,你就可以用自然语言给它下指令,让它画出走势图。或者让它画出对数收益图。股票成交量图等等。重点来了,如果你是个金融小白,不懂得怎么分析这些走势图,或者不知道这些数据的含义,你可以直接向他发问,让它从头开始帮你分析这些数据。
有了 ChatGPT 的辅助,你就不用再似懂非懂地听金融分析师的长篇大论,自己也可以做出相对准确的判断。
制作精美的可视化图表
漂亮的图标对于分析报告来说就像是绅士的西装、佛像的金衣,是决定这份报告是否专业的门面。
通常来说,制作这些图标需要分析员与 Excel 等制表工具大战三百回合,才能做出来比较理想的效果,现在用 ChatGPT 只用三句 Prompt 就能实现。
博主 Prateek K. Keshari 分享了他的用法。先来看成果,Prateek 用几句 Prompt 就做出了一个可交互且很好看的商业仪表盘,效果还不赖吧。怎么做呢?他首先上传了 Netflix 的数据和 Logo 图片到代码解释器,然后输入以下 Prompt:
This is Netflix data + the logo. Give me a downloadable file with the following:
– A .html dashboard with the logo at the top center of the page
– Sans serif font
– Color scheme of netflix both for the page and for the visualization
– Interactive plots using plotly.
Note: page should focus on design as much as on functionality. The design should be minimal. Use Netflix brand colors, drop shadows, and gradients. Visualizations should be in a grid layout.
翻译:
以下是 Netflix 的数据和 logo 图标,请按照以下需求给我制作出可以下载的文件
带有 Logo 的商业智能仪表盘
使用无衬线字体页面
采用 Netflix 的配色方案
使用 plotly 进行交互式绘图
注意:页面应该像关注功能一样关注设计。设计要简约一点。使用 Netflix 品牌颜色、阴影和渐变。可视化应采用网格布局。
把图片变成视频
像这样一个响指把灭霸给消灭的视频要怎么做?同样的,一张图,一句 Prompt,代码解释器就能帮你搞定。
博主 Chase Lean 把灭霸的照片上传到,然后「拜托」ChatGPT 把它做成像灭霸响指瓦解效果的动态视频。Chase Lean 给出了非常详细的指令:
Are you familiar with the disintegration effect from Avengers after Thanos snaps his fingers?I want to apply this effect to the PNG image I uploaded. By turning it into a video, can you do it for me?
Using the pixels from the transparent layer, group them into blocks of 4×4 pixels. Then, give each block an index. For each frame, several blocks at random. Then translate those blocks to the left. Keep doing this for the frames until all the blocks have left the image, and only a blank image remains.
Use the Imageio library to help you. Save the frames directly to a video file instead of into a list.
翻译:
你熟悉《复仇者联盟》灭霸打响之后的瓦解效果吗?
我想将此效果应用于我上传的 PNG 图像。你能帮我把它变成视频吗?
使用透明层中的像素,将它们分组为 4×4 像素的块。然后,给每个块一个索引。对于每一帧,随机有几个块。然后将这些块向左平移。对帧继续执行此操作,直到所有块都离开图像,并且只剩下空白图像。
使用 imageio 库来帮助您。将帧直接保存到视频文件而不是列表中。
接着 ChatGPT 会给出一系列代码,当然这些代码会出错,经过一番 debug 优化后(一个小时左右),Chase Lean 就得到了符合需求的效果视频,可以直接下载。「AI 如此强大,还要人来干什么?」
从这些案例可以看出,代码解释器的出现犹如赋予了 ChatGPT 行动的「手和脚」,让 ChatGPT 可以创造出比文字更丰富的内容。
代码解释器的可玩性非常高,沃森商学院的 Ethan Mollick 在提前体验过代码解释器几个月后,给出了这样的评价:
我们现在看到的案例只是代码解释器能力的皮毛而已,未来人工智能将成为复杂知识工作的宝贵伙伴。我花了几周时间才拿到博士学位的东西,人工智能在几秒钟内就完成了,而且出现的错误通常比我的预期要少得多。
Ethan Mollick 把代码解释器比喻成一个「忘记自己会做什么事的大师」,你所要做的就是用提示词去提醒它,告诉它可以帮你制作 GIF、视频甚至 3D 动画等操作。如果 AI 什么都能帮我们做,那作为打工人的我们还有意义吗?这个问题的答案是肯定的。以上述的案例为例,能够想出让 AI「帮忙」的博主们,无一不是在该领域专精的专家,也正是因为这些专家对需要执行的任务有足够的了解,他们才能提出明确的要求(Prompt),让 AI 执行。
也就是说,想要 AI 帮你打工,你得先成为一个靠谱的「甲方」,从思考怎么做,变成怎么可以做得更好。代码解释器展现了一种新的工作可能性:未来,我们可能只需要专注于创意和想法,然后把执行的部分交给 AI 来完成,让人类从工作的劳苦中解脱出来。
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!