Github Copilot,AI真的可以写代码了!
Hello,Hi,你好,我是猿java。
ChatGPT 已经是当下最火的 AI 项目之一,作为技术的猿哥肯定也要跟上技术潮流,因此,今天就来聊聊使用了半年的 AI 产品:Github Copilot。
Copilot 是什么?
Copilot,中文翻译:副驾驶,辅助器。它是 Github 2021 年 8 月推出的一个新功能,可以帮助开发者在编写代码时提供更智能的建议。
Copilot 由 Codex 提供支持,Codex 是一种由 OpenAI 创建的生成式预训练 AI 模型。 它已经接受了来自公开来源的自然语言文本和源代码的培训,包括 GitHub 上公共存储库中的代码。
Copilot 涉及的几个关键技术点:
- Google Transformer: Google 提出的一种用于语言理解的新型神经网络架构;
- GPT-3:Copilot 是基于 GPT-3 的 AI 模型,它可以根据你的代码片段生成代码建议。GPT-3 是一个自然语言处理模型,底层基于 Transformer 架构;
- 超大规模训练:据说 Copilot 是基于 Github 中所有的开源代码进行训练的,因此,它可以生成任何语言的代码建议;
Copilot 的安装和使用
这里以 ItelliJ IDEA 为例,目前官方支持 4种 IDEA。
购买 Copilot
Copilot 需要付费(目前有 30天的试用期,原来试用期是 60天),购买需要美金,因此需要准备一张可以支付美$的信用卡(Copilot 是通过信用卡付费的),国内的小伙伴可以开通双币信用卡。
Copilot 计费: 个人用户,10$/月, 100$/年。
安装 ItelliJ IDEA Copilot 插件
在 ItelliJ IDEA 的 Marketplace 中搜索 Copilot 插件,安装后重启 IDE,如下图:
登录
如下图,在 ItelliJ IDEA 中登录刚才注册 Github Copilot的账号:
使用
如下图案例: 在 ItelliJ IDEA 中输入 “用 Java实现一个 反转链表的算法” 这样 一行注释后,Copilot 给出了智能的代码建议,如果采用建议,直接按 tab 键。
当然,这里只是给出一个简单的例子,实际使用中,你可以输入更多的代码,Copilot 给出的提醒 和 ItelliJ IDEA的自动提醒是不一样的,它会根据你的代码片段生成代码建议,这样就可以帮助你提高编码效率,减少代码编写的时间。
快捷键
Copilot 提供了一些快捷键,可以很方便地使用。
- 接受建议:Tab
- 拒绝建议:Esc
- 打开Copilot:Ctrl + Enter (会打开一个单独的面板,展示10个建议)
- 下一条建议:Alt/Option + ]
- 上一条建议:Alt/Option + [
- 触发行内Copilot:Alt/Option + \
注意点
因为防火墙的存在,所以墙内的用户可能会遇到 Copilot 不 worker 的问题,原因是 Copilot 无法访问互联网或 Github api。你可能会看到以下错误信息:GitHub Copilot could not connect to server. Extension activation failed: “connect ETIMEDOUT xxx.xxx.xxx:443”。
在这种情况下,你就需要魔法了(你懂的)
更多 Copilot 使用,参考:https://copilot.github.com/
Copilot 使用心得
解放生产力
本人使用 Copilot 有半年的时间,最初使用时因为好奇,后面在实际工作发现:Copilot 确实能够大大解放生产力。本人使用最多的几个点:
1.业务代码逻辑推断
在编写业务代码时,如果遇到一些复杂的业务逻辑,可以通过注释(中英文都可以)的方式,让 Copilot 为我们生成代码,这样就可以快速的编写业务代码,减少重复代码的编写。
2.SQL语句编写
在编写 SQL 语句时,因为需要编写大量的重复代码,因此,使用 Copilot 可以帮助我们快速的编写 SQL 语句,减少重复代码的编写。可以通过编写注释,然后 Copilot 为我们生成 SQL 语句。
3.单元测试代码编写
编写单元测试代码时,因为需要编写大量的重复代码,因此,使用 Copilot 可以帮助我们快速的编写单元测试代码,减少重复代码的编写。可以通过编写注释,然后 Copilot 为我们生成单元测试代码。
4.新语言的学习
因为目前工作需要使用 Python,Golang,如何快速学习以及投入工作是一个很大的挑战,除了从官网,Google 获取该语言基本语法知识和高级特性外,另一方面,在 Idea开发中真实使用 Python,GO的时候,智能的提醒,可以给我更好的使用该语言。
解放思想
AI 或许会成为下一个时代,尽管我不从事 AI 的相关工作,但是,Copilot 的使用,让我体验了 AI 带来的便捷,作为技术人员,既要强化自己的技术深度,同时也要拓展自己的技术广度,多多了解,这样可以更好的开阔技术视野。
保护知识付费,Copilot 需要付费,对于知识付费,我个人还是比较赞成,因为,知识付费即可以保护知识创造者的劳动成果,获得应有的回报,同时,也可以让知识的消费者懂得更好的珍惜,获取价值。
学习交流
如果你觉得文章有帮助,请帮忙转发给更多的好友,或关注公众号:猿java,持续输出硬核文章。