原文
链接: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 关于如何扩展这款应用程序的想法。
无效技巧 3:要求它一步来回折腾了很多遍,它仍未能生成可以运行的代码,这感觉就好像我在带实习生一样,最后我只好要求它一步。
不过,情况似乎并没有改善。我反复尝试了很多遍,始终没能得到可以正常运行的代码。
无效技巧 6:人为介入,重构代码在我看来,GPT-4 似乎不“理解” start 函数。按照最初它编写代码的方式,start 将在用户开始练习以及用户点击“下一个音程”时调用——但它在告诉我如何添加计时功能时,却假设 start 只会被调用一次。如果人类程序员不仔细阅读代码,可能也会做出这样的假设。
所以,我尝试手动重构,可能起一个更好的名字,它就会明白了。
我将 start 分解成了两个函数:start 和一个新函数 nextInterval。GPT-4 似乎很“喜欢”这个名字,因为在之前的反复中它就调用了这个函数。为了尽可能避免混淆,我开启了一个新的聊天会话,并提供了需求和新代码。
但依然没有任何效果。我反复尝试了几次,它甚至生成了一个新版本,却莫名地将 JavaScript 移到了 HTML 中。
有用的技巧:要求它给函数写文档经过这件事后,我经常在想:如果代码中的函数非常清晰且文档齐全,GPT-4 是否能胜任更高级别的抽象工作,而不需要“思考”每个函数的代码?如果有明确的文档说明,它是不是就不会在意那么多细节了?因为人类就是这样,我们大脑能够承受的复杂度是有限的,我们也是通过这种方式构建大型系统的。
于是,我做了一些测试,要求它为代码生成文档。
我将这些函数的文档复制到了源文件中,并在新的聊天中重复了之前的操作,不过 ChatGPT 抱怨我的请求太长,所以我删除了 CSS 文件。
这次它终于成功地生成了代码!虽然用户界面需要完善,但基本要素齐全:你可以选择是否启用计时模式,你可以指定秒数,它会显示一个倒计时,还会在倒计时结束时强制停止练习,并告诉你一共答对了多少道题。
最后一次,ChatGPT 终于生成了可以正常运行的代码,但原因是什么呢?是因为文档,还是因为没有了 CSS,它需要处理的代码量减少了?为了弄清楚,我进行了一些实验,最后发现似乎仅删除 CSS 是不够的。
我们需要反复尝试,才能学会如何与这个外星人(ChatGPT)一起工作。我想知道其他人是否也遇到过这类问题,以及它们如何打破这些限制的。