“两周时间,我体验了 GPT-4 从编程‘神器’变成编程‘智障’!​”

196b7e46976206a01e02ed3e52fb21ac.gif

GPT-4 的出现,令许多程序员直呼“解放双手”,但随着功能需求的逐渐增多,它的编码能力似乎没那么强了。

原文链接:https://klaviyo.tech/gpt-4-from-strong-pair-coder-to-annoying-pair-coder-6e2d202d8bc0

未经授权,禁止转载!

作者 | Eric Silberstein

译者 | 弯月    责编 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

两周前,我让 GPT-4 从头编写一款应用程序。由于这段经历感觉良好,当时我认为 GPT-4 是非常强大的编程伙伴。然而,上周末我让 GPT-4 扩展这款应用程序,却有了完全不同的体验。

因此,我想通过本文记录整个过程,并分享一些心得和技巧。

我的这款应用程序主要是为了帮助用户学习音程:

▶ 如想尝试这款应用,可前往:https://ericsilberstein.github.io/gpt4-interval-trainer/interval-trainer.html

▶ 如想查看源代码,可前往:https://github.com/ericsilberstein/gpt4-interval-trainer

我询问了 GPT-4 关于如何扩展这款应用程序的想法。

e6e0ae69574efc7276e81320ade3d22f.png

我提问:接下来,我们应该添加哪些功能?

GPT-4 回答:

下面是你可以考虑添加到音程听力训练应用功能的一些想法:

1. 自定义音程范围:允许用户选择练习的音程,而不只是练习八度以下的所有音程。

2. 上行、下行以及和声音程:添加分别练习上行、下行以及和声音程或混合模式的选项。

3. 旋律练习:添加生成具有多个音程的短旋律练习功能,供用户辨别。

4. 和弦识别:扩展应用,添加和弦识别练习,允许用户练习通过听力判断和弦。

5. 一段时间内的进度跟踪:实现一个功能,允许用户保存自己的进度,并记录一段时间内的进步程度。

6. 计时练习:添加计时模式,允许用户挑战在规定时间内识别尽可能多的音程。

7. 排行榜和社交功能:创建一个排行榜,鼓励用户之间的友好比拼,允许他们在社交媒体上分享进度。

8. 自定义音频设置:允许用户选择不同乐器或音频播放的声音设置。

9. 移动应用:开发移动应用,方便用户随时随地练习听力。

10. 集成音乐理论课程:提供额外的教学内容,或集成已有的音乐理论课程,帮助用户更好地理解音程的理论知识。

以上是可以考虑的一些想法。你可以根据该应用的规划随意选择,另外你也可以大胆地提出能够改善用户体验和功能的其他意见。

这些想法都很不错。最终我选择采纳第 6 条建议。

56da88c0d9336dab410b786fb52f37d5.png

我提问:我们来试试看第 6 个吧,你可以添加这个功能吗?

GPT-4 回答:

当然可以。下面,我们为你的音程听力训练应用添加计时功能。添加这个功能后,用户就可以在规定时间内识别尽可能多的音程。下面,我将提供实现这个功能的代码片段。

首先,更新 HTML,添加计时控制:

7a41a74c51e0a1fff663fd31b416c693.png

接下来,更新 JavaScript,处理计时逻辑:

30b48b507bab69a1f2ec0724cc740299.png

看到了吗?有经验的人应该一眼就能看出这段代码中存在两个问题:

▶ 首先,它想让我在 <div class=”controls”> 中添加元素,但 HTML 中并没有这个 div。

▶ 其次,它想让我更新函数 handleIntervalButtonClick(),但实际上这个函数也不存在。

e0433efcb019bdaaee2d8460cc303d8e.png

无效技巧 1:阐明需求

这不是什么大问题,我之前也遇到过类似的问题,只需要进一步阐明需求。

然而,与之前不同的是,仅仅阐明需求还不够。GPT-4 像一个糟糕的工程师,没有搞清楚整体状况,就根据我的反馈做出了反应,更可怕的是,它还开始随意修改一些不需要改动的代码。

下面举个例子。我指出了一个问题,它开始尝试解决,但它的 handleIntervalButtonClick() 引用了一个不存在的变量(isAnswering)和一个不存在的函数(playRandomInterval):

8a4b5ac94a9f31f365759facaffa41dc.png

ab5f21991636db1ac0621c722012f266.png

无效技巧 2:提醒代码

后来,我尝试了不同的技巧,“提醒”它一些代码。

5265856bc2987482d85c2dc20e58ae58.png

可是这并没有用。而且很奇怪的是,它似乎知道代码前后要保持一致,但并没有理解我希望它完成的功能(添加计时功能)。

f7427598bb073e35ffabef8358b84591.png


0d2fd0eea2612f4b7dc8ff08163119ef.png

无效技巧 3:要求它倒退一步

来回折腾了很多遍,它仍未能生成可以运行的代码,这感觉就好像我在带实习生一样,最后我只好要求它倒退一步。

f1aeb67481363fdc5ecf78a6680dd328.png

这次终于可以了。给出的反馈是正确的,前面对话中澄清的问题也得到了解决。然后,我再次提醒它一些代码,希望它能正确理解需求,并编写出正确的代码。

e7af797f575d18e3708f1434eb642327.png

可惜失败了,它生成的代码和前面一样都是错的。

26b6a5cc915278be807fc5427e62711a.png

无效技巧 4:开启一个新的聊天会话

接下来,我尝试开了一个新的聊天会话。因为我认为,当前的这段聊天太长了,涉及太多上下文,如果它能专注于需求和当前代码,也许就可以解决问题。

我使用了与两周前一模一样的提示,但额外提供了功能、需求和源代码文件。

b8b18f7431e2a0e4797a3d9aa1d2a8be.png

不过,情况似乎并没有改善。我反复尝试了很多遍,始终没能得到可以正常运行的代码。

12647542967bf45536e2f8d3fd6393e0.png

无效技巧 5:要求它加倍小心

我要求它加倍小心,集中注意力解决它生成的代码中的一个问题:start() 调用 startTimer(),startTimer() 调用 start(),但依然没有用。

9ae84524b5046819b210f1d2c4d1a523.png

a0ff9a35786b025ddd97638522a818e4.png

无效技巧 6:人为介入,重构代码

在我看来,GPT-4 似乎不“理解” start() 函数。按照最初它编写代码的方式,start()  将在用户开始练习以及用户点击“下一个音程”时调用——但它在告诉我如何添加计时功能时,却假设 start() 只会被调用一次。如果人类程序员不仔细阅读代码,可能也会做出这样的假设。

所以,我尝试手动重构,可能起一个更好的名字,它就会明白了。

我将 start() 分解成了两个函数:start() 和一个新函数 nextInterval()。GPT-4 似乎很“喜欢”这个名字,因为在之前的反复中它就调用了这个函数。为了尽可能避免混淆,我开启了一个新的聊天会话,并提供了需求和新代码。

但依然没有任何效果。我反复尝试了几次,它甚至生成了一个新版本,却莫名地将 JavaScript 移到了 HTML 中。

2a6527c2e7ddef08a5bd2070af87c7ad.png

我放弃了:如果对方是一个人类,我会认为这个人头脑不清醒、粗心大意、心不在焉、能力不足,或者四者兼而有之!

初次建立这个项目时,我与 GPT-4 的交互体验与现在截然不同。是不是因为该模型可以“思考”的代码量很有限,而我已经触及上限了?不过至少对人类而言,计时功能与添加其他功能(示例歌曲、统计数据)一样简单,甚至更简单,所以我感觉应该是代码量的问题。

84a42f5c85eb1e7642e33a14db39e1d1.png

有用的技巧:要求它给函数写文档

经过这件事后,我经常在想:如果代码中的函数非常清晰且文档齐全,GPT-4 是否能胜任更高级别的抽象工作,而不需要“思考”每个函数的代码?如果有明确的文档说明,它是不是就不会在意那么多细节了?因为人类就是这样,我们大脑能够承受的复杂度是有限的,我们也是通过这种方式构建大型系统的。

于是,我做了一些测试,要求它为代码生成文档。 

b7c4dd2774164420f2ddb2e1c90bd45d.png

它给了我如下带有文档说明的函数: 

5df07cf17ab84037b76f0295e673e10d.png

我将这些函数的文档复制到了源文件中,并在新的聊天中重复了之前的操作,不过 ChatGPT 抱怨我的请求太长,所以我删除了 CSS 文件。

这次它终于成功地生成了代码!虽然用户界面需要完善,但基本要素齐全:你可以选择是否启用计时模式,你可以指定秒数,它会显示一个倒计时,还会在倒计时结束时强制停止练习,并告诉你一共答对了多少道题。

