目录

GPT-4 到底能帮你干点啥?

1. 从哪儿聊起呢

从 百草堂 到 三味书屋

从 Copilot 到 ChatGPT

从 ChatGPT 到 Copilot Chat

从 Copilot Chat 到 DevChat

烧掉了数不清的 token,走过了数不尽的弯路,被 GPT 逗笑过,也被 GPT 坑哭过……

今日个我想从程序员视角和大伙聊聊我用 GPT-4 干过点啥,GPT-4 又能干点啥?换个高端一点的说法就是:探索下 GPT-4 在软件工程领域的能力边界。

低调。低调一点。

NOTICE: 如果你在追更我的文章,那么下文的内容或许会让你感到“似曾相识”。今天的文章更像是一次总结,下文提到的各种 GPT-4 玩法都在我以前的文章中出现过。所以,你自己决定是不是看下去咯~

2. 潮起潮退

还记得 ChatGPT 开始爆火的那些日子吗?你还记得自己当时的感受不?焦虑过没?恐慌过没?

那些天,各种 ChatGPT 吊炸天的报道铺天盖地,炸了又炸,似乎地主家的“人工智障”一夜之间长大了,智能了,真正的“人工智能”来了!似乎这忽如一夜,第五次工业革命它就来了,AI 要抢走我们的饭碗了,教师要失业了,律师要失业了,程序员要失业了……

你打开手机,只见各种 AI 相关的故事铺天盖地:

  • 一个设计师用 GPT-4 二十分钟就写了一个贪吃蛇游戏。
  • 一家创业公司老板上午用了 ChatGPT,下午就裁员40%!
  • 有人让 GPT-4 当老板,自己跑腿,居然实现了盈利。
  • GPT-4已经可以被视为一个 AGI (通用人工智能)的早期版本!
  • 微软154页研究刷屏:GPT-4 能力接近人类,「天网」初现?
  • GPT 最终会让人类失去思考的能力,人类一切问题依赖 AI,最终被 AI 圈养!
  • ……

你不禁感慨:这一生,有幸亲历一次工业革命,见证人类步入新时代,也是无憾!

不过 ChatGPT 出来了大半年了,GPT-4 问世也近半载了,至今,你却发现身边并没有人真的用 GPT-4 开起了自己的公司,赚到了大钱,走上了人生巅峰;你也没见产品经理亲自写代码,把程序员都逼去卖煎饼果子,当起了跑腿小哥;甚至你身边的程序员也没能完全用 GPT 来生成代码,甚至很大比例的程序员觉得和 GPT 聊天是浪费口水,花那时间澄清需求,调试 Prompt,还不如手撕代码来得快。

潮起,满是泡沫;潮去,一地海鲜。

3. 遇强则强,遇我则……

能力不够,GPT 来凑,我拿到 GPT 后先学了下编程……

本文通过 DevChat 和 GPT-4 交互。相比于 Copilot Chat,DevChat 可以更加灵活地指定聊天上下文,更加自由地自定义 Prompt 模板,因此可以获得更加精准的 GPT 响应。如果你对 DevChat 感兴趣,可以到 DevChat 的官网注册试用。

3.1 玩法一:辅助技能提升

如下图,你可以就某个知识点追问 GPT,让它给你讲解讲解。

/what-can-gpt4-really-do/2.png

经过不知道多少轮的提问,最终我总结了三篇笔记:

而后感觉功力大涨,于是用刚学到的“并发编程”技能写了一个开源的 Golang Worker Pool - GoPool

/what-can-gpt4-really-do/3.png

看着还行,没过多少天涨了大几十 star:

/what-can-gpt4-really-do/4.png

3.2 镜头背后的故事

其实“G老师”没那么贴心,她不会主动把知识点都吐给你。你需要做好“挑螺蛳肉”的准备,不停地追问,还得主动思考、上手实操:

/what-can-gpt4-really-do/5.png

3.3 玩法二:综合“技术选型”

假如你现在需要写一个 API 服务吧,你能很快决定选择哪个 web 框架吗?假如你是个 Java 程序员,啥?你说你是写 Python 的?没关系,OKOK,那我就和你聊聊 Golang 吧。你不熟悉 Golang,于是你祭出 GPT-4,你可以这样问她:

/what-can-gpt4-really-do/6.png

你也可以换个姿势这样问她:

/what-can-gpt4-really-do/7.png

3.4 镜头背后的故事

也别高兴太早,你需要时刻谨记:GPT-4 的训练数据并不是最新的,所以重要的结论你最好 Google 一下,二次确认。

尽管 GPT-4 告诉你 Gin 是最优的,不过,假如,万一,咱就是有没有可能最近1年就是有某个新框架后来者居上了?咱就说有没有可能 Gin 社区没落,核心开发者跑路,这个框架已经被抛弃?总之,GPT-4 并不对它的“承诺”负责。它就那么一说,你就那么一听,最终做决定在你,担责的也是你。

3.5 玩法三:快速生成 Terraform 配置

曾几何时,我需要一个 EC2 实例。不过如你所知我并不是一个专业的运维,我也不想去慢慢翻 AWS 的文档(不专业还懒,快要没救了)。(但是我有 GPT 呀)于是我翻出来了 GPT-4,和它说了这句话:

1
2
3
4
5
6
7
8
我需要一个 EC2 实例用于部署单机版的 KubeSphere,这个实例的要求是:

1. 系统是 Ubuntu 22.04;
2. 规格不小于:2 CPU cores, 4 GB memory, and 40 GB disk space;
3. 可以用 ssh 连接;
4. 所有端口都可以从公网访问;

请给出创建这个 EC2 实例和其所需的 ssh key 对应的 Terraform 配置。

GPT-4 也挺痛快,直接给了一段炫酷的代码:

/what-can-gpt4-really-do/8.gif

3.6 镜头背后的故事

GPT-4 是给了我一段 Terraform 配置代码,不过这段代码并不能“开箱即用”,我必须得先看得懂这段配置,然后告诉它为什么这段代码不行,需要怎么改,于是我还得继续给它提要求:

/what-can-gpt4-really-do/9.png

你以为这就完了?不,这次 GPT-4 给的新配置里出现了ubuntu-focal-22.04-amd64-server,“Focal Fossa”是“Ubuntu 20.04 LTS”版本的代号,而“Ubuntu 22.04 LTS”版本的代号是“Jammy Jellyfish”。你说要怪它吧,也不忍心,毕竟2022年才有的Ubuntu 22.04它没见过呀;你要说不怪它吧,难不成怪我啊?那我更不忍心了。

3.7 玩法四:生成简单的 Python 脚本

“人生苦短,我用 Python……”,转眼已经六年没有写过 Python 了,我在脑子里检索了半天知识库,却发现关于 Python 的就只剩下这句话了。

这不,好巧不巧,这天需要写一个“小程序”,感觉用 Python 是最合适的。尽管我已经对 Python 的语法很陌生,不过这不是有 GPT-4 的嘛,挑战下吧:

/what-can-gpt4-really-do/10.png

最后程序的运行效果如下图,自动创建了一个很大的 md 表格,也生成了一堆 md 文件,皆大欢喜:

/what-can-gpt4-really-do/11.png

3.8 镜头背后的故事

你猜对了,用 GPT 写代码哪有什么岁月静好一帆风顺?这不,GPT-4 这次给的 Python 里藏了一个 bug,于是我又得和它来回解释:

/what-can-gpt4-really-do/12.png

如果你对那天晚上的故事感兴趣,可以跳转这篇文章吃瓜。

3.9 玩法五:构造 bug 复现场景

当别人给你提 bug 时,别忙着改代码,你得先复现问题,万一人家耍你呢?

这不,那天阳光明媚,万里无云,我在逛 GitHub,发现 Helm 被提了一个 bug,于是我就小手一抖,领了。

/what-can-gpt4-really-do/13.png

哎,真是手贱。我随口一说,人家真的把 issue 指给我了。于是,我祭出了 GPT-4:

/what-can-gpt4-really-do/14.png

一派和谐,歌舞升平啊!GPT-4 就这么一顿输出,我就这么一顿复制粘贴,然后:

/what-can-gpt4-really-do/15.png

bug 复现了。

最终我也顺利地给 Helm 提了一个 PR,修复了这个 bug。

3.10 镜头背后的故事

复现归复现,GPT-4 并不能帮助你定位到 Helm 这种复杂度的项目中的 bug,毕竟 Helm 的源码量级已经远远超过 GPT-4 的上下文长度了。没错,GPT-4 无法理解 Helm 的源码,你得自己刷 Helm 源码啊,老大!咳咳,好像不是你要刷,是我要刷…… 惨惨惨。

/what-can-gpt4-really-do/16.png

4. 总结

GPT-4 能帮你干点啥?那取决于你拿它来干点啥。

啥?这个总结太敷衍?好吧,是有点。那就补几句:

  • GPT-4 肯定能用来写代码,能一定程度上提升开发效率;
  • GPT-4 不能保证写的代码完全正确,人需要能够看懂代码,识别错误,修复错误,才能把 GPT 给的代码真正用起来;
  • GPT-4 知识库是21年之前的,很多问题的答案在当下已经变了,所以必要的时候得通过 Google 二次确认;
  • GPT-4 会存在“幻觉”,有时候会“一本正经地胡说八道”。比如信誓旦旦地说已经修复了一个 bug,给出了新的代码,结果还是错的;
  • GPT-4 的对话 token 有大小限制,会聊到后面忘了前面;
  • GPT-4 更擅长在小型项目中,或者是独立,逻辑不太复杂的小块功能开发中发挥作用;大型项目或者是复杂算法往往“沟通成本”比“开发成本”更高。

本文通过 DevChat 和 GPT-4 交互。相比于 Copilot Chat,DevChat 可以更加灵活地指定聊天上下文,更加自由地自定义 Prompt 模板,因此可以获得更加精准的 GPT 响应。如果你对 DevChat 感兴趣,可以到 DevChat 的官网注册试用。