为什么选择使用Amazon CodeWhisperer作为IDE代码生成工具?
当然是因为穷呀, 当下AI代码生成工具比较成熟好用的是 Github copilot, 当你拍拍口袋发现不舍得支付每个月10美刀的时候 CodeWhisperer 将是不错的选择。
Amazon CodeWhisperer 是一款由机器学习驱动的通用代码生成器,可为您实时提供代码建议。
CodeWhisperer 经过数十亿行代码的训练,可以根据您的评论和现有代码实时生成从代码片段到全函数的代码建议。绕过耗时的编码任务,加速使用不熟悉的 API 进行的构建。
当您编写代码时,CodeWhisperer 会根据您现有的代码和注释自动生成建议。您的个性化建议的大小和范围可能有所不同,从单行注释到完整的功能。
CodeWhisperer 还可以扫描您的代码以突出显示和定义安全问题。
支持什么IDE?
您可以在多个开发环境中使用CodeWhisperer,如:Visual Studio(VS)Code 和 JetBrains IDE(IntelliJ、PyCharm、CLion、GoLand、WebStorm、Rider、PhpStorm、RubyMine 和 DataGrip)。
CodeWhisperer支持哪些编程语言?
CodeWhisperer 支持 15 种编程语言的代码生成。编程语言代码生成的准确性和质量取决于训练数据的大小和质量。
就训练数据的质量而言,支持最多的编程语言是:
- Java
- Python
- JavaScript
- TypeScript
- C#
CodeWhisperer 还支持以下代码生成:
- Ruby
- Go
- PHP
- C++
- C
- Shell
- Scala
- Rust
- Kotlin
- SQL
如何安装并配置CodeWhisperer?
CodeWhisperer可以在多个开发环境中使用,如:Visual Studio(VS)Code 和 JetBrains IDE(IntelliJ、PyCharm、CLion、GoLand、WebStorm、Rider、PhpStorm、RubyMine 和 DataGrip)¹。
下面是在IDEA中安装并配置CodeWhisperer的步骤:
1. 打开IDEA的设置窗口,选择Plugins,搜索"AWS Toolkit",点击Install,点击OK按钮。
2. 打开AWS Toolkit视图(菜单View/Tool Windows/AWS Toolkit),点击"Developer Tools"tab页,选择“CodeWhisperer/Start"。
3. 弹出的窗口中选择“Use a personal email to sign up and sign in with AWS Builder ID",点击“Connect”按钮。
4. 在弹出的窗口中,选择“Open and Copy Code”。
5. 返回IDEA,在AWS Toolkit视图中的Developer Tools中可以打开或关闭代码生成功能。
代码示例
当您开始输入单行代码或注释时,CodeWhisperer 会根据您当前和以前的输入提出建议。
在下图中,用户已开始输入一行代码。根据输入,CodeWhisperer 生成了完成该线路的建议。用户可以使用箭头键循环浏览建议。
全功能生成
CodeWhisperer 可以根据您的函数签名或代码注释生成整个函数。在下图中,用户编写了用于从 Amazon S3 读取文件的函数签名。然后,Amazon CodeWhisperer 建议完整实施该read_from_s3
方法。
注意: 有时,如前面的示例所示,CodeWhisperer 会包含import
语句作为其建议的一部分。最佳做法是手动将这些import
语句移至文件顶部。
作为另一个示例,在下图中,用户编写了函数签名。然后,CodeWhisperer 建议该方法的完整实现quicksort
。
CodeWhisperer 在提出建议时会考虑过去的代码片段。在下图中,上一示例中的用户已接受上述建议的实现quicksort。然后,用户为通用sort方法编写另一个函数签名。然后,CodeWhisperer 根据已编写的内容建议一个实现。
在下图中,用户写了一条评论。根据此评论,CodeWhisperer 随后建议一个函数签名。
在下图中,上一示例中的用户已接受建议的函数签名。然后,CodeWhisperer 可以建议该功能的完整实现binary_search
。
区块完成
块完成用于完成if/for/while/try代码块。
在下面的示例中,用户在 Java 中输入语句的签名if 。声明的正文是 CodeWhisperer 的建议。
文档字符串和 Javadoc 完成
在下面的示例中,用户在 Java 中输入文档字符串。CodeWhisperer 建议使用一个函数来处理文档字符串。
逐行推荐
根据您的使用案例,CodeWhisperer 可能无法在一项建议中生成整个功能块。但是,CodeWhisperer 仍然可以提供逐行建议。在下图中,客户编写了一条初始评论,表明他们想要将消息发布到 Amazon CloudWatch Logs 组。在这种情况下,CodeWhisperer 只能在其第一个推荐中建议客户端初始化代码,如下图所示。
但是,如果用户继续请求逐行推荐,CodeWhisperer 还会继续根据已编写的内容建议代码行。
注意: 在上面的示例中,VPCFlowLogs
可能不是正确的常量值。当 CodeWhisperer 提出建议时,请记住根据需要重命名任何常量。
CodeWhisperer最终可以完成整个代码块,如下图所示。
单行注释完成
下图中,用户已开始输入评论,CodeWhisperer 已生成完成评论的建议。