最后一次,ChatGPT 终于生成了可以正常运行的代码,但原因是什么呢?是因为文档,还是因为没有了 CSS,它需要处理的代码量减少了?为了弄清楚,我进行了一些实验,最后发现似乎仅删除 CSS 是不够的。

我们需要反复尝试,才能学会如何与这个外星人(ChatGPT)一起工作。我想知道其他人是否也遇到过这类问题,以及它们如何打破这些限制的。

推荐阅读:

▶ 用 GPT-4 在黑客大赛上“炸场”:不完全会 Linux、Perl,似乎也没有关系了!

▶ AI 入侵前端,哪类工程师最危险?

▶HarmonyOS 最热门、生态成“老大难”,揭晓数万名开发者眼中的国产操作系统!

f32c858377434906a4b6ea16a0107c49.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22522.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点亮儿童的故事世界,一种会说话的绘本,趣学伴儿童故事放映机体验

四五岁的小孩一般求知欲都特别旺盛,总喜欢听故事,要是放在几年前,我们就得放下手里的活计,翻开故事书来给孩子一页页讲,现在则没这么麻烦了,因为市面上有很多故事机可选,能够自动给孩子播放各种故事、儿歌,用起来也简单,甚至不需要我们去干预,顶多就是帮孩子把电充满…

IT小故事

Java小故事 在最初&#xff0c;Java语言是叫做oak&#xff08;橡树&#xff09;。是因为刚开始公司门口有一颗橡树。所以就叫做橡树。然后发现oak已经被美国橡树公司注册了&#xff0c;就不能再继续使用了。所以需要改名。而程序员最爱喝的是咖啡&#xff0c;盛产咖啡的岛叫做爪…

用魔法打败魔法?ChatGPT杀手——GPTZero诞生历程

自2022年11月上线以来&#xff0c;人工智能聊天机器人ChatGPT在教育领域引起了巨大的波澜。众多学生已经将ChatGPT封神&#xff0c;甚至称呼ChatGPT为“论文亲爹”&#xff0c;我虽然非常不认可这种叫法&#xff0c;但是也不得不承认ChatGPT的强大。 该机器人能够非常逼真地模…

AI是律师的助手而非替代品,ZipZap.AI插件能帮你理解它们之间的关系

近期在TikTok讨论度很高的“Lawyer VS ChatGPT”短视频&#xff0c;引起了对于AI是否会替代律师的讨论。画家崔大卫曾经通过询问ChatGPT和律师同一个法律问题&#xff0c;得出了大致相同的答案并选择炒掉了自己的律师&#xff0c;但是评论区认为如果仅仅只把律师当做一个法律问…

说话人识别和说话人性别识别SDK-通过语音判断说话人,及说话人的性别

根据语音片段进行性别判断&#xff0c;以及说话人识别的SDK&#xff0c;c/c实现。 利用GMM-UBM算法&#xff0c;可以进行说话人识别&#xff0c;或者性别识别&#xff0c;可以参考<声纹识别之Alize入门教程(二)&#xff1a;GMM-UBM>。 进行性别识别的时候&#xff0c;将…

语音识别(Speech Recognition)

来源&#xff1a;Coursera吴恩达深度学习课程 现今&#xff0c;最令人振奋的发展之一就是seq2seq模型&#xff08;sequence-to-sequence models&#xff09;在语音识别&#xff08;speech recognition&#xff09;方面准确性有了很大的提升。我们来看看seq2seq模型是如何应用于…

【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址(1)

【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址&#xff08;1&#xff09; 爬取结果&#xff1a; 火狐&#xff08;Firefox&#xff09;如何移除add security exception添加的网站&#xff1a;http://blog.itpub.net/26736162/viewspace-2286064/ 如何将网页…

【云和恩墨】内外兼修:Oracle ACED熊军谈Oracle学习

原创 2016-07-07 熊军 编辑手记&#xff1a;熊军是中国西部第一位&#xff0c;也是到目前为止唯一的Oracle ACE总监&#xff0c;在这篇文章中熊军描述了他的学习过程和理念供大家参考。 ORACLE 的学习&#xff0c;就好比武侠小说中学武功。要从三方面入手&#xff1a; 1、…

快跑!传说中的GPT4真的来了!多模态,吊打旧版ChatGPT!

原文&#xff1a;快跑&#xff01;传说中的GPT4真的来了&#xff01;多模态&#xff0c;吊打旧版ChatGPT! - 知乎 目录 牛逼!!! 对不起&#xff0c;我实在没忍住说出这两个字&#xff01; 过了一遍资料&#xff0c;先说结论&#xff1a;GPT4这波OpenAI直接王炸&#xff01;…

