CodeWhisperer CodeWhisperer是一款基于机器学习的通用代码生成器,基于各种上下文线索提供建议,包括光标在源代码中的位置、位于光标前面的代码、注释,以及来自同一项目中其他文件的代码。
大模型编程
2006 收藏

CodeWhisperer 简介

CodeWhisperer是一款基于机器学习的通用代码生成器,亚马逊云科技在2023418日宣布,实时 AI 编程助手 Amazon CodeWhisperer 正式可用,同时推出的还有供所有开发人员免费使用的个人版(CodeWhisperer Individual)

CodeWhisperer 基于各种上下文线索提供建议,包括光标在源代码中的位置、位于光标前面的代码、注释,以及来自同一项目中其他文件的代码。开发者可以完全照搬这些建议,也可以根据需要进行改进和修改。CodeWhisperer 使用来自论坛、亚马逊内部代码库、开源代码库和 API 文档的数十亿行代码进行机器学习训练。CodeWhisperer 帮助开发者基于注释生成代码,追踪开源参考,扫描查找漏洞。确保了开发人员可以专注于敏捷开发,不会由于搜索示例代码等工作而打断思绪。

CodeWhisperer提供了IDEA插件,前可以免费使,使起来也较简单。CodeWhisperer主要由JavaPythonJavaScriptTypeScriptC#相关语料训练而成,在支持上述语言的同时,也支持RubyGoPHPC++CShellScalaRustKotlinSQL等。在创建复杂代码和面对不断变化的开发环境时,开发人员可以在自己喜欢的 IDE(集成开发环境)中使用 CodeWhisperer,例如 Visual Studio CodeIntelliJ IDEA 及其他 IDE,从而提高工作效率、简化工作任务。

CodeWhisperer安装流程(以JetBrains IDE为例):

1)在JetBrains IDE窗口侧边栏选择AWS Toolkit,打开AWS Toolkit JetBrains面板。

2)在面板中选择Developer Tools,打开Developer Tools 浏览器。

3)在Developer Tools浏览器中展开CodeWhisperer并选择start

https://docs.aws.amazon.com/images/codewhisperer/latest/userguide/images/JB-CWSPR-Start2.png

4)出现CodeWhisperer弹窗,添加AWS链接,选择Use a personal email to sign up and sign in with AWS Builder ID并链接。

https://docs.aws.amazon.com/images/codewhisperer/latest/userguide/images/JB-BUILD.png

5)在Sign in with AWS Builder ID弹窗中选择Open and Copy Code

6)将会弹出浏览器显示Authorize request窗口,此时代码应该已经添加到复制/粘贴缓冲区中。将其粘贴进去,然后选择Next

7)将打开一个浏览器选项卡,以显示“创建AWS Builder ID”页面。输入电子邮件地址,然后选择Next

8)您的姓名将出现一个字段。输入您的名字并选择Next

9AWS将向您提交的电子邮件地址发送确认码。在邮件验证界面,输入验证码,选择“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 支持热门编程语言和 IDEAmazon CodeWhisperer 支持开发语言有: PythonJavaJavaScriptTypeScriptC#GoRustPHPRubyKotlinCC++Shell 脚本、SQL Scala 等开发语言;支持的IDEVisual Studio CodeIntelliJ IDEA 等。所有开发人员(不仅仅是拥有亚马逊云服务账户或使用亚马逊云服务的人),只需一个电子邮箱地址即可注册。so easy!!!

4)针对 AWS 服务的优质建议:可以帮助程序员过滤出有偏见或不公正的代码建议,提高代码的安全性和准确性。CodeWhisperer 是唯一具备该功能的编程助手。当生成的代码类似于训练集中的参考代码时,它会为代码提供额外的提示(比如代码库 URL 和许可证),帮助降低使用代码的风险,并使开发人员重复利用代码。

5)内置安全扫描:可以对开发人员编写的代码进行安全扫描,找到并建议修复难以检测的漏洞。例如十大开放式 Web 应用程序安全项目 (OWASP) 中的漏洞以及不符合加密库最佳实践的漏洞等。如果 CodeWhisperer 发现了漏洞,它会提供解决问题的建议。