火影 发表于 2024-7-29 05:43:35

AI自动写代码:GitHub copilot插件在Idea的安装和利用教程

GitHub Copilot 是微软与OpenAI共同推出的一款AI编程工具,基于GitHub及其他网站的源代码,根据上文提示为程序员自动编写下文代码,可以极大地提高编写代码的效率。
先看看ChatGpt是怎么回答Copilot的功能特点:
https://i-blog.csdnimg.cn/blog_migrate/a02a15859fb68792385570e931f55ce3.png
给各人简单提取一些关键信息,GitHub Copilot 是微软与OpenAI共同推出的一款AI编程工具,基于GitHub及其他网站的源代码,根据上文提示为程序员自动编写下文代码,可以极大地提高编写代码的效率,焦点功能如下:


[*]根据已有上下文补全代码
[*]根据函数名和参数,天生方法体
[*]根据解释自动天生代码
[*]代码优化
[*]天生测试代码
Copilot利用的是OpenAI烧了数万万美元研发出来的GPT-3.5模型,Copilot在GPT-3模型基础之上通过对GitHub的开源代码进行学习,得到了Codex模型,该模型具备强盛的代码天生本领
在利用Copilot之前,需要一些准备工作
1.GitHub Copilot订阅服务

首先你要有一个gitHub账号,没有账号的自行注册即可
点击此处注册:https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home
有了gitHub账号之后,进入Copilot官网,点击申请。
   前两个月免费试用,第三个月开始付费,每月10,每年 100 ,每年100,每年100;或者TB购买,不外有概率封禁,如果是学生的话,可以申请学生认证,认证乐成之后也可以免费利用。
各人可以先点击start trail体验一下
https://i-blog.csdnimg.cn/blog_migrate/8147e38150eea07781a134e2a0babcfb.png
https://i-blog.csdnimg.cn/blog_migrate/9c671ccb8076d13bf923b44a1aec258c.png
进入之后可以填写本身的相干信息
2.Idea安装Copilot

要求:Idea版本应不低于2021.2,否则无法搜到Copilot插件
https://i-blog.csdnimg.cn/blog_migrate/deda5ab426113290171c648b7f0e23fc.png
重启idea之后便可利用
3.Idea利用Copilot

安装后重启,点击tools->Copilot登录到gitHub之后来获取利用资格
https://i-blog.csdnimg.cn/blog_migrate/15353267157f55db2bfe165b60513885.png
https://i-blog.csdnimg.cn/blog_migrate/1c62d3e8ddc120f8a18be47eaf0f35c4.png
点击Cop and Open
https://i-blog.csdnimg.cn/blog_migrate/8b41bf0695fcb76ee4e0c6bfcfcef689.png
将设备码复制到此处
https://i-blog.csdnimg.cn/blog_migrate/35ad48fe4c74199efaebcd62705cedf3.png
https://i-blog.csdnimg.cn/blog_migrate/7e257912d590e43890e6255a01681531.png
3.1 代码补全

Copilot能将整行进行补全,并且自可以自动填充到参数
https://i-blog.csdnimg.cn/blog_migrate/e2e6919adecc677fb68ecca637bde5f4.png
Copilot也能自动识别到上文中出现过的workbook变量及其getSheetAt方法,没有发生语法错误的问题。
https://i-blog.csdnimg.cn/blog_migrate/9fb64448fa361681a7d73bb1704a44c1.png
虽然在上一个例子中补全效果较好,没有出现语法错误的问题,但是Copilot依然会在很多情况下天生存在语法错误的代码片断。如下图所示,StringUtils类是在本地工程中创建的,类下面只有一个readTestFile方法,然而Copilot却天生了print方法,因为Copilot是根据数亿的开源代码学习到的,不能及时的去学习本地工程的代码信息,以是本质上跟TabNine一样是会存在语法错误的问题,只是由于模型更强盛,以是错误的概率更小,但是一旦涉及到本地工程的代码,错误的概率就会非常高。
https://i-blog.csdnimg.cn/blog_migrate/fef5a4f9ce7f20bc4d1de581aa3e6060.png
Copilot方法级的代码天生也有很多错误的时间,好比天生读取XML文件的代码,结果天生的是读取Excel的代码,可能是因为类开头import了较多Excel相干的API。
https://i-blog.csdnimg.cn/blog_migrate/b37faf135b384430f5d193d25e12ee77.png
3.2 单元测试

用Copilot写单元测试是非常方便的,它能帮助我们天生很多测试数据,淘汰Mock数据的烦恼。
https://i-blog.csdnimg.cn/blog_migrate/b269205f5be751f0b0f75beba8adce0f.png
假设我们有一个名为Calculator的类,此中有一个add方法,用于将两个数字加。我们希望利用Copilot天生一个测试类来测试这个方法。
// Calculator.java

public class Calculator {
    public int add(int a, int b) {
      return a + b;
    }
}
首先,我们需要创建一个测试类。让我们在源代码目录下创建一个名为CalculatorTest的Java类。
// CalculatorTest.java

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

public class CalculatorTest {

    @Test
    public void testAdd() {
      Calculator calculator = new Calculator();
      int result = calculator.add(2, 3);
      Assertions.assertEquals(5, result, "Addition is incorrect");
    }
}
在上述代码中,我们利用了JUnit Jupiter库中的Assertions类来进行断言。在testAdd方法中,我们创建了一个Calculator实例,然后调用add方法,将结果与期望值进行比力。
现在,我们可以利用Copilot来天生这段测试代码。在IntelliJ IDEA中,选择Calculator类中的add方法,然后按下快捷键Ctrl + Shift + T。
Copilot将根据代码片断天生一个相干的测试方法。
// Copilot生成的测试方法

@Test
void add() {
    Calculator calculator = new Calculator();
    int result = calculator.add(2, 3);
    Assertions.assertEquals(5, result, "Addition is incorrect");
}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: AI自动写代码:GitHub copilot插件在Idea的安装和利用教程