GPT4来了?10秒钟做一个网站

GPT4来了&#xff1f;10秒钟做一个网站&#xff01; 好了&#xff0c;我可以像雪容融一样躺平了&#x1f914; 为什么雪容融都会wei gui&#xff01;&#xff01;&#x1f92c; 言归正传&#xff0c;3月15日&#xff0c;#GPT4做一个网站只要十秒#登上热搜。 根据视频中的演…

《花雕学AI》AI时代来临,互联网教父凯文·凯利给你50条生存指南:5000天后的世界会是什么样?

你知道凯文凯利吗&#xff1f;他是《连线》杂志的创始人之一&#xff0c;被誉为“世界互联网教父”&#xff0c;他的预言和观点影响了无数人的思考和行动。他曾经预言过互联网、社交媒体、区块链等技术的发展和变革&#xff0c;而现在&#xff0c;他又给我们带来了一个全新的预…

雅虎正式成立 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 3 月 2 日&#xff0c;在 1983 年的今天&#xff0c;世界上首张数码音乐唱片上市&#xff0c;从此改变了接下来二十多年的音乐产业。从光盘存储器、可记录光盘到…

刚自愿降薪 40% 的库克,要被“踢出”苹果董事会了?

整理 | 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 没想到 2 月的尾巴&#xff0c;我们还没等来苹果春季发布会的音信&#xff0c;却听到了库克要被“踢出”苹果董事会的传闻&#xff1a; 据外媒 FOX Business 报道&#xff0c;美国国家法律和政策中心…

LangChain与大型语言模型(LLMs)应用基础教程:神奇的Agent

LangChain是大型语言模型(LLM)的应用框架,LangChain可以直接与 OpenAI 的 text-davinci-003、gpt-3.5-turbo 模型以及 Hugging Face 的各种开源语言模如 Google 的 flan-t5等模型集成。通过使用LangChain可以开发出更为强大和高效的LLM的各种应用。 今天我们就来实现一个神奇的…

一文读懂大语言模型

以ChatGPT为代表的大语言模型被很多人认为是新一轮科技革命的起点&#xff0c;本文旨在通过概念性介绍&#xff0c;让普通人能够尽可能理解人工智能以及大语言模型的基本概念&#xff0c;从而了解这些技术能做以及不能做什么。原文: A Very Gentle Introduction to Large Langu…

新手小白教程之 圈X-QuantumultX 某青极速版自动签到阅读

自动签到阅读功能 今天给大家带来QX的进阶玩法&#xff0c;实现阅读极速版的自动签到&#xff0c;自动阅读功能。我们今天的功能并不在重写或调试模块进行操作&#xff0c;直接在配置文件进行操作是最快最方便的。下面开始今天的教程。欢迎大家入群交流&#xff1a;868199154 …

0代码基础小白使用ChatGPT做出一款谷歌全屏截图插件的全过程

ChatGPT云炬学长 公众号&#xff1a;云炬网络 1 人赞同了该文章 开篇说明&#xff1a; 1、本次完全不懂代码&#xff0c;不知道什么Java、c&#xff0c;真正0基础开局&#xff1b; 2、以下是我按照时间顺序记录全过程&#xff0c;重点是记录使用ChatGPT的过程&#xff1b;…

看我用ChatGPT如何快速生成思维导图

这一节给大家分享下如何利用ChatGPT快速生成思维导图&#xff0c;先看效果图&#xff1a; 首先去ChatGPT提问题&#xff1a;如下图&#xff0c;生成MarkDown格式的内容。 把这些内容复制到支持MarkDown格式的编辑器&#xff0c;如果你没有这样的编辑器也没关系&#xff0c;你用…

用python画梵高星空-python画画梵高

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 众多的第三方库; 解释执行,不需要编译; 跨平台,方便移植;..... 两个词总结起来就是:简单、方便。 2“不务正业”的python更可怕的是,某些实用主义者将py…

AI绘画人像promt分享

Promt Checkpoint为基础模型&#xff0c;常用chilloutmix和majicmixRealistic 在设置好checkpoint后&#xff0c;即可设置promt,按照经验来说&#xff0c; promtBase promtDescription promtlorapositive TextureStyle promt 其中的positive Texture和lora根据需求可以从c站…