51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Github Copilot,AI真的可以写代码了!

Hello,Hi,你好,我是猿java。

ChatGPT 已经是当下最火的 AI 项目之一,作为技术的猿哥肯定也要跟上技术潮流,因此,今天就来聊聊使用了半年的 AI 产品:Github Copilot。

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 的安装和使用 {#Copilot-的安装和使用}

这里以 ItelliJ IDEA 为例,目前官方支持 4种 IDEA。

img.png

购买 Copilot {#购买-Copilot}

Copilot 需要付费(目前有 30天的试用期,原来试用期是 60天),购买需要美金,因此需要准备一张可以支付美$的信用卡(Copilot 是通过信用卡付费的),国内的小伙伴可以开通双币信用卡。

Copilot 计费: 个人用户,10$/月, 100$/年。

安装 ItelliJ IDEA Copilot 插件 {#安装-ItelliJ-IDEA-Copilot-插件}

在 ItelliJ IDEA 的 Marketplace 中搜索 Copilot 插件,安装后重启 IDE,如下图:

img.png

登录 {#登录}

如下图,在 ItelliJ IDEA 中登录刚才注册 Github Copilot的账号:

img.png

使用 {#使用}

如下图案例: 在 ItelliJ IDEA 中输入 "用 Java实现一个 反转链表的算法" 这样 一行注释后,Copilot 给出了智能的代码建议,如果采用建议,直接按 tab 键。

img.png

当然,这里只是给出一个简单的例子,实际使用中,你可以输入更多的代码,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 有半年的时间,最初使用时因为好奇,后面在实际工作发现: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 需要付费,对于知识付费,我个人还是比较赞成,因为,知识付费即可以保护知识创造者的劳动成果,获得应有的回报,同时,也可以让知识的消费者懂得更好的珍惜,获取价值。

学习交流 {#学习交流}

赞(1)
未经允许不得转载:工具盒子 » Github Copilot,AI真的可以写代码了!