亚马逊AWS官方博客

Amazon CodeWhisperer 中全新的自定义功能可生成更好的建议(预览版)



Amazon CodeWhisperer 等 AI 编码配套应用程序旨在通过帮助开发人员快速安全地编写代码来提高他们的工作效率。但是,在某些情况下,开发人员需要根据其日常广泛使用的内部库和 API 来获得代码建议。

由于大多数现有的 AI 编码配套工具仅针对开源代码进行训练,因此缺乏使用私有代码存储库自定义代码建议的能力。这种限制给开发人员带来了各种各样的挑战。开发人员很难学习如何正确使用内部库和避免安全问题。对于大型代码库,需要花费数小时阅读文档才能了解需要编写哪些代码以完成任务。

现已推出预览版 — Amazon CodeWhisperer 自定义功能
今天,我很高兴地宣布推出 Amazon CodeWhisperer 自定义功能(预览版),该功能使组织能够自定义 CodeWhisperer,从而从私有代码存储库生成特定的代码建议。借助此功能,Amazon CodeWhisperer Professional 级别的开发人员现在可以收到实时代码建议,其中包括其内部库、API、软件包、类和方法。

假设您是一名开发人员,在一家名为 AnyCompany 的虚构送餐公司工作。您的任务是处理骑手当前位置附近未分配的外卖列表。以前,使用 CodeWhisperer 时,它无法获取正确的内部 API 来处理未分配的外卖订单或骑手当前位置,因为这并不是公开信息。 

现在,通过自定义功能,您可以要求 CodeWhisperer 提供建议,其中包括与公司内部服务相关的特定代码。下面的屏幕截图展示了 CodeWhisperer 如何通过仅编写一组注释来基于内部代码库生成代码。

凭借利用内部代码库的自定义功能,CodeWhisperer 现在能够理解意图,确定哪些内部和公共 API 最适合该任务,并生成代码建议。

工作原理
上面的解释描述了作为开发人员如何使用 CodeWhisperer 自定义功能。现在,我将介绍它的工作原理以及入门方法。 

要创建自定义设置,您需要以 CodeWhisperer 管理员的身份完成以下步骤。 

  1. CodeWhisperer 管理员的身份管理您的最终用户。
  2. 连接到现有存储库。您可以使用 AWS CodeStar Connections 来连接 GitHub、GitLab 或 BitBucket 账户中的一个或多个代码存储库,也可以手动将所有代码上传到 Amazon Simple Storage Service(Amazon S3)存储桶中。
  3. 创建自定义设置。CodeWhisperer 将根据您的代码库自定义其模型。
  4. 激活团队成员的自定义设置。创建自定义设置后,您可以查看并手动激活该设置,使其在团队成员的 IDE 中自动可用。

该功能具有两个主要优势:提供针对组织的实时自定义代码建议,以及确保保护宝贵的知识产权。组织现在可以根据现有存储库中的代码,推广使用符合其质量和安全标准的代码。

此外,CodeWhisperer 还提供在 AWS Key Management Service(AWS KMS)中使用客户托管密钥对自定义数据进行加密的选项,从而帮助确保代码的安全性。自定义作业完成后,这些自定义数据将被删除。 

我们开始吧
我将向您展示如何使用 Amazon CodeWhisperer 自定义功能。

首先,我需要创建一个自定义设置。我需要管理员访问权限才能导航到 Amazon CodeWhisperer 控制面板上的创建自定义设置页面。

创建自定义设置页面上,我可以连接我希望 CodeWhisperer 训练的目标私有代码存储库。目前,CodeWhisperer 自定义功能支持通过 AWS CodeStar Connections 连接 GitHub、GitLab 和 Bitbucket。如果我的代码不在任何代码存储库中,我也可以手动将代码上传到 S3 存储桶并定义 Amazon S3 URI。

以下屏幕截图显示我使用 AWS CodeStar Connections 与我的代码存储库建立了现有连接。我也可以通过选择创建新连接来创建新连接。

然后,我可以选择创建自定义设置,这样 CodeWhisperer 就可以根据连接中提供的代码开始训练模型。完成此过程所需的时长取决于代码存储库的大小。

自定义设置准备就绪后,CodeWhisperer 不会自动将其激活。这使我能够根据需要灵活地激活自定义设置。但是,在我演示之前,我想解释一下评估分数。

简而言之,评估分数可以帮助我衡量自定义设置在根据我的代码存储库中的代码预测和提供代码建议方面的准确性。它提供三个分数类别中的一个:1) 非常好,分数在 7-10 之间;2) 一般,分数在 4-7 之间;3) 差,分数在 0-4 之间。如果评估分数等于 6 或更高,建议激活该自定义设置。如果评估分数低于预期,我需要确保提供为该自定义设置提供了充分的代码,并且提供了广泛包含对内部 API 的引用的新代码数据集。

在这里,我可以看到我的自定义设置的评估分数是 8,我对这个结果很满意。然后,我可以选择激活开始使用此自定义设置。

激活自定义设置后,我可以通过选择添加用户来定义对所选自定义设置的访问权限。现在,我可以为已添加为 Amazon CodeWhisperer Professional 级别用户的选定团队成员提供自定义设置访问权限。为此,我可以按照管理最终用户页面上的指南进行操作。 

然后,一旦我的团队成员在他们的 IDE 中通过 AWS Toolkit 登录,就会看到可用的自定义设置并可以开始使用它们。 

借助 Amazon CodeWhisperer,我可以通过提供不同的代码存储库来创建多个自定义设置。如果我想为某些团队的代码建议创建自定义设置,则此功能非常有用。 

作为管理员,我还可以通过导航到 CodeWhisperer 控制面板页面来监控每个自定义设置的性能。本页汇总了有用的数据,例如用户活动、CodeWhisperer 建议的代码行数,我的团队成员接受的代码行数,以及成功从 IDE 运行的安全扫描次数。 

Amazon CodeWhisperer 的自定义功能还遵循 Amazon CodeWhisperer 的 AWS 工具包中支持的 IDE,例如 Visual Studio Code、IntelliJ JetBrains、Visual Studio 和 AWS Cloud9。此功能还支持大多数热门的编程语言,包括 Python、Java、JavaScript、TypeScript 和 C#。

加入公开预览版
通过安全地利用客户的内部代码库,Amazon CodeWhisperer 可以充分发挥根据您的独特要求定制的生成式人工智能支持的编码的全部潜力。

立即加入公开预览版,在 Amazon CodeWhisperer 自定义页面上详细了解如何开始使用。

编程愉快!
Donnie