谁应该学习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 发起人 & 核心开发者,终身程序员。

相关推荐
customer0840 分钟前
【开源免费】基于SpringBoot+Vue.JS个人博客系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
qq_4592384944 分钟前
SpringBoot整合Redis和Redision锁
spring boot·redis·后端
灰色人生qwer1 小时前
SpringBoot 项目配置日志输出
java·spring boot·后端
阿华的代码王国1 小时前
【从0做项目】Java搜索引擎(6)& 正则表达式鲨疯了&优化正文解析
java·后端·搜索引擎·正则表达式·java项目·从0到1做项目
EQUINOX11 小时前
lab4 CSAPP:Cachelab
java·后端·spring
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS打卡健康评测系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
一小路一1 小时前
Go Web 开发基础:从入门到实战
服务器·前端·后端·面试·golang
(; ̄ェ ̄)。2 小时前
在Nodejs中使用kafka(三)offset偏移量控制策略,数据保存策略
分布式·后端·kafka·node.js
paterWang2 小时前
基于SpringBoot的驾校报名小程序系统设计与实现(源码+文档)
spring boot·后端·小程序
晨陌y3 小时前
DeepSeek vs ChatGPT:AI 领域的华山论剑,谁主沉浮?
人工智能·chatgpt