集成GPT-4的编程神器来了,GitHub发布Copilot X:编程30年,突然就不需要手敲代码了?!
作者 核子可乐 Tina
畅想十多年后,失去了“AI助手”的年轻人无法编码了,那企业只能再高薪聘请真正会编程的白发老年人回来了……
在GPT-4模型的支持下,微软打造的AI“结对编程助手”已经能够标记pull请求、生成模仿文档和讨论代码内容。GitHub还添加了OpenAI的聊天功能,这也就是说Copilot X将允许程序员以ChatGPT的风格,通过语音聊天来编写和调试代码。
GPT-4驱动的新Copilot编码助手
经过新一轮训练,微软GitHub的Copilot编程模型再度升级,也让这位广受好评的AI助手在开发领域的地位又稳牢了一层。
为了纪念这一重大时刻,微软还给这位编程助手改了名:Copilot X。请注意,X代表可能性、可不是“限制级”。
GitHub CEO Thomas Dohmke在博文中写道,“我们的GitHub Next研发团队一直在努力超越传统编辑器,希望将GitHub Copilot开发成贯穿整个开发生命周期、而且易于使用的AI助手。最终成果就是GitHub Copilot X,代表着我们对于未来AI软件开发愿景的希冀。”“它将从根本上影响开发人员的体验。”
但在随后的介绍中,Dohmke自己仍然称这款软件为Copilot,不禁让人怀疑是不是X这部分还要等待些时日才能真正名副其实。
展望未来,Copilot将对接一系列不断发展的大语言模型,包括OpenAI的GPT-3.5turbo和GPT-4,而不再沿用OpenAI Codex的定制化版本。OpenAI将于2023年3月23日关闭Codex的公共API,但强调Codex的停用不会对客户造成影响。有声音怀疑此次API终止跟Codex和Copilot身陷版权和许可诉讼有关,但OpenAI并未立即做出置评。
在经过一年的技术试验之后,Copilot于去年夏季正式推出,能够为使用GitHub及受支持文本编辑器/IDE(例如Visual Studio Code)的开发人员提供编码建议。尽管质量不够稳定,但仍开创了生成式AI服务编程领域的先河。
根据GitHub的数据,截至上个月,Copilot已参与到微软全体云代码仓库中的46%,帮助开发人员将编程速度提高了55%。
Copilot升级版可以用来做什么
Copilot升级之后,现在它能在Visual Studio Code和Visual Studio中以ChatGPT的风格与用户交流。提示和响应对话显示在IDE侧边栏的聊天窗口内,不再像之前那样在源文件中依靠评论查询提供自动补全建议。
Dohmke表示,“Copilot Chat不只是提供一个聊天窗口,它可以识别开发人员输入的代码、显示的错误消息,并深深嵌入至IDE当中。”
它集成了“嘿,GitHub”语音扩展功能(也就是现在的GitHub Copilot Voice),使用自然语音提示,这位编程助手可以生成(或复制)代码并按需运行。
Dohmke表示,“Copilot Chat的技术基础,跟OpenAI和微软的ChatGPT与New Bing是完全相同的”。并且Dohmke还展示了通过聊天来编写Python版本的贪吃蛇游戏,并表示非常沉迷其中。
这种功能也震撼到了一些开发者:“ChatGPT将永远改变编程。对我来说,作为一名开发人员最令人愉快的方面是处理逻辑和解决技术问题,而不是专注于生产力或满足需求。虽然这种改变让我沮丧,但我知道我需要习惯它。”“我也是。迄今为止,我手写代码已经30年了,我仍然热爱编程。但如果从此没有手写编码,我不确定世界会是什么样子。”……
另外,开发人员可以高亮显示源文件中的正则表达式,并邀请Copilot解释表达式中的迟钝模式。Copilot还可根据要求生成测试、分析和调试,提出修复建议或尝试自定义任务。该模型甚至能够为源代码添加解释性注释,并像linter那样清理文件。
对于这部分功能,有网友表示他从测试版开始就一直在使用Copilot,它在生成测试方面可以说是“大放异彩”,“感觉像是重复各种繁琐的事情,测试各种各样的输入,测试各种各样的错误案例,与手工相比,它花费的时间要少得多。”
另一位名为“roygbivasaur”的网友则表示,他现在的工作是编写kubernetes控制器并使用envtest和ginkgo为控制器编写测试。令人沮丧是他必须执行通常由默认kubernetes控制器完成的所有任务(例如为sts创建pod)。但使用了Copilot,编写了几个测试之后,“现在当我编写新测试时,它可以从上下文(测试用例、测试描述、CRD类型、我显然正在测试的协调器等)中推断出什么我需要创建的对象,我需要监视的状态,甚至可能的特定故障状态。它完成了我大部分的测试,我只需要校对它。”
简而言之,使用Copilot来做一些测试用例还是非常能提高效率的。
Copilot处理pull请求的截屏
无论如何,GitHub已经在开放预览版中引入了GPT-4支持,现在AI已经能为所有pull请求(代码变更提交)生成描述。
在AI的监控下,开发人员在发出pull请求时将看到GitHub模型帮你填写标签,尝试描述接下来可能发生的情况。开发人员则可根据标签进行操作或修改。
更重要的是,Copilot的应用范围还扩展到了文档层面。从React、Azure Docs和MDN文档开始,开发人员可以通过聊天界面提出问题并获取AI生成的答案。Dohmke介绍称,通过聊天界面与文档交互的能力将很快被扩展至组织用户的内部代码仓库和文档当中。
Copilot CLI截屏
因此,开发人员将可以提出不那么结构化的问题,并直接从Copilot那边获得合理建议甚至是非常准确的答案(但不提供来源属性)。这就取代了以往基于关键字的文档内容查询,也让我们更能理解为什么谷歌被这位突如其来的AI红人打得措手不及。
GitHub甚至提供Copilot CLI以渗透命令行界面。如果大家突然忘记了某条晦涩的命令行咒语或者命令标志,Copilot可以立刻提供帮助。
写在最后
至于这位强大编程助手的存在到底是不是好事,就看各位如何理解了。Dohmke强调说Copilot可以在开发过程的每个阶段发挥重要作用,从项目规划到代码的最终部署,然而鉴于Bing在GPT-4支持下的表现“也就那样”,New Bing似乎也不如Dohmke设想中的那么“New”,所以还需要时间来证明Copilot的能力。但在相对更简单的代码生成场景下,GPT-4也许能够更轻松地提供有用输出。
Copilot将马上提供给waiting list中的开发人员注册使用,Dohmke说,在第一波产品准入之后,更多的开发人员将获得访问权限,具体取决于需求水平。
Copilot的个人费用为每月10美元,企业费用为每位开发人员每月19美元。
鉴于有整整一代开发人员需要支付1000-2000美元或更多来订阅MSDN以开展业务,Copilot这个定价也许不算太高。考虑以后很大可能“AI编程助手”是开发人员不可或缺的编程工具,那集成了GPT-4的“Copilot X”对微软来说其战略重大,这场AI战争也许是继Windows操作系统、Azure云服务之后的一大终局之战。
附申请网址
Copilot X:https://github.com/github-copilot/chat_waitlist_signup/
Copilot Voice:https://githubnext.com/projects/copilot-voice/
Copilot Docs:https://githubnext.com/projects/copilot-for-docs/
Copilot for PRs:https://githubnext.com/projects/copilot-for-pull-requests/
Copilot CLI:https://githubnext.com/projects/copilot-cli/
参考链接
https://github.blog/2023-03-22-github-copilot-x-the-ai-powered-developer-experience/
https://www.theregister.com/2023/03/22/github_copilot_learns_new_tricks/
https://www.reddit.com/r/programming/comments/11ylui4/github_copilot_x_the_aipowered_developer/