谁应该学习ChatGPT?

引言

ChatGPT一经推出,火爆全世界。而在我们日常的编程开发中,Copilot 带来的各种便利,也无时无刻的提醒着我们:AI 从来没有离我们这么近,这么接地气。

那么,ChatGPT有啥用?和我有啥关系?我应该学习 ChatGPT吗?现在学习 ChatGPT 还晚吗?

带着这些问题,我们来看一个真实案例,看完后或许你会有答案。

案例背景

作者最近在开发一个数据库脏数据修复脚本,但是由于考虑不全,修复后产生了新的问题,需要对修复数据进行二次处理。

因为公司客户采用私有化部署,所以会有对应的技术支持(售后)专门对接和解决客户问题。

而恰巧对接这个客户问题的技术支持对 Linux 命令、正则这一些文本处理类的技能不太熟练,于是就有了ChatGPT 的用武之地。

要做什么

扫描脚本生成的 SQL 语句文件,大概有 5000 条数据(抛开注释),内容格式为:

sql 复制代码
-- 2653876.docx
update ets.resources_tags set otag='17F57AF9E54044029E8EEAF7CA0B731D' where objectId='00000DFEAE284C389BECAC3C2FE28E57';
-- 8827560.docx
update ets.resources_tags set otag='98F198C57C4E4B8CBE3D37030C7C325D' where objectId='00000A78E9D14058A2DC19780F6F4AAB';
-- 7888598.docx
update ets.resources_tags set otag='E36BCA0E263B4294A8F8A4934D50E9CB' where objectId='00000F87F8C84BD78EECB59E392DDE29';

现在需要对这个文件进行二次处理:

  1. 把这 5000 条数据的 otag 值批量改为 2024
  2. 查询这 5000 条数据中,那些数据造成了二次错误,统计一下有多少条。

任务一可以用任何编辑器,比如 VS Code 查找+替换处理。任务二稍微麻烦一点,需要解析这个文件,然后从 otag 中提取 '' 中的内容,替换到下面 SQL 语句的 in 中:

sql 复制代码
select count(1) from eofs.metadata where objectId in
('ABC3D6FBD5194B4981EA4AE7A804A633', '2A97CA7AA33A45D9AE03158102AA69FF', '4B94D26B88CD4F519B0F413073E5D09C')
and basic_attr=4 and name ='0';

我们看到,这本质上就是一个数据处理的场景,涉及到 Linux命令、正则表达式和 SQL 等技术,于是这位同事绞尽脑汁:

如果是你,你会怎么做?

而我是怎么做的呢?我问了下 ChatGPT,5分钟就解决了上面的2个问题:

  1. 把这 5000 条数据的 otag 值批量改为 2024
  2. 查询这 5000 条数据中,那些数据造成了二次错误,统计一下有多少条。

下面让我们看一下,我是怎么提问的并一步一步解决上面的问题的。

使用 ChatGPT 处理数据

第一步:提取 otag 值

第一个问题,为了把这 5000 条数据的 otag 值批量改为 2024,我需要把文件里面的 otag 值提取出来,以构造下列 SQL 语句:

sql 复制代码
update eet.sresources_tags set otag='2024' where parentId in ('value1', 'value2', ...);

我是这样问的:

使用 sed 命令,从下面的文本中能提取 otag='' 中的值: -- 2653876.docx update ets.resources_tags set otag='17F57AF9E54044029E8EEAF7CA0B731D' where objectId='00000DFEAE284C389BECAC3C2FE28E57'; -- 8827560.docx update ets.resources_tags set otag='98F198C57C4E4B8CBE3D37030C7C325D' where objectId='00000A78E9D14058A2DC19780F6F4AAB'; -- 7888598.docx update ets.resources_tags set otag='E36BCA0E263B4294A8F8A4934D50E9CB' where objectId='00000F87F8C84BD78EECB59E392DDE29';

ChatGPT回答:

我们测试一下,首先准备一个文件,内容如下:

我们把命令贴进去,执行后:

牛逼!你还在查 sed 命令和语法,而我已经下班了。

第二步:合并逗号拼接

上面的格式,同事说还得手动行转列,加逗号拼接,太麻烦:

行,继续问:

使用 sed 命令,从下面的文本中能提取 otag='' 中的值,并用 , 拼接: -- 2653876.docx update ets.resources_tags set otag='17F57AF9E54044029E8EEAF7CA0B731D' where objectId='00000DFEAE284C389BECAC3C2FE28E57'; -- 8827560.docx update ets.resources_tags set otag='98F198C57C4E4B8CBE3D37030C7C325D' where objectId='00000A78E9D14058A2DC19780F6F4AAB'; -- 7888598.docx update ets.resources_tags set otag='E36BCA0E263B4294A8F8A4934D50E9CB' where objectId='00000F87F8C84BD78EECB59E392DDE29';

测试:

第三步:加单引号

到这里,这位同事发现 ChatGPT 好用了,于是主动让我再问一下:

来,改问题:

使用 sed 命令,从下面的文本中提取 otag 的值,并用 , 拼接逗号拼接,并且前后增加单引号括起来。 -- 2653876.docx update ets.resources_tags set otag='17F57AF9E54044029E8EEAF7CA0B731D' where objectId='00000DFEAE284C389BECAC3C2FE28E57'; -- 8827560.docx update ets.resources_tags set otag='98F198C57C4E4B8CBE3D37030C7C325D' where objectId='00000A78E9D14058A2DC19780F6F4AAB'; -- 7888598.docx update ets.resources_tags set otag='E36BCA0E263B4294A8F8A4934D50E9CB' where objectId='00000F87F8C84BD78EECB59E392DDE29';

测试:

小结

到这里,我们喝着茶,聊着天,敲了几次键盘,就完成了一个数据处理任务,不需要查 sed 命令、正则表达式语法。

我们把这种文件:

sql 复制代码
-- 2653876.docx
update ets.resources_tags set otag='17F57AF9E54044029E8EEAF7CA0B731D' where objectId='00000DFEAE284C389BECAC3C2FE28E57';
-- 8827560.docx
update ets.resources_tags set otag='98F198C57C4E4B8CBE3D37030C7C325D' where objectId='00000A78E9D14058A2DC19780F6F4AAB';
-- 7888598.docx
update ets.resources_tags set otag='E36BCA0E263B4294A8F8A4934D50E9CB' where objectId='00000F87F8C84BD78EECB59E392DDE29';

通过向 ChatGPT 提问:使用 sed 命令,从下面的文本中提取 otag 的值,并用 , 拼接逗号拼接,并且前后增加单引号括起来。

不费吹灰之力,转换成了我们想要的SQL:

从此,又多了一个粉丝:

批量转换为 2024

小伙伴尝到了甜头,奈何没有梯子,于是又委托我:

小 case,上 GPT:

使用 linux 命令,把下面文本中的 otag='' 的值统一替换为 2024: -- 2653876.docx update ets.resources_tags set otag='17F57AF9E54044029E8EEAF7CA0B731D' where objectId='00000DFEAE284C389BECAC3C2FE28E57'; -- 8827560.docx update ets.resources_tags set otag='98F198C57C4E4B8CBE3D37030C7C325D' where objectId='00000A78E9D14058A2DC19780F6F4AAB'; -- 7888598.docx update ets.resources_tags set otag='E36BCA0E263B4294A8F8A4934D50E9CB' where objectId='00000F87F8C84BD78EECB59E392DDE29';

测试:

优秀。

文心一言

因为没有梯子,百度的大模型刚好又公测了,我想着推荐一波,然而我只能说,还有进步空间:

测试(语法错误😀):

生成一串很长的代码:

总结

所以,谁应该学习 ChatGPT 呢?我的答案是任何人。

特别是和计算机打交道的,软件工程师、测试、技术支持等就不说了,公司另外一个让我印象深刻的一个例子是:老板秘书都在使用 ChatGPT,用来干啥?会议录音,自动转换为文字,管项目时,让 GTP 解释 SQL。


作者简介:一线Coder,公众号《Go和分布式IM》运营者,开源项目: CoffeeChatinterview-golang 发起人 & 核心开发者,终身程序员。

相关推荐
raoxiaoya1 小时前
同时安装多个版本的golang
开发语言·后端·golang
KY_chenzhao2 小时前
ChatGPT与DeepSeek在科研论文撰写中的整体科研流程与案例解析
人工智能·机器学习·chatgpt·论文·科研·deepseek
考虑考虑3 小时前
go使用gorilla/websocket实现websocket
后端·程序员·go
李少兄3 小时前
解决Spring Boot多模块自动配置失效问题
java·spring boot·后端
金木讲编程3 小时前
用Function Calling让GPT查询数据库(含示例)
gpt·ai编程
Piper蛋窝4 小时前
Go 1.19 相比 Go 1.18 有哪些值得注意的改动?
后端
码农BookSea4 小时前
不用Mockito写单元测试?你可能在浪费一半时间
后端·单元测试
codingandsleeping5 小时前
Express入门
javascript·后端·node.js
ss2736 小时前
基于Springboot + vue + 爬虫实现的高考志愿智能推荐系统
spring boot·后端·高考
专注API从业者6 小时前
《Go 语言高并发爬虫开发:淘宝商品 API 实时采集与 ETL 数据处理管道》
开发语言·后端·爬虫·golang