GitHub Copilot 发布不过两年,已助力逾百万开发者创造超过46%的代码量,更将编码速度提升了高达55%。
而近期,VScode发布1.80版本,这次重磅更新直接引入GitHub Copilot新功能—— Copilot ChatAI聊天助手来袭!
是鸡肋还是生产力?
在答案揭晓之前,如果你想体验最新版本、下载 VSCode 插件,可访问:https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat
安装之后,会发现侧边栏多了一个聊天的入口,在关联到 Github 账号就可以使用了(账号需要 waitlist 通过):
Copilot Chat 主要提供了一个可交互式的界面。
在帮助文档中我们可以看到,它支持以下几种能力:
▶︎ 解释一行代码、整个文件或库 API 的作用。
▶︎ 找出问题,甚至修复它们。
▶︎ 重写代码以使其更易读或更快。
▶︎ 编写新的测试和组件。
▶︎ 提问关于 VS Code 的问题。
▶︎ 提问一般编程问题。▶︎ ……
当然还有以 / 开头的命令:
▶︎ /tests – 为选择的代码生成单元测试
▶︎ /fix – 为选择的代码问题提供修复建议
▶︎ /explain – 解释选择的代码的工作原理
▶︎ /ext – 关于 VS Code 扩展程序开发的问题
▶︎ /vscode – 关于 VS Code 的问题
▶︎ /help – 关于 GitHub Copilot 的一般帮助
▶︎ /createWorkspace – 创建一个项目
如同 GPT 一样,我们可以针对代码中不太理解的地方直接进行提问,选中文本后,输入 /explain 指令加上想问的内容就好。(这里默认返回英文,如果用中文提问也可以得到中文的回答)。
在这里我们选择了一个非常复杂的正则来进行测试,可以看到模型理解还是很不错的,能够解释的非常细致,针对场景我们还可以追问,让 AI 来充当你的老师。
在本次测试中,我故意改错了一个变量(不过保证语法是正常的,只是逻辑错误),Copilot 能够直接发现这个改动的问题,并给出了修复后的代码。请各位看图。
对于这种独立小函数,Copilot 的纠错能力还是不错的。
可以让 Copilot 帮忙为函数生成测试用例,然后跑一下验证用例的准确性。
在这个 case 中,Copilot 总共帮忙生成了6个用例,其中5个通过,1个不通过。仔细看了下,这个用例的期望输出有一些问题,可见模型生成的用例的准确性还是有一些问题的。
不过从完备性来看,Copilot 生成的测试用例还是给了我们不少启发,在编写测试用例这一块有极大的借鉴和提效。
当然,我们还可以借助 Copilot 来进行完成代码重构、写一个新组件等任务。相信大家日常中也有可能用到的探索场景,都可以用 Copilot 来尝试,我们就不再赘述。
1.8版本推出了一个有意思的小功能,支持了 /createWorkspace 命令,这个命令可以帮助我们快速创建一个新的项目:
不过当我真正跑起来的时候,发现还是有不少问题:
可以看到 Copilot 生成的项目所用的 vue-cli-service 已经过时了,并且少了一些 babel 和 webpack 的配置。
这一部分应该还是受限于当前 AI 的训练语料时间,一般来说很容易与当前最新的资料脱轨,这个功能也许需要联网能力才可以更好地进行使用。
值得注意的是,这个插件还是有许多地方需改进。比如模型的边界——幻想问题。
可以看到在问到一些比较困难的问题时,Copilot 会幻想出一些不存在的 API 来尝试解答。
这样的情况在 GPT 中也会有发生,这也是目前大模型的一个局限,会进行一些不基于事实的捏造与幻想。
我们在使用 AI 的过程中,需要仔细辨别它的正确性。
虽有局限性,但是总的来说我个人认为 Copilot Chat 还是一款非常有用的工具,我们已经能够看到 ta 在很多场景为我们提供协助,比如我个人常用的两个场景:
▶︎ 代码理解:经常寻求 AI 帮助理解复杂的代码逻辑,尤其是在读源码时非常有帮助。
▶︎ 代码补全:写代码时提效帮助很大,也可以在编写代码时与 Copilot 进行结对编程,提升自己的代码质量。
相信随着模型的不断更新和完善,Copilot Chat 会越来越好用,期待拥抱未来编程新时代。