vlambda博客
学习文章列表

GitHub原生AI代码生成工具Copilot,官方支持Visual Studio 2022


最近OpenAI与GitHub联合构建的AI自动编程工具Copilot正式登场!Copilot基于自然语言处理模型GPT-3搭建而成,可在程序员编写代码时提供建议,甚至直接补齐代码。


微软、OpenAI、GitHub 三家联合打造的 AI 编程辅助工具 GitHub Copilot 可用于 Visual Studio 2022、IDEA、VSCode了。


  • 支持的语言

copilot 是利用网络中现有的公开数据,尤其是开源在 Github 上的代码, 然后基于机器学习算法训练出来的。因此 copilot 理论上支持所有编程语言。

目前我测试了 JS 和 Python,效果都还蛮不错的。

官方提供了 ts,go,py 和 rb 语言的示例。


  • 注释即代码

相比于市面上一些编程辅助工具,Copilot 的上下文理解能力要强大得多。无论是在文档字符串、注释、函数名还是代码主体中,Copilot 都能根据编程者已写出的上下文生成匹配的代码。

比如我想根据 Github 用户名获取用户信息。我只需要写下这样一行注释。以 JS 为例:

// 根据 Github 用户名获取用户信息

copilot 是如何一步步引导你完成完整功能的呢?我们来看下。

第一步:

GitHub原生AI代码生成工具Copilot,官方支持Visual Studio 2022

注意:注释下面的代码颜色是浅色的,是 copilot 提示出来的。下同,不再解释。

按下 tab 键就会浅色的代码就会被填充,并提示接下来的代码。

第二步:

GitHub原生AI代码生成工具Copilot,官方支持Visual Studio 2022

再次按下 tab 键,整体的代码就生成了。

GitHub原生AI代码生成工具Copilot,官方支持Visual Studio 2022

类似的例子还有很多,等待大家来探索。


  • 代码补全

IDE 的一个很重要的功能就是代码补全。copilot 增强了 IDE 的补全功能。

copilot 可以根据你的代码仓库以及世界上公开的代码仓库提示你可能的输入,从而减少你敲击键盘的次数,在更短的时间写出更多的代码,获取更多的摸鱼时间。

来看一下它是如何操作的:

GitHub原生AI代码生成工具Copilot,官方支持Visual Studio 2022


举个例子,仍然以 JS 为例。我想发送一个 fetch 请求。


fetch('https://www.leetcode-solution.cn', {

它就提示我:

接下来按照它的提示,只按 tab 不写代码的情况就可以写出如下代码。

fetch("https://leetcode-solution.cn", {
  method"POST",
  headers: {
    "Content-Type""application/json",
  },
  bodyJSON.stringify({
    question_id"1",
    lang"javascript",
    code"console.log(1)",
  }),
}).then((res) => {
  console.log(res);
});

对我的仓库功能来说, 上面代码有一小部分是有问题的。不过我只需要稍微改改就行了。效率提升还是不错的。


  • 如何使用

在安装扩展工具之前,你需要先注册等待列表(waitlist)来获得 GitHub Copilot 技术预览版的访问权限。虽然访问空间有限,但随着服务容量的增加,GitHub 表示会继续在预览版中添加更多的开发人员。
在收到来自 GitHub 的电子邮件后,证明你有访问权限,就可以进入 相应的工具 ,在编译工具中搜索 GitHub Copilot。
在 vscode 插件市场搜索  github copilot ,点击 install,然后按照提示安装即可。

安装好了就可以体验了!写写注释>敲敲代码>按按 tab>代码 

duang 的一下就生成了。

不过目前,GitHub Copilot 项目还只是严格的技术预览版,用户可以在主页注册报名,将有机会访问试用。


【咖文杂货铺】:

那么Copilot 真会砸了程序猿的饭碗?

可以说AI自动化编码工具的发展还远远没有达到我们的期望,程序员在使用Copilot时必须时刻小心翼翼,你不能把Copilot这样的AI自动生成工具当成不会出错的编程机器。如果由于工期紧迫,而完全依赖Copilot提供代码,不去进行安全审核的话,那么Copilot带来的风险很可能比产生的效益还大。

不过无论如何Copilot前途还是非常光明的,从历史经验来看,新的编程工具必然带来新的编程风险。我们必须仔细跟AI自动编程这个新领域的发展趋势,才能做到不落后于趋势,也不引入风险。