聊一下最近互联网热门话题 AI,AI现在比较热门的两个应用一个是ChatGPT,另外一个是AI绘画。这次就聊聊我在项目开发中使用ChatGPT的真实感受。(AI绘画也在体验中,等我用一段时间之后再聊聊)
我在项目开发中使用的ChatGPT Plus,与免费版本相比速度更快,不用排队,而且可以使用GPT-4.0模型。这里要感谢一下我的同事:队长,帐号是他提供的。因为每个人的职业不同,提问的问题不同,那么ChatGPT对每个人的感受也不一样。我主要是从程序员的角度来谈一下ChatGPT对程序开发的影响。你可以让他帮你写一个组件,例如让它实现一个在Unity Text组件里面的文本支持超链接点击功能。它会推荐你使用使用 TMP插件,并且给出你使用的demo代码。如果你告诉它:我不想使用TMP插件来实现,我想通过重写Text组件来实现。这个时候它会给你一段实现了的demo代码,你复制代码到Unity里面测试会发现有错误,因为它给的代码调用的接口是就旧版本Unity的,你再告诉它这个里面有错误,最好告诉它哪里报错了。这个时候它会继续给你参考代码,说已经修复了错误。经过这样几次反复对话,最终可以获得一个可以在Unity里面成功运行的代码片段。如果我们认真阅读这段代码会发现这段代码还有很多需要优化的地方,这确实只是一个demo代码,仅供参考,无法在项目内实际使用。(说句实话,第一次看到ChatGPT在对话框里面把代码一行一行的写出来的时候,我当时确实很震撼,感觉好新奇,好NB,有点科幻电影里面的既视感)
再来看另外一个例子,这次让它写的是一个项目外围辅助脚本。需求是这样的:我需要把指定目录下面的某些类型的文件,拷贝覆盖到另一个目录,这个脚本需要使用批处理来实现。
首先向ChatGPT提问一般需要告诉它上下文,然后再追问具体的问题细节,所以在ChatGPT聊天页最好多创建几个会话页,每一个会话起上具体的问题名字,这样方便下次追问。下面是我和ChatGPT的整个对话过程:
Me:你了解Windows系统下面的批处理指令吗?我需要一个从指定目录拷贝覆盖到另外一个目录的脚本
GPT:给了我一个脚本
Me:(我测试上面脚本可以运行继续追问)我希望这个脚本能统计我总共拷贝了多少个文件,其中多少个是新增,多少个是覆盖
GPT:给了我一个脚本
Me:(我测试上面脚本可以运行继续追问)我希望在输出的文本有不同的颜色显示,例如最后一行echo输出的successful end 是绿色的
GPT:给了我一个脚本
Me:(我测试发现有一些bug,继续追问,GPT继续修复,直到达到我的要求)这个脚本不能拷贝子目录和子目录下面的文件,能否帮我修复一下
GPT:给了我一个脚本
Me:(我测试发现一些bug,继续追问,GPT继续修复,直到达到我的要求)我希望这个脚本在Mac机器上面也可以正常运行
GPT:把上面脚本用shell语法重写了一份,然后给了我一个脚本
整个对话过程用流程图大概是这个样子:
整个流程跑下来也是花费了很多时间,如果不问ChatGPT而是通过Google网上搜索类似的脚本或者看批处理脚本语法自己来写,估计耗时和这个差不多。但是如果把批处理脚本写好了,让它帮你转换成Mac上面能运行的Shell脚本,这个时候速度就非常快。如果是自己再写一遍shell脚本,那还会花费大概同样的时间。这个时候就体现出了ChatGPT的有事。ChatGPT还有一个优势就是可以让它帮你解析一段代码的含义。例如我把刚才的批处理脚本发给它,它就给我了答案。
最后总结一下ChatGPT,对于程序开发来说它可以协助编写一些辅助脚本或者对一些脚本给出解释和分析。对于一些复杂的逻辑或者功能,现在ChatGPT还不能给出准确的答案,需要反复的追问,修复bug,最终才能给到你想要的答案。我个人认为ChatGPT的出现没有改变程序员的开发习惯,应该只是多了一种选择,可以更好的辅助我们编写代码。
by 2023-4-5 清明节 周三 晚上