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

GitHub Copilot 是微软与OpenAI共同推出的一款AI编程工具,基于GitHub及其他网站的源代码,根据上文提示为程序员自动编写下文代码,可以极大地提高编写代码的效率。

先看看ChatGpt是怎么回答Copilot的功能特点:

给大家简单提取一些关键信息,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体验一下

进入之后可以填写自己的相关信息

2.Idea安装Copilot

要求:Idea版本应不低于2021.2 ,否则无法搜到Copilot插件

重启idea之后便可使用

3.Idea使用Copilot

安装后重启,点击tools->Copilot登录到gitHub之后来获取使用资格

点击Cop and Open

将设备码复制到此处

3.1 代码补全

Copilot能将整行进行补全,并且自可以自动填充到参数

Copilot也能自动识别到上文中出现过的workbook变量及其getSheetAt方法,没有发生语法错误的问题。

虽然在上一个例子中补全效果较好,没有出现语法错误的问题,但是Copilot依然会在很多情况下生成存在语法错误的代码片段。如下图所示,StringUtils类是在本地工程中创建的,类下面只有一个readTestFile方法,然而Copilot却生成了print方法,因为Copilot是根据数亿的开源代码学习到的,不能及时的去学习本地工程的代码信息,所以本质上跟TabNine一样是会存在语法错误的问题,只是由于模型更强大,所以错误的概率更小,但是一旦涉及到本地工程的代码,错误的概率就会非常高。

Copilot方法级的代码生成也有很多错误的时候,比如生成读取XML文件的代码,结果生成的是读取Excel的代码,可能是因为类开头import了较多Excel相关的API。

3.2 单元测试

用Copilot写单元测试是非常方便的,它能帮助我们生成很多测试数据,减少Mock数据的烦恼。

假设我们有一个名为Calculator的类,其中有一个add方法,用于将两个数字加。我们希望使用Copilot生成一个测试类来测试这个方法。

java 复制代码
// Calculator.java

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

首先,我们需要创建一个测试类。让我们在源代码目录下创建一个名为CalculatorTest的Java类。

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将根据代码片段生成一个相关的测试方法。

java 复制代码
// Copilot生成的测试方法

@Test
void add() {
    Calculator calculator = new Calculator();
    int result = calculator.add(2, 3);
    Assertions.assertEquals(5, result, "Addition is incorrect");
}
相关推荐
꒰ঌ小武໒꒱15 分钟前
DeepSeek 引领前端开发变革:AI 助力学习与工作新路径
人工智能·学习·ai编程
灏瀚星空27 分钟前
高频交易技术:订单簿分析与低延迟架构——从Level 2数据挖掘到FPGA硬件加速的全链路解决方案
人工智能·python·算法·信息可视化·fpga开发·架构·数据挖掘
kdniao20251 小时前
快递接口调用选择:快递鸟、快递100、阿里云大对比
人工智能·阿里云·php
Hanson Huang1 小时前
【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(2)——Prompt(提示词)
java·人工智能·spring·spring ai
诺亚凹凸曼1 小时前
用AI思维重塑人生:像训练神经网络一样优化自己
人工智能·机器学习
山有木兮木有枝_2 小时前
AI大模型幻觉问题的函数调用解决方案:DeepSeek 实战解析
前端·人工智能·deepseek
tony3652 小时前
强化学习 A2C算法
人工智能·算法
MinIO官方账号2 小时前
AIStor 的模型上下文协议 (MCP) 服务器:管理功能
运维·服务器·github
袋鼠云数栈2 小时前
当空间与数据联动,会展中心如何打造智慧运营新范式?
大数据·人工智能·信息可视化
HyperAI超神经2 小时前
在线教程丨刷新TTS模型SOTA,OpenAudio S1基于200万小时音频数据训练,深刻理解情感及语音细节
人工智能·深度学习·机器学习·文本转语音·语音处理·语音生成·在线教程