今天逛 GitHub 的时候发现了 GitHub 出了一个新的 Feature,叫做 GitHub Copilot,说可以帮我们自动写代码!
网址是这个:
点进来之后就几个醒目的大字 - Your AI pair programmer,你的人工智能编程伙伴。
这里有几个示例是这样的:
怎么个人工智能法呢?
这里前 7 行都是人写的,后面的 17 行都是人工智能帮写的。
我们需要写啥呢?我们来详细看看这个例子。
首先创建了一个 sentiment.ts 文件,然后引入了一个 Node.js 的包叫做 fetch-h2,然后写了两行注释:
1 |
// Determine whether the sentiment of text is positive |
什么意思呢?就是用注释写了我要写个啥东西,翻译过来如下:
-
判断一句话的包含的情感是正面的还是负面的。(比如说“我好开心”就包含了积极情绪,句子包含的情感就是正面的;比如“你太坏了”就包含了负面评价,句子的情感就是负面的。)
-
使用 Web 服务来实现。
然后定义了一个方法的声明:
1 |
async function isPositive(text: string): Promise<boolean> |
没了。
就导入了一个包,然后写了两句注释,定义了一个方法的参数和返回值,人做的事就这么多。
然后 GitHub Copilot 就能帮我们把代码写出来,它写的内容如下:
1 |
const response = await fetch(`http://text-processing.com/api/sentiment/`, { |
没错,它智能分析了我们人写的注释和方法的声明,然后就把代码写出来了。
这里就调用了一个 API,然后还自动构造了 POST 请求,获取返回结果,然后比对返回结果的 label 是不是 pos,如果是,那就代表句子包含了积极程序,返回 false 就不是积极情绪。
虽然说规范程度上一般,没有异常处理什么的,但是已经相当了不起了有没有!
-
它居然能准确理解注释中我们描述的两个需求
-
它居然知道调用哪个 API 来判断文本的情感信息
-
它居然还能没有语法错误地把一个 JavaScript 方法写出来
牛逼了!
当然它不止能写 JavaScript,还能写很多其他的语言,我们再来看一个 Python 的 例子。
这里我们新建了一个 parse_expenses 的 Python 文件,然后定义了一个 parse_expenses 方法,接收一个参数叫做 expenses_string,然后写明注释如下:
1 |
""" |
这里就写了,解析下面三行消费数据,然后返回日期、数值、单位,同时要求忽略掉开头是 # 的行,时间要用 datetime 库来解析出来。
然后 AI 就帮我们写了如下代码:
1 |
expenses = [] |
看完这个我惊呆了,它全都做到了!
-
跟它说了忽略开头是 # 的行,它就添加了一个判断
-
而且它智能分析了下面的三行数据是什么格式的,然后还知道用空格把它分开
-
分开之后,针对日期,他还知道用 datetime 解析一下,而且还知道是什么格式,年月日中间用的是横线
-
数值还自动转成了 float 类型
-
最后组成了一个元组返回了
简直,我简直不相信这是 AI 写的,感觉这个作为面试题,人也不一定一次性完整写得很好,AI 全都做到了!
这。
当然除了 JavaScript、Python,它还会很多语言,比如 Go、Ruby、TypeScript 都会。
这是背后究竟是什么技术呢?
看了看官网的介绍,说是基于 OpenAI 做的,官方原话如下:
1 |
Trained on billions of lines of public code, GitHub Copilot puts the knowledge you need at your fingertips, saving you time and helping you stay focused. |
翻译过来就是:
1 |
GitHub Copilot 接受了数十亿行公共代码的训练,让您所需的知识触手可及,从而节省您的时间并帮助您保持专注。 |
反正就是他们训练了一个模型,这个模型接受了数十亿行代码作为训练输入,最后就学会了人怎么写代码了。
这波可以。
然后官方还介绍说:
GitHub Copilot 尤其擅长写 Python、Go、Ruby、JavaScript、TypeScript,并且现在已经发布成了 VS Code 中的一个插件。在我们写 Code 的时候,这个插件就会跟 OpenAI 的模型通信,然后目前看到的内容帮助我们自动写出想要的代码,基本流程如下图所示:
好家伙,那我赶紧来下载看看。
到 VS Code 里面搜索下 Copilot,果然有,已经十万多下载量了。
装上之后,它让我登录 GitHub 授权,登录之后,它弹了一个令人悲伤的信息:
它说我现在还没有权限使用,请访问 https://copilot.github.com 申请假如白名单。
也就是还没完全开放使用,需要申请才能用。
于是乎,我就去申请了下,点下网站的 Sign Up 即可,现在我已经在等待名单中了,等通过了我应该就能用了,如图所示:
大家感兴趣的话也赶紧去申请试试吧!
更多精彩内容,请关注我的公众号「进击的 Coder」和「崔庆才丨静觅」。