亚马逊AWS官方博客

现已推出预览版 – Amazon CodeWhisperer – 机器学习助力的编码助手



当我准备写这篇文章时,我花了一些时间思考我在职业生涯中使用的一些编码工具。这包括我上初中时使用的面向行的编辑器(BASIC 解析器的固有部分)、我刚上大学时使用的 IBM 键控打孔机、各种类型的 EmacsVisual Studio。早期编辑器非常实用,但随着 CPU 功能变得更加丰富,它们也越来越复杂。起初,这种日益增加的复杂性采用词汇辅助形式,例如动态完成部分输入的变量和函数名称。后来,编辑器能够解析源代码,并根据语法和数据类型提供帮助 – 例如,Visual StudioIntelliSense。这些功能在当时都开创了新天地,而且每个功能都有相同的基本目标:帮助开发人员编写更好的代码,同时减少日常工作和重复工作。

宣布推出 CodeWhisperer
今天,我想向大家介绍 Amazon CodeWhisperer。CodeWhisperer 经过数十亿行代码的训练,由机器学习提供支持,旨在实现相同的目标。无论您是学生、新开发人员,还是经验丰富的专业人士,CodeWhisperer 都有助于您提高工作效率。

我们推出预览版形式,支持多种 IDE 和语言。要开始使用,您只需安装合适的 AWS IDE Toolkit,启用 CodeWhisperer 功能,输入您的预览访问代码,然后开始键入:

CodeWhisperer 将持续检查您的代码和注释,并为您提供语法正确的推荐。这些推荐根据您的编码风格和变量名称合成,而不仅仅是代码段。

CodeWhisperer 使用多个上下文线索来提供推荐,包括源代码中的光标位置、光标前面的代码、注释以及同一项目中其他文件中的代码。您可以按原样使用推荐,也可以根据需要对其进行改善和自定义。正如我之前所提到的,我们使用从开源存储库、内部 Amazon 存储库、API 文档和论坛中提取的数十亿行代码训练(并将继续训练)CodeWhisperer。

CodeWhisperer 的实际应用
我在 PyCharm 中安装了 CodeWhisperer 预览版,并对其进行了测试。以下是一些示例,向您展示了它可以执行的操作。我想构建一个质数列表。我键入 # See if a number is pr。CodeWhisperer 完成此操作,然后我按下 TAB(实际键特定于每个 IDE)接受推荐:

在下一行,我按下 Alt-C(同样是 IDE 特定),然后我可以在一对函数定义之间进行选择。我接受第一个函数,CodeWhisperer 推荐函数体,以下是我所拥有的:

我编写 for 语句,CodeWhisperer 推荐循环的主体:

CodeWhisperer 还可以帮助我编写用于访问各种 AWS 服务的代码。我从 # create S3 bucket 开始,然后按 TAB 键完成剩余部分:

我可以为您展示许多更出色的示例,您只需加入预览版并试用 CodeWhisperer,就可以了解更多信息。

参与预览版的试用
预览版支持使用 VS CodeIntelliJ IDEAPyCharmWebStormAWS Cloud9,以 Python、Java 和 JavaScript 编写的代码。AWS Lambda 控制台支持已在准备中,很快就会就绪。

加入 CodeWhisperer 预览版,让我知道您的想法!

Jeff