CodeWhisperer 简介
CodeWhisperer是一款基于机器学习的通用代码生成器,亚马逊云科技在2023年4月18日宣布,实时 AI 编程助手 Amazon CodeWhisperer 正式可用,同时推出的还有供所有开发人员免费使用的个人版(CodeWhisperer Individual)。
CodeWhisperer 基于各种上下文线索提供建议,包括光标在源代码中的位置、位于光标前面的代码、注释,以及来自同一项目中其他文件的代码。开发者可以完全照搬这些建议,也可以根据需要进行改进和修改。CodeWhisperer 使用来自论坛、亚马逊内部代码库、开源代码库和 API 文档的数十亿行代码进行机器学习训练。CodeWhisperer 帮助开发者基于注释生成代码,追踪开源参考,扫描查找漏洞。确保了开发人员可以专注于敏捷开发,不会由于搜索示例代码等工作而打断思绪。
CodeWhisperer提供了IDEA插件,⽬前可以免费使⽤,使⽤起来也⽐较简单。CodeWhisperer主要由Java、Python、JavaScript、TypeScript、C#相关语料训练而成,在支持上述语言的同时,也支持Ruby、Go、PHP、C++、C、Shell、Scala、Rust、Kotlin、SQL等。在创建复杂代码和面对不断变化的开发环境时,开发人员可以在自己喜欢的 IDE(集成开发环境)中使用 CodeWhisperer,例如 Visual Studio Code、IntelliJ IDEA 及其他 IDE,从而提高工作效率、简化工作任务。
CodeWhisperer安装流程(以JetBrains IDE为例):
(1)在JetBrains IDE窗口侧边栏选择AWS Toolkit,打开AWS Toolkit JetBrains面板。
(2)在面板中选择Developer Tools,打开Developer Tools 浏览器。
(3)在Developer Tools浏览器中展开CodeWhisperer并选择start。
(4)出现CodeWhisperer弹窗,添加AWS链接,选择Use a personal email to sign up and sign in with AWS
Builder ID并链接。
(5)在Sign in with AWS Builder ID弹窗中选择Open and Copy Code
(6)将会弹出浏览器显示Authorize request窗口,此时代码应该已经添加到复制/粘贴缓冲区中。将其粘贴进去,然后选择Next。
(7)将打开一个浏览器选项卡,以显示“创建AWS Builder ID”页面。输入电子邮件地址,然后选择Next。
(8)您的姓名将出现一个字段。输入您的名字并选择Next。
(9)AWS将向您提交的电子邮件地址发送确认码。在邮件验证界面,输入验证码,选择“Verify”。
(10)在Choose your password屏幕上,输入密码并确认,然后选择Create AWS Builder ID。
(11)将打开一个浏览器选项卡,并显示一条消息,要求您允许JetBrains访问您的数据。选择允许。
(12)将打开一个浏览器选项卡。新的浏览器选项卡中将出现一条消息,询问您是否允许AWS Toolkit for JetBrains访问您的数据。如果同意,选择允许。
(13)回到JetBrains。至此成功安装。
CodeWhisperer使用流程:
(1)
新建⼀个类,写出冒泡排序的注释,代码如下:
(2)
可以看到右下角的Amazon
CodeWhisperer图标前⾯有⼀个圈,表示正在生成代码中。代码生成完毕,会出现如下界⾯:
(3)
可以看到,Amazon
CodeWhisperer已经生成了代码,此时可以按下Tab键确认代码,也可以点击"Previous"或"Next"切换不同的代码,最后按Tab键确认。生成函数名以后,还可以生成函数体。最终,生成的代码是这样的:
注释写的越精确,生成的代码质量越好。当然,Amazon CodeWhisperer生成的代码并不总是正确或最优,需要视情况进进修改或优化。
CodeWhisperer具有以下特点:
(1)免费:对所有开发人员都可以免费使用。这点很重要!!!
(2)为您量身定制的实时 AI 代码生成器,极大提高工作效率。在预览期间,Amazon 举办了一场工作效率挑战赛,使用
Amazon CodeWhisperer 的参与者成功完成任务的可能性要比未使用 CodeWhisperer 的参与者高 27%,平均完成任务的速度快 57%。
(3) 支持热门编程语言和 IDE。Amazon
CodeWhisperer 支持开发语言有: Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和
Scala 等开发语言;支持的IDE有Visual Studio Code、IntelliJ IDEA 等。所有开发人员(不仅仅是拥有亚马逊云服务账户或使用亚马逊云服务的人),只需一个电子邮箱地址即可注册。so easy!!!
(4)针对 AWS 服务的优质建议:可以帮助程序员过滤出有偏见或不公正的代码建议,提高代码的安全性和准确性。CodeWhisperer 是唯一具备该功能的编程助手。当生成的代码类似于训练集中的参考代码时,它会为代码提供额外的提示(比如代码库 URL 和许可证),帮助降低使用代码的风险,并使开发人员重复利用代码。
(5)内置安全扫描:可以对开发人员编写的代码进行安全扫描,找到并建议修复难以检测的漏洞。例如十大开放式 Web 应用程序安全项目 (OWASP) 中的漏洞以及不符合加密库最佳实践的漏洞等。如果 CodeWhisperer 发现了漏洞,它会提供解决问题的建议。