今年百度、华为、阿里云都分别发布了对标Github Copilot的智能编码插件,谁能成为平替Github Copilot的国产工具呢?有句话说的好,“始于颜值,陷于才华”,所以今天主要为大家介绍一下各自插件的主要功能以及在IntelliJ IDEA上的UI颜值,至于每个插件的“才华”,将在后续的文章中为大家介绍。
Copilot:GitHub Copilot是由GitHub与OpenA合作开发的一款革命性的智能代码补全和生成工具,旨在帮助开发人员更高效、更准确、更快地编写代码,这款由人工智能驱动的A|编程助手与程序员常用的代码编辑器无缝集成,超过数百万人在使用,对全球各地的开发者来说都是代码神器和得力助手。
1. 简介
通义灵码,阿里推出免费AI编程工具,基于通义大模型,国内Copilot平替产品,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 的使用场景调优,助力开发者高效、流畅的编码。
2.功能介绍
- 行级/函数级实时续写
- 自然语言生成代码;
- 单元测试生成;
- 代码注释生成;
- 代码解释;
- 研发领域自由问答;
- 异常报错智能排查(Java);
- 双模引擎,一键切换
- 支持 Java、Python、Go、C#、C/C++、JavaScript、TypeScript、PHP、Ruby、Rust、Scala、Kotlin 等主流编程语言。
- 支持 IDE 及操作系统
- JetBrains IDEs:版本IntelliJ IDEA、PyCharm、GoLand、WebStorm 等 2020.3 及以上,操作系统:Windows 7 及以上、macOS、Linux
- Visual Studio Code:版本1.75.1 及以上,操作系统:Windows 8.1 及以上、macOS、Linux
详见:通义灵码产品介绍_智能编码助手_AI编程_云效(Apsara Devops)-阿里云帮助中心
3. 安装(注意:通义灵码需要登录阿里云后方可使用,如果你尚未拥有一个阿里云账号,可前往注册阿里云账号)
3.1 在线版安装
(1)打开IDEA,File-->Settings-->Plugins,切换到Marketplace选项卡下,输入“TONGYI ”进行搜索,找到TONGYI Lingma插件,Install安装即可
(2)Install完成后会变成Installed,此时只需要点击OK,等待插件安装完成即可
(3)点击“登录”,出现“通义灵码协议”对话框,选择“同意并登录”,它会默认打开登录地址:
退出:通义灵码登录说明_智能编码助手_AI编程_云效(Apsara Devops)-阿里云帮助中心
3.2 离线版安装
参考:通义灵码下载和安装手册_智能编码助手_AI编程_云效(Apsara Devops)-阿里云帮助中心
4. 使用
4.1 行级/函数级实时续写
根据当前语法和跨文件的代码上下文,实时生成行、函数建议代码:在 IDE 编辑器区进行代码编写时,在开启自动云端生成的模式下,通义灵码会根据当前代码文件及相关代码文件的上下文,自动为你生成行级/函数级的代码建议,此时你可以使用快捷键采纳、废弃、查看不同的代码建议,同时,当你在编码的过程中,也可以通过快捷键 ⌥ P 手动触发生成代码建议,具体如下:
实操:
按下Tab键,即可将生成的代码应用到自己编写代码的位置,其他调整代码语法如下:
接受行间代码建议 | Tab( macOS) | Tab( Windows) |
废弃行间代码建议 | esc | esc |
查看上一个行间推荐结果 | ⌥ [ | Alt [ |
查看下一个行间推荐结果 | ⌥ ] | Alt ] |
手动触发行间代码建议 | ⌥ P | Alt P |
4.2 自然语言生成代码
通过自然语言描述你想要的功能,可直接在编辑器区生成代码。即用自己的语言描述出要实现的功能,通义灵码会按照功能进行代码自动补全,通义灵码支持两种方式:
- 在编辑器中,直接通过注释的方式描述你需要的功能,直接在编辑器中生成代码建议,单击 Tab 可直接采纳 ;
- 在智能问答中,直接描述你需要的功能,智能问答助手将为你生成代码建议,并支持一键插入或复制代码。
示例:
实操:
4.3 单元测试生成
支持根据 JUnit、Mockito、Spring Test、unit test、pytest 等框架生成单元测试。
示例:
实操:
4.4 代码注释生成
示例:
实操:
4.5 代码解释
总结:
A. 选中代码后,支持生成单元测试、代码注释或代码解释,有 3 种触发方式:
- 在编辑器中,单击右键找到通义灵码功能操作入口,单击对应功能操作;
- 在智能问答中,直接单击对用功能操作;
- 在智能问答中,使用 / 查看快捷指令,单击生成单元测试指令。
B.生成回答后,一键采纳和追问
单击对应功能操作后,在智能问答区中,通义灵码为你所选代码生成相关回答,此时你可以根据需求进行操作,相应功能的对应操作如下:
生成单元测试:
采纳单元测试代码建议:支持一键插入、复制、或者新建代码文件,可快速采纳生成的单元测试代码建议;
更换单元测试框架:目前提供基于 JUnit、Mockito、Spring Test、unit test、pytest 等框架生成单元测试代码建议,在回答完成后,可以根据需要切换框架重新生成。
生成代码注释:
采纳代码注释建议:支持一键插入、复制,可快速采纳生成的代码注释建议;
查看 Diff:单击查看 Diff 按钮,将快速唤起 IDE Diff 查看窗口,快速了解建议和源代码的变更;
重试、使用英文等与代码注释相关的追问操作。
解释代码:支持重试、更详细、更简单、中文/英文解释的追问。
C. 函数的行间快捷入口
当需要针对一个方法或功能实现生成单元测试、代码注释、代码解释时,无需选中代码,可直接单击函数上方的快捷入口触发相关功能操作。
Tips:目前该功能 Visual Studio Code 上支持语言:Java、Python、Go、JS/TS、C/C++,JetBrains IDEs 支持语言:Java、Python。
4.6 研发领域自由问答
遇到疑问、技术难题时,一键唤起通义灵码,无需离开 IDE 客户端,即可快速获得答案和解决思路。聚焦研发领域知识的问答,帮助开发者快速解决问题。
- 选中代码,开始输入你的问题,通义灵码将围绕着选中代码与你开展对话;
- 精准表达问题,以及给出相对详细的上下文输入, 比如选中的代码、日志、报错信息等;
- 多次互动,告诉通义灵码,所给出代码建议或回答是否满足你的预期,或生成内容存在的具体瑕疵,通义灵码也会不断改进。
开始自由问答
编码遇到问题,缺乏具体解决思路时,单击 IDE 侧边工具导航或使用⌘
⇧
L
唤起通义灵码智能问答助手,无需离开 IDE 客户端,即可快速获得答案和解决思路。
多种快捷指令问答
在智能问答输入框中,预置了多个常用快捷指令,输入 /
即可看到相关快捷指令:
- /help:学习如何使用通义灵码;
- /explain code:解释选中的代码;
- /generate unit test:为选中的代码生成单元测试;
- /generate comment:为选中的代码生成方法注释或行间注释;
- /clear context:当你在会话中时,单击后将清空上下文记忆
异常报错排查(IntelliJ IDEA)
当运行出现异常报错时,在异常输出窗口中,可通过通义灵码的快捷操作按钮,单击后,通义灵码将结合运行代码、异常堆栈等报错上下文,快速给出排查思路或修复建议。
IntelliJ IDEA 中技术文档和代码片段搜索
示例:
实操:
4.7 异常报错智能排查(Java)
当运行出现异常报错时,一键启动报错排查的智能答疑,可结合运行代码、异常堆栈等报错上下文,快速给出排查思路或修复建议代码。
示例:
实操:
4.8 双模引擎,一键切换
支持极速离线模型(Java/Python)、云端大模型两种代码补全方式,极速离线模型拥有单行补全的能力,云端大模型具备函数生成的能力。在你需要的时候,可一键切换,满足不同网络环境、不同补全强度的场景诉求。
示例:
4.9 配置指南
重新绑定快捷键
步骤 1:打开 JetBrains IDE 偏好设置(实际IDEA:File->Settings...), IntelliJ IDEA 为例:
步骤 2:在设置窗口中单击快捷键,输入(英文:Panel)后搜索,找到TONGYI Lingma ,右键后单击修改键盘快捷键。在弹出的窗口中输入用于命令的按键后,单击确定即可。
启用或禁用行间生成
方法 1:单击状态栏的通义灵码图标,在弹出的窗口中可快速启用或禁用行间生成功能:
- 可以配置本地离线模型、云端大模型是否启用;
- 开启本地离线模型、云端大模型同时开启的情况下,行间生成时优先推荐云端大模型的代码建议;
方法 2:打开插件设置页面,支持启用或禁用行间生成,以及设置生成的长度。
启用或禁用函数的行间快捷入口
打开插件设置页面,支持启用或禁用函数的行间快捷入口。
4.10 查看帮助和分享反馈
查看使用帮助
通义灵码的智能问答窗口中,可以通过 2 种方式查看使用帮助:
-
通过智能问答的
/help
指令快捷查看使用帮助;
-
单击智能问答窗口的帮助文档入口,可以快速来到当前帮助文档知识库。
反馈回答质量
在智能问答中,你可以对通义灵码所生成的回答内容进行评价,支持点赞和点踩,以不断优化回答效果。
使用问题反馈
当你在使用的过程有任何疑问、优化建议、功能诉求等,均可在通义灵码的智能问答窗口单击提交反馈,即可前往阿里云开发者社区-通义灵码问答专区向我们提出问题。
参与体验调研
为了给你提供更好的智能编码体验,我们也期待收到你的使用体验反馈、优化建议以及你的期待,我们会不断努力和优化产品体验。