作者: 陈立兵 (出海创业者, 原阿里云 P9)
ChatGPT 介绍
OpenAI 发布了最新的 ChatGPT 产品,官方 blog 为 ChatGPT: Optimizing Language Models for Dialogue。 Chat 顾名思义就是以对话方式进行交互,通过对话格式 ChatGPT 可以回答后续问题、承认错误、挑战不正确的前提并拒绝不适当的请求。此外对话也是有上下文支持的,这样可以更方便 AI 更准确地回答你的问题。
Twitter 上已经有非常多关于 ChatGPT 的讨论,给出的样例也非常多,Elon Musk 都发了几个关于 ChatGPT 的 tweets。基于问答生成代码就不用说啦,其他诸如帮助查找代码的 Bug、生成测试数据、帮你编写文档、写诗等,都不在话下,可以说 ChatGPT 被玩坏啦,而且完成各种花样。 个人觉得 Building A Virtual Machine inside ChatGPT 这篇文章不错, 可以非常直观地体验ChatGPT 的 Chat 交互和上下文理解能力。
ChatGPT 之程序员
首先让我们看一下 ChatGPT 的官方介绍,这里我贴一下 Google Translate 后的截屏,方便大家,如下:
例子(Examples)和能力(Capabilities)自然不用介绍啦,大家都明白。这里要说明一下限制(Limitations),当然ChatGPT可能给出一些不正确或者有偏见的内容, 这个大家也都理解,毕竟AI也不是万能的。此外还有一个就是对2021年后的世界和事件的了解有限
,也就是时间有限制,ChatGPT不能快速了解当下发生的一些事情,这个大家使用一定要注意。
如你的产品API在2022年有较大的改动,那么ChatGPT可能给出不是最新的内容,如询问ChatGPT给出一个Java RSocket Server Example
答案,ChatGPT给出的代码并不是使用最新的API, 这个可能会导致代码不正确,如部分API已经被废弃或者删除,这个时候就需要你自行修改了。
其他方面个人试用下来都非常不错,对各种开发语言支持都比较好,如果你是一个全栈工程师或者了解多种编程语言的话,那么ChatGPT就太有帮助啦。
GitHub Copilot vs ChatGPT
个人是GitHub Copilot的用户,而且我们小团队内基本都是使用GitHub Copilot的,所以稍微对比一下这两者,毕竟都是Code AI。
GitHub Copilot是在编辑器中直接代码提示,上下文理解能力更好一些,如果代码的命名非常规范,如Class Name, Method/Function Name, Parameter Name等,当然还有一些注释, 那么GitHub Copilot的代码提示就会更加准确,关键是和编辑器集成,也更方便程序员使用。
前面我们也说道啦ChatGPT的时间限制,如果你使用到API是2022年的,那么ChatGPT可能就无能为力啦,但是GitHub不存在这个问题,它能自动学习,在你使用新的API后,GitHub就能够以新的API进行代码提示,这点上是非常好的。
相反ChatGPT是以对话聊天方式进行的,所以开发人员使用的频率可能并没有那么高,当然这个估计很快就会被解决啦,IDE中集成一些ChatGPT并不是什么大的挑战,目前集成的最大难度可能就是ChatGPT还没有提供对应的 Open API。 目前有一个ChatGPT VS Code插件,地址为 https://github.com/mpociot/chatgpt-vscode
还有一点就是收费策略,目前GitHub Copilot大概是 100美元/年,而ChatGPT是基于Token收费的,用多少付多少,个人觉得还是非常合理的,毕竟不少程序员也不是每天都在编写大量代码,GitHub Copilot也未必那么频繁,此外对于不发达地区的程序员来说,100美元/年也是一笔不小的开销。
可以说,目前GitHub Copilot对程序员来说可能更实用一些。如果是文档方面,可能ChatGPT更有优势,帮助你完善技术文档完全不在话下。
中文和英文
ChatGPT是支持中文的,所以你使用中文提问完全没有问题。但是这里有一个小问题就是OpenAI的收费策略,是基于Token的,这里我给出一个样例:
你可以看出来啦,如果你使用中文提问的话,你可能要多付3-4倍的费用,所以如果能使用英文提问的话,还是建议使用英文提问,毕竟大家都要省点钱不是嘛。
在给大家上一下ChatGPT大致的收费,我发起了37次请求(英文问答),最后的费用为$0.00034,这个还是非常合理的,相当于10美元可以调用100万次,这个价格已经非常合理,要知道GitHub Copilot收费是10美元/月。
ChatGPT多大程度上取代Google?
不少人都在讨论这个问题,个人觉得ChatGPT也一些方面还是非常有优势的。假设你并不太懂JUnit 5
,你想大致了解一下JUnit 5,那么这种基于Chat的方式还是非常有帮助的。 如你只要连续提问就可以啦,如What's JUnit 5?
, Give me an example of JUnit 5
, Please list some Junit 5 extensions
, Please give me an example of Junit 5 with Mockito
。 但是这个也不是绝对的,如果你使用Google搜索到一篇关于JUnit 5的好的文章的话,那么阅读这篇文章获得的知识可能要比从ChatGPT中获得的知识要多。
此外还有一个问题就是,Google搜索会给你对应的出处,也就是来源站点,而在ChatGPT中,你可能并不知道这个答案是从哪里来的,是否绝对权威,这个就需要你自己判断了。
ChatGPT vs StackOverflow
估计还是有很多同学使用Google搜索好的文章,但是ChatGPT绝对会对StackOverflow有一定的影响,ChatGPT可是给你代码的,而且正确率也是非常高的,所以可能一些初学开发者会转向ChatGPT去搜索代码片段,而不是StackOverflow。
总结
Code AI迟早是要步入程序员的日常生活的,我现在的编写代码和相关的文档,基本上都是要使用到GitHub Copilot的,主要是效率的要求。 目前ChatGPT的Open API还没有开放,但是未来可能想象的空间就比较大,如帮你诊断代码(GitHub Copilot还没有改特性),文档纠错,技术产品集成自动回复和提示等,这个想象空间还是非常大的。 你可以参考一下11 business ideas you could build on ChatGPT
当然最后一个不好的消息和各位程序员分享一下:
想要了解更多?
加入我们微信群,定期推荐有趣的开发者工具,一起参与讨论和交流。扫下面二维码加好友拉你进群: