亚马逊AWS官方博客

使用您的私有代码库自定义 Amazon Q 开发者版(在 IDE 中)



今天,我们正式推出 Amazon Q 开发者版(位于您的 IDE 中)自定义功能,它用于内联代码完成,而且我们还将推出聊天自定义预览版。现在,您可以在 IDE 代码编辑器和聊天中自定义 Amazon Q,以从私有代码存储库生成特定的代码推荐。

Amazon Q 开发者版是一种人工智能(AI)编码伴侣。它通过在集成式开发环境(IDE)中提供源自现有注释和代码的代码推荐,帮助软件开发人员加快应用程序开发过程。在后台,Amazon Q 使用大型语言模型(LLM),这些模型是在来自 Amaozn 和开源项目的数十亿行代码的基础上进行训练的。

Amazon Q 可在您的 IDE 中提供,而且您可以下载 JetBrainsVisual Studio CodeVisual Studio(预览版)的扩展。在 IDE 文本编辑器中,当您键入或写入整个函数时,它会根据输入的注释提供建议代码。您也可以与 Q 开发者版聊天,要求它为特定任务生成代码或解释您所发现的代码库中的代码片段。

借助新的自定义功能,开发人员现在可以收到基于其组织内部库、API、包、类和方法的更多相关代码推荐。

例如,假设一家金融公司的开发人员负责编写一个函数来计算客户的投资组合总价值。开发人员现在可以在评论中描述意图或键入函数名称,例如 computePortfolioValue(customerId: String)Amazon Q 将根据从贵组织的私有代码库中学到的示例推荐实现该功能的代码。

开发者还可以在聊天中询问有关其组织代码的问题。在上面的示例中,假设开发人员是团队的新人,不知道如何检索客户 ID。他可以在聊天中用通俗易懂的英语提问:如何连接到数据库以检索特定客户的 customerIdAmazon Q 聊天会回答:我找到了一个根据客户的名字和姓氏检索 customerId 的函数,它使用数据库连接 XYZ…

作为管理员,您可以根据内部 Git 存储库(例如 GitHub、GitLab 或 BitBucket)或 Amazon Simple Storage Service (Amazon S3) 存储桶创建自定义。它可以帮助 Amazon Q 了解意图,确定哪些内部和公共 API 最适合该任务,并生成代码推荐。

Amazon Q 自定义功能可确保 AWS 满足您对数据隐私和安全性的高要求。您与 Amazon Q 共享的代码库是组织的私有资产。我们不会用它来训练我们的基础模型。部署自定义后,推理端点对于组织中的开发人员是私有的。基于您的代码的推荐不会在其他公司的开发者 IDE 中弹出。您可以决定哪些开发人员有权访问每项自定义,并且可以按照指标来衡量您部署的自定义的性能。

我们基于检索增强生成(RAG)等领先的技术构建了 Amazon Q 自定义功能。这篇非常详细的博客文章分享了有关 Amazon Q 自定义功能背后的科学的更多细节

CodeWhisperer RAG 示意图

自去年 10 月 17 日发布预览版以来,我们增加了两项新功能:更新自定义的功能和在 IDE 中自定义聊天的功能。

您所在组织的代码库在不断演进,您希望 Amazon Q 始终能推荐最新的代码片段。Amazon Q 管理员目前在 AWS 管理控制台中只需一步就能开始更新流程。管理员可以根据代码存储库的最新提交来安排定期更新计划,以确保开发人员始终收到高度准确的代码建议。

通过新的聊天自定义(预览版),组织中的开发人员可以在其 IDE 中选择一部分代码并将其发送到聊天中,让聊天提供有关所选代码用途的解释。开发人员还可以询问与其组织代码库相关的通用问题,例如 “如何连接到数据库以检索特定客户的 customerId?”

下面来看看它的用法
在本演示中,我决定重点介绍一下今天正式发布的新的自定义更新功能。要快速学习如何创建自定义、如何激活自定义以及如何向开发人员授予访问权限,请阅读我的同事 Donnie 的精彩文章

要更新现有的自定义,我将导航到 Amazon Q 控制台页面的“自定义”部分。我选择了要更新的自定义。然后,我选择了“操作”和“创建新版本”。

Codewhisperer 自定义 - 更新 1a

与创建自定义时执行的操作类似,我选择了源代码存储库并选择 “创建”。

Codewhisperer 自定义

创建新版本的自定义可能需要一段时间,因为这取决于要提取的代码数量。准备就绪后,“版本”选项卡下会显示一个新版本。您可以将新版本的评估分数与先前版本进行比较,然后决定是否将其激活以便开发人员使用。在任何时候,您都可以恢复到以前的版本。

Codewhisperer 自定义 - 更新 3a

活动自定义的有一点我比较喜欢,即我可以监控其有效性,以帮助提高组织中开发人员的生产力。

在“仪表板”页面上,我跟踪用户活动。我可以追踪有多少个每日活跃用户、生成了多少行代码、执行了多少次安全扫描等等。如果您像我一样过去使用过 Amazon CodeWhisperer Professional,那么当您现在使用它时,仍然可能会在某些页面上看到 CodeWhisperer 这个名字。它将逐步被新名称所取代:Amazon Q 开发者版。

Codewhisperer 自定义仪表板 1

Amazon Q 生成更多指标并将它们发布在 Amazon CloudWatch 上。我可以构建 CloudWatch 仪表板来监控所部署的自定义的性能。例如,这是一个自定义 CloudWatch 仪表板,用于监控代码建议的区块接受率线路接受率,按每种编程语言进行细分。

Codewhisperer 自定义仪表板 2

支持的编程语言
目前,您可以在用 Java、JavaScript、TypeScript 和 Python 编写的代码库上自定义 Amazon Q 推荐。创建自定义或在 IDE 中提供自定义推荐时,不会使用通过 Amazon Q 支持的其他语言(例如 C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和 Scala)编写的文件。

定价和可用性
Amazon Q 不受 AWS 区域的限制,可供全球开发人员使用。Amazon Q 目前托管在美国东部(弗吉尼亚州北部)。如果您在其他区域拥有 AWS IAM Identity CenterAmazon Q 管理员可以将 Amazon Q 配置为授权的跨区域应用程序。

Amazon Q 自定义功能在 Amazon Q 开发者版专业订阅中免费提供。您最多可以为每个 AWS 账户创建八个自定义,并保持最多两个自定义处于活动状态。

现在开始构建,并开始向贵组织的开发人员推荐 Amazon Q

— seb

*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。