生成式人工智能代表了软件开发的未来。GitHub 与 OpenAI 合作创建了 GitHub Copilot,这是世界上第一个使用 OpenAI Codex 模型开发的大规模生成式人工智能开发工具。
作为一款 AI 辅助编程工具,GitHub Copilot 开启了软件开发的新时代。通过自动补全注释和代码,它让开发人员获得了前所未有的流畅编程体验。自推出不到两年以来,GitHub Copilot 已经编写了 46% 的代码,帮助开发人员提高了高达 55% 的编码速度。
3月22日,GitHub 官方发布新一代基于 AI 驱动的、跨时代代码编辑器 GitHub Copilot X,让AI 助手在整个开发生命周期中随时可用。
AI驱动的新一代开发体验
此次更新的 GitHub Copilot X
给开发者带来了哪些助力?
GitHub Copilot Chat & Copilot Voice
GitHub Copilot X 在产品中内嵌一个聊天窗口,把 GPT-4 融合到实际开发场景,并集成至 VS Code 和 Visual Studio 上。除了进行实时交互问答之外,它还可以完成诸如代码内容识别、报错信息显示等操作。通过这一功能,开发人员可深入分析和了解各个代码块的用途,快速生成单元测试,甚至还能一键修改 Bug。
GitHub Copilot X 也将加入语音转代码 AI 技术扩展—— GitHub Copilot Voice,开发人员可以通过对话,完成:代码跳转、控制 IDE、代码总结。
Copilot for Pull Requests
开发者现可体验 GitHub 上首个由 AI 生成的 Pull Request 描述。一个清晰简洁的 PR 描述信息,能让代码审查者一目了然,快速了解代码变动情况,减少项目合并出错的可能性,并提升沟通效率。
引入 GPT-4 模型后,Copilot 通过动态提取与分析代码的变更信息,自动生成描述。开发者只需在 PR 描述中插入标记,Copilot 便会自动识别,并进行扩展补写。支持的标记,主要有以下几种:
copilot:summary 为 PR 生成一段摘要总结
copilot:walkthrough 详细的更改列表,包括相关代码片段链接
copilot:poem 写一首诗来描述本次改动
copilot:all 自动生成以上所有内容
随着后续产品的更新迭代,Copilot 还会新增名为 Gentest 和 Ghost Text 的两大功能。
Gentest:通过 AI 来识别 PR 中可能缺少的测试,并自动帮助构建与生成测试。如果开发人员没有足够的测试覆盖范围,GitHub Copilot 会在他们提交 Pull Request 时向他们发出警告。
Ghost Text:在编写 PR 描述或文档时,提供内容自动补全功能。
GitHub Copilot for Docs
通过 GitHub Copilot for Docs,开发者可使用类似 ChatGPT 的聊天界面,提问有关文档、惯用代码或组织内部软件的问题,并获取 AI 即时生成的文档答案。它甚至能根据用户的不同编程水平、对该文档的了解程度,以及想要知晓的内容,返回不同的答案。
基于对话式接口的优势,GitHub Copilot 正在努力实现语义理解,以更好地输出个性化答案,为组织、团队、公司和个人开发者提供根据他们的代码库和文档进行定制的解决方案。
未来,GitHub Copilot 还将探索把资源索引扩展到除文档以外的领域,例如问题、拉取请求、讨论和维基,以便为开发者提供回答技术问题所需的一切资源。
GitHub Copilot CLI
除了处理 PR 请求与编写代码,命令行终端也是开发者日常工作必不可少的工具之一。但即使是最熟练的开发人员可能也很难记住许多命令的精确语法。现在 GitHub Copilot CLI 推出了 3 个 shell 命令:??,git?,gh?。
??可以作为任意 shell 命令的通用 goto,在该命令后面输入相关描述,Copilot 便会列出最适用该描述的具体命令。
git?用于专门搜索以及调用Git。相比??, 它在生成 Git 命令方面要强大许多。如果你明确要用的是 Git 命令,那可以优先选择使用它。
gh? 结合了 GitHub CLI 命令的灵活性与查询界面的便捷性,让搜索变得更快捷、信息展示更清晰。
GitHub Copilot X 由 OpenAI 新发布的 GPT-4 AI模型提供支持。
从阅读文档、编写代码到提交 Pull Request、命令行改造,GitHub Copilot X 正在整个软件开发生命周期中颠覆开发者体验。结合微软的知识模型,GitHub Copilot 将利用不同企业的数据存储库,个性化定制 AI 协作编程,让每个创意想法都能在没有技术障碍的情况下变为现实。