关键字: [Amazon CodeWhisperer, Amazon Codewhisperer Customization, Spring Boot Implementation, Code Recommendations, Training Codebase, Company Guidelines]
本文字数: 400, 阅读完需: 2 分钟
在这个演讲中, 演讲者阐释了Amazon CodeWhisperer 的定制功能如何允许开发者利用自身的代码库训练AI 模型, 从而获得量身定制的实现指南和专有API 的代码推荐。具体而言, 演讲者解释道, 开发者可以使用公司的示例代码或开源项目的代码库来训练CodeWhisperer, 使其能够提供符合所需编码实践和API 使用的代码推荐。该演讲重点介绍了Amazon CodeWhisperer 如何让开发者能够快速适应新的代码库、为开源项目做出贡献, 以及使用专有API, 从而节省学习和遵守特定实现指南的时间和精力。
偶尔, 开发人员需要快速掌握一些新知识, 以完成手头的任务。本文将分享一个这样的故事, 讲述开发人员如何利用Amazon CodeWhisperer 的定制功能来完成任务。
起初, 该开发人员在亚马逊购买了一本关于使用 Spring Boot 构建微服务的书籍。他需要学习这方面的知识, 为分配给他的一个新任务做准备。这个任务相当简单, 只需要为系统中名为”orders” 的实体实现一个新的持久层。他所需要做的就是创建一个新的实体类, 添加 JPA 注解, 并使用 Spring Boot 支持实现 Repository 模式。一切似乎按预期运行。为了确保走在正确的道路上, 他使用了Amazon CodeWhisperer 来验证代码, 结果显示实现遵循了编码最佳实践。他提交了一个 Pull Request, 等待开发团队审查任务。
然而, 该 Pull Request 被拒绝了。审查人员表示, 从技术角度来看, 代码是正确的, 但它没有遵循公司的一些实现指南, 例如继承自正确的基类, 缺少使用正确的日志框架。他们建议学习 Spring PetClinic 示例应用程序, 因为那是公司实现指南的来源。这时, 他想到了使用Amazon CodeWhisperer 的定制功能。
亚马逊的一名开发人员代言人 Ricardo Ferreira 很高兴向大家展示Amazon CodeWhisperer 的定制功能。这个功能允许使用特定的代码库进行训练。因此, 下次要求Amazon CodeWhisperer 提供建议或代码生成时, 它将基于训练代码提供服务。这在很多情况下都很有用。例如, 假设你想开始为一个开源项目做贡献, 你需要遵循它的实现指南。与其花费数周甚至数月的时间学习代码库, 不如使用该代码库训练Amazon CodeWhisperer, 它只需几个小时就能学会。之后, 你可以询问如何做事情, 它会根据那个示例代码的实现实践提供建议。另一种情况是, 你是一家公司团队的新开发人员, 该公司使用专有 API, 而这些 API 在其他地方是无法获得的。Amazon CodeWhisperer 本身是无法处理这些 API 的。你可以让团队领导提供一些示例代码, 用于训练Amazon CodeWhisperer 。训练完成后, 下次你询问如何完成某个任务时, 它就会根据你的特定需求提供定制化的建议。
首先, 你需要准备用于训练的代码样本。你可以让Amazon CodeWhisperer 直接从代码库( 如 GitHub) 中拉取代码, 或者将代码样本上传到 Amazon S3, 后者将是本文采用的策略。如你所见, 有一个名为”Spring PetClinic Code” 的存储桶, 在其中的”Code Content” 文件夹里, 上传了所有要用于训练的代码样本。在这个场景中, 使用了广为人知的 Spring PetClinic 示例代码。但你可以看到, 提供了同一示例代码的不同变体, 包括使用 Angular 作为前端框架、使用 React.js 作为前端框架, 以及使用 REST API 进行跨层通信的完整示例。这对于Amazon CodeWhisperer 更具体地理解你如何利用代码风格和代码重用在不同场景下是非常重要的。当你开始提出问题并创建提示以生成代码或获取代码建议时, 这将极大地影响Amazon CodeWhisperer 如何根据它所学习的内容来匹配你的意图。
上传完代码样本后, 你可以进入Amazon CodeWhisperer, 开始创建定制。你需要使用菜单中的定制功能, 该功能目前处于预览状态, 但在你观看这个视频时, 它可能已经可以普遍使用了, 不过工作流程基本相同。你需要点击” 创建定制” 按钮, 然后为定制命名。在这个例子中, 将其命名为”Spring PetClinic”, 以提醒所有训练目的都基于知名的 Spring PetClinic 代码样本。然后, 你可以选择不同的连接提供程序, 在这个示例中, 选择了 CodeStar, 我们可以连接到不同的代码库, 如 GitHub 或 Amazon S3, 后者将是本文中使用的选择。在这里, 你需要提供 S3 存储桶的 URI, 你可以点击” 浏览 S3” 按钮, 然后简单地选择你想要使用的 URI 。在这个例子中, 将使用”Code Content” 文件夹的 URI, 点击” 复制 S3 URI” 按钮, 然后返回输入 S3 URI 的地方, 粘贴该内容。
完成后, 你可以向下滚动并点击” 创建定制” 按钮。在此之前, 还可以使用名为” 日志传送” 的功能, 它可以让你跟踪和排查整个训练过程中可能出现的问题, 因为在Amazon CodeWhisperer 进行训练时, 它会将事件刷新到你在这里设置的位置。在这个例子中, 设置为 CloudWatch 日志, 以便在出现问题时进入那里, 了解训练过程的流程。
由于训练过程需要利用机器学习 API 和支持Amazon CodeWhisperer 背后的所有精彩生成 AI 技术, 因此这不是一个只需几分钟或 10 分钟就能完成的任务。通常需要一段时间的等待。
好了, 定制已经正确创建, 现在我们可以查看评分了。评分是Amazon CodeWhisperer 给出的一个数值, 用于量化你提供的代码样本的质量。要查看评分, 你需要点击这个”i” 按钮, 然后使用评分模型编号。1 到 3 分表示你提供的代码样本质量较低,4 到 7 分表示一般, 你可以继续激活, 有望获得一些不错的建议,8 到 10 分表示质量很好, 这意味着无疑你将从中获益。在这个例子中, 我们得到了 5 分, 属于” 一般” 范围, 因此我们可以继续使用这个版本。
要激活这个版本, 只需滚动到页面底部, 选择要使用的版本即可。这一点很重要, 因为一个给定的定制可能有多个版本, 这对于你决定为同一个定制提供更多代码样本时很重要, 你将最终得到多个版本。选择这个版本, 然后点击” 激活” 按钮。
现在, 你的定制已经激活, 可以开始使用了。但是, 在尝试使用定制之前, 有一点你需要注意。如果你现在跳到 IDE, 并尝试选择任何定制, 你会看到这样一条消息:“ 你没有访问任何Amazon CodeWhisperer 定制的权限, 唯一可用的是Amazon CodeWhisperer 基础定制” 。这是因为定制必须与用户或用户组相关联, 才能让他们看到和使用该定制。
因此, 开发人员需要返回到定制页面, 向下滚动至” 用户和组” 选项卡, 点击进入。在此, 开发人员可以选择组织中的特定个人或特定组, 后者包含一个或多个用户。在示例中, 将选择一个名为”Standard Developer” 的组, 该组与组织中的多个开发人员相关联。该组将被添加到定制中。
现在, 属于该组的任何用户都将能够不仅查看, 而且利用该定制及其基于训练代码样本的所有相关信息。您可能会想知道这些用户和组是从何处来的, 它们来自与Amazon CodeWhisperer 订阅相关联的身份中心。如果之前从未这样做过, 想了解如何设置, 可以查看相关博文, 其中教授了如何设置自己的亚马逊云科技组织、身份中心, 以及如何激活Amazon CodeWhisperer 订阅。在该教程中, 详细展示了从组织创建到设置正确的IAM 角色权限, 以确保亚马逊云科技用户能够顺利工作。
现在, 定制已与适当的组相关联, 将再次尝试在IDE 中选择定制。点击Amazon CodeWhisperer, 然后选择” 定制” 。现在可以看到,Spring PetClinic 定制对开发人员是可用的。请记住, 这只是因为在IDE 中连接的用户属于之前与定制相关联的”Standard Developer” 组。选择该定制后, 从现在开始,Amazon CodeWhisperer 提供的所有建议和代码生成都将基于用于训练的代码样本。
现在, 让我们测试一下, 在使用了该定制后,Amazon CodeWhisperer 是否能够如期望般为开发人员提供建议。将重复之前用于创建新实体类和基于JPA 的Repository 实现的提示, 然后按Enter 键, 让我们看看结果如何。
让我们查看这里作为建议提供的代码。首先查看实体实现。注意到它现在扩展了BaseEntity 。这是之前Pull Request 中提出的反馈。所以看起来它遵循了预期的最佳实践。而且它使用了log4j 作为日志框架的实现。之前错误地使用了Java Util Logging, 这也是提交Pull Request 时出错的地方。对于Repository 实现, 它似乎也在使用正确的接口。总的来说, 它有效地利用了代码样本中作为参考的代码应该是什么样子。这证明了, 在使用Amazon CodeWhisperer 的定制功能时, 它能够为开发人员提供更加具体和独特的建议, 以供利用。
Amazon CodeWhisperer 的这个新定制功能非常棒。它就像魔术一样, 因为当要求代码建议或代码生成时,Amazon CodeWhisperer 能够精确地提供所需要的。但是, 这里没有任何魔术。开发人员所需要做的就是提供一组代码样本用于训练。从那时起,Amazon CodeWhisperer 不仅能够学习需求, 而且能够根据提示将其置于上下文中, 从而提供正确的建议。强烈建议开发人员开始使用Amazon CodeWhisperer 的定制功能。现在是开发者的一个很好的时代。
总之, 该视频向我们展示了如何使用Amazon CodeWhisperer 的定制功能, 通过提供代码样本进行训练, 从而获得符合特定需求的代码建议和生成。这对于需要遵循特定实现指南或使用专有API 的开发人员来说是非常有用的。通过定制,Amazon CodeWhisperer 能够学习开发人员的需求, 并在给定提示的上下文中提供正确的代码建议, 从而极大地提高开发效率。
在这个引人入胜的故事中, 一位来自亚马逊云科技的开发者倡导者分享了一个与编码任务相关的经历。起初, 这个任务看似简单, 但却遇到了意料之外的挑战。他被指派实现一个名为Orders 的实体的新持久层, 勤勉地遵循了最佳实践, 并利用Amazon CodeWhisperer 进行验证。然而, 由于不符合公司特定的实现指南, 他的代码被拒绝了。
尽管如此, 这位开发者并没有气馁, 他发现了Amazon CodeWhisperer 的定制化功能, 该功能允许开发者根据特定的代码库训练AI 模型, 使其与组织的编码实践或开源项目的指南保持一致。这种定制化使开发者能够获得基于训练代码库的量身定制的推荐和代码生成, 从而简化了入职流程, 并确保了对既定约定的遵守。
接下来, 这位倡导者逐步演示了设置和利用定制化功能的过程, 让开发者能够将这个强大的工具无缝地集成到他们的工作流程中。通过采用Amazon CodeWhisperer 的定制化功能, 开发者可以克服编码挑战, 提高生产力, 并轻松地遵循项目特定的指南, 促进更高效和协作的编码体验。
亚马逊云科技(Amazon Web Services )是全球云计算的开创者和引领者。提供200 多类广泛而深入的云服务,服务全球245 个国家和地区的数百万客户。亚马逊云科技致力于成为企业构建和应用生成式AI 的首选,通过生成式AI 技术栈,提供用于模型训练和推理的基础设施服务、构建生成式AI 应用的大模型等工具、以及开箱即用的生成式AI 应用。深耕本地、链接全球 -- 在中国,亚马逊云科技通过安全、稳定、可信赖的云服务,助力中国企业加速数字化转型和创新,并深度参与全球化市场。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70038688/viewspace-3034405/ ,如需转载,请注明出处,否则将追究法律责任。