简介

GitHub Copilot 是一款 AI 结对程序员,可帮助您更快、更少地编写代码。它从注释和代码中提取上下文,以立即建议单独的行和整个函数。GitHub Copilot 由 GitHub、OpenAI 和 Microsoft 开发的生成式 AI 模型提供支持。它可作为 Visual Studio Code、Visual Studio、Neovim 和 JetBrains 集成开发环境 (IDE) 套件的扩展。

官网地址:https://github.com/features/copilot

如何使用

环境准备

  • 具备流畅访问 github 官网的网络环境。
  • IDE:支持 JetBrains IDEs、Visual Studio 等集成开发环境。

环境安装

1、进入官网github-copilot注册信息。

2、github-copilot 收费 10 美元一个月,需要先填写信用卡信息,但是可以免费试用 30 天,所以可以在 30 天到期前取消续费。

人工智能 | 结对编程助手GithubCopilot_github

3、准确填写信用卡信息后点击 submit 就完成了。

人工智能 | 结对编程助手GithubCopilot_github_02

4、打开 ide,以下以 pycharm 为例,打开 settings -> plugins -> marketplace ,搜索 github copilot 点击 install 后等待安装完成点击 restart ide。

人工智能 | 结对编程助手GithubCopilot_github_03

5、安装完插件后,在 pycharm 进行登录,点击 tools -> github copilot -> login to github。

人工智能 | 结对编程助手GithubCopilot_软件测试_04

6、点击 copy and open,点击验证码粘贴到弹出的浏览器中,点击 continue 后,点击授权 Authorize GitHub Copilot Plugin。

人工智能 | 结对编程助手GithubCopilot_github_05

7、等待 pycharm 加载后就可以使用 github copilot 了。

人工智能 | 结对编程助手GithubCopilot_Visual_06

实践演练

使用说明

  1. PyCharm 右下方状态栏中,红圈表示 GitHub Copilot 的logo,表示开启 GitHub Copilot 插件。
  2. 不论是编写代码中的注释,还是一句执行代码,或是一个代码块、一个函数,GitHub Copilot 都会随着你的输入过程,不断提供代码补全建议。

注意事项:

  1. GitHub Copilot 也可能猜错你打算写的代码,但只要你继续输入,它就会给出新的建议。
  2. 对于任何给定的输入,GitHub Copilot 可能会提供多种建议。可以根据需求选择要使用的建议,也可以拒绝所有建议。
  3. 用户可以启用或禁用 GitHub Copilot:单击 PyCharm 右下方状态栏中的状态图标选择启用或禁用 GitHub Copilot 的建议 。

相关快捷键

人工智能 | 结对编程助手GithubCopilot_软件测试_07

使用 Copilot 编写一个快速排序

1、输入相关注释以及开头。

人工智能 | 结对编程助手GithubCopilot_github_08

2、它会自动开始补全代码。灰色部分是它提示的代码,点击 tab后就可以接收它的建议了。

合并两个列表,并且排序

1、输入注释与要求: 合并两个列表,并且排序
根据提示的需求,一直按tab键,中间会自动产生注释以及实现的代码,以下所有的代码都是自动生成:

def merge_list(list1, list2):
 # 合并两个列表,并且排序
 # 1. 定义两个指针,分别指向两个列表的第一个元素
 p1 = 0
 p2 = 0
 # 2. 定义一个新的列表,用于存储合并后的结果
 result = []
 # 3. 循环比较两个指针所指向的元素,将较小的元素添加到新的列表中
 while p1 < len(list1) and p2 < len(list2):
     if list1[p1] < list2[p2]:
         result.append(list1[p1])
         p1 += 1
     else:
         result.append(list2[p2])
         p2 += 1
 # 4. 将未比较完的列表中的元素添加到新的列表中
 result += list1[p1:]
 result += list2[p2:]
 # 5. 返回新的列表
 return result

2、编写一个单元测试用例,测试是否实现,编写一个函数名为def test_merge_list():,其他使用自动补全,最终单元测试用例生成的结果为:

def test_merge_list():
   assert merge_list([1,2,5], [3,4,6]) == [1,2,3,4,5,6]

取消 github coilpot 订阅

这里显示 10 美元是下个月的扣费本月是没有费用产生的。点击右上角头像 -> settings -> billing and plans -> plans and usage 划到下处取消 github coilpot 的订阅。

人工智能 | 结对编程助手GithubCopilot_软件测试_09

总结

  1. Copilot 的环境安装与使用都非常简单,可以把它当作一个在 IDE 中使用的ChatGPT。
  2. 一些明确的代码逻辑,可以交给它完成。
  3. Copilot并非所有的输出都是正确的,在使用的过程中,需要适当进行纠错。

注意:Copilot是一个收费软件,如果试用期过后不想继续使用,一定要记得取消订阅