• [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧


    在这里插入图片描述

    一、Amazon CodeWhisperer 简介

    1.1 CodeWhisperer 是什么

    Amazon CodeWhisperer 利用机器学习在您编码时提供实时代码建议。这些量身定制的建议适合您当前的代码库,从注释到完整的功能。此外,该工具还执行安全扫描,通过查明可能的漏洞来提高代码质量。通过提供个性化、上下文相关的支持,CodeWhisperer 提高了效率并促进了编码最佳实践的采用。

    一句话总结,Amazon CodeWhispere r是 Amazon 推出的一款AI编程助手。

    这里提一下,Amazon CodeWhisperer 有两种,一种是个人用,一种是专业级的,大致的区分概括如下:

    CodeWhisperer 个人用:代码建议和参考跟踪免费;每月还可免费扫描 50 次代码。
    CodeWhisperer 专业级:根据最大用户数(即每个用户每月)按月计费。

    1.2 Amazon CodeWhisperer 是如何工作的

    我使用起来 Amazon CodeWhisperer 的感受是,你可以当 Amazon CodeWhisperer是一款人工智能伙伴。

    你在 IDE 中写代码,或者有疑问编写注释等的时候,IDE会自动的发送你的需求,或者你想要的给 Amazon CodeWhisperer,Amazon CodeWhisperer 会使用 AI 生成基于 IDE中先前的代码和注释生成在你编写代码时提供类似自动补全的建议。你可以通过开始编写你想要使用的代码,或者写下自然语言描述想要代码实现的功能。

    在这里插入图片描述

    二、Amazon CodeWhisperer 的优势和功能

    2.1 Amazon CodeWhisperer 的优势

    个人研究学习的时候发现:Amazon CodeWhisperer优势还是比较多的,毕竟是大公司开发,起主要的功能可以归纳为:

    1. 通用代码生成器: Amazon CodeWhisperer 是一款旨在通过实时生成代码建议来帮助开发人员的工具。

    2. 机器学习驱动: CodeWhisperer 使用机器学习算法来理解和分析您编写的代码。它利用此分析来生成相关且上下文感知的代码建议。

    3. 实时建议:当您编写代码时,CodeWhisperer 会提供自动、即时的代码建议。这种实时反馈可以帮助简化编码流程并提高生产力。

    4. 上下文感知建议: CodeWhisperer 生成的建议是根据您的特定代码库量身定制的。它会考虑您现有的代码、注释和当前上下文来提供相关建议。

    5. 建议的范围不同: CodeWhisperer 的建议的复杂程度可能有所不同。它们的范围可以从简单的注释或代码注释到整个函数或代码块。

    6. 提高生产力:通过提供相关代码建议,CodeWhisperer旨在帮助开发人员更高效地编写代码,减少手动搜索代码示例或语法的需要。

    7. 代码安全分析:除了代码生成之外,CodeWhisperer 还能够扫描您的代码是否存在安全问题。它可以突出显示潜在的安全漏洞,帮助您识别和解决代码库中的安全问题。通过提供实时建议并突出显示安全问题,CodeWhisperer 可以推广编码最佳实践并鼓励遵守编码标准。

    8. 以开发人员为中心: CodeWhisperer 旨在支持开发人员完成编码任务。它旨在提供符合开发人员意图和编码实践的有意义的建议。CodeWhisperer 的代码建议根据开发人员的风格和编码偏好量身定制,打造更加个性化的编码体验。

    9. 学习潜力:开发人员可以从 CodeWhisperer 生成的建议中学习,深入了解编码模式和最佳实践。

    2.2 Amazon CodeWhisperer 的代码功能

    其实作为开发者,我们的重点大部分是关注 Amazon CodeWhisperer 能给出的diamante级别的建议到底是什么,体验下来可以看到 CodeWhisperer 给出的几种建议:

    • 单行代码完成:提供在您键入时完成单行代码的建议,帮助语法和函数调用。

    • 完整函数生成:根据上下文和编码模式自动生成完整函数。

    • 块完成:提供完成循环或条件等代码块的建议,从而改进代码结构。

    • Docstring 和 Javadoc 补全:生成函数和类的文档字符串,帮助编写代码文档。

    • 逐行建议:提供实时逐行编码建议,提高代码质量和效率。

    • 单行注释完成:提供完成单行注释的建议,帮助代码解释和注释。

    例如,你可以通过单击向右箭头接受建议或查看多个代码建议。

    三、Amazon CodeWhisperer 安装

    3.1 安装到 IntelliJ IDEA

    1. 在 IntelliJ IDEA 中点击 Setting 打开设置窗口,随后点击 Plugins 进入插件页面
    2. 在搜索栏内搜索 AWS ToolKit
    3. 点击 Install 安装插件

    在这里插入图片描述

    1. 待插件安装完毕后点击右下角 OK 确认安装,安装完毕后将在 IDE 中看到 AWS ToolKit 插件

    在这里插入图片描述

    1. 启用 CodeWhisperer 在弹出窗口中,选择“使用个人邮箱注册并登录 Builder ID”,点击右下角 Connect。

    在这里插入图片描述

    1. 登陆 Builder ID

    在这里插入图片描述

    在登录时您将看到如下窗口。请点击“打开并复制验证码”,并使用验证码进行验证。

    在这里插入图片描述

    跳转到你的浏览器,粘贴刚刚复制的验证码

    在这里插入图片描述

    随后将跳转至登录注册页面。如果为首次使用,请用您的电子邮箱进行注册。注册和登录完毕后即可开始使用 CodeWhisperer

    在这里插入图片描述

    3.2 安装到 VS Code 中

    与安装到 IntelliJ IDEA 中类似,此处不做过多介绍,直接在插件市场里找到亚马逊的AWS Toolkit插件直接安装即可。

    在这里插入图片描述

    四、Amazon CodeWhisperer 使用实战

    4.1 根据注释生成相应代码

    给出的提示词如下(创建一个函数来创建DynamoDB表):

    # Create a function to create a DynamoDB table
    
    • 1

    Amazon CodeWhisperer 给出的解决方案:
    在这里插入图片描述

    另外尝试生成的更具体的案例,我们给出的提示词如下:

    # 函数创建DynamoDB表,以员工ID为主键和 readcapacity单 位为100和写入容量单位为200
    # Function to create a DynamoDB table with employee ID as primary key and ReadCapacityUnits at 100 and WriteCapacityUnits at 200
    
    • 1
    • 2

    Amazon CodeWhisperer 给出的解决方案:
    在这里插入图片描述

    从这里可以看出,就和 ChatGPT 类似,如果你的提示词更具提,CodeWhisperer 生成的内容也更具具体,符合你的期望,所以适当的写出提示词给 CodeWhisperer,才能更好的让他来帮助到你。

    4.2 测试返回多个记录

    在这里,我们根据提供的代码,使用 CodeWhisperer 来生成多个记录。

    所使用的测试代码如下:
    在这里插入图片描述
    我们给出自己的需求,和相应的提示词给 CodeWhisperer

    # Patch get_products and test lambda_handler returns a multiple records
    # Patch get_products和test lambda_handler返回多条记录
    
    • 1
    • 2

    CodeWhisperer 根据我们的提示词生成并返回相应的代码

    # Patch get_products and test lambda_handler returns multiple records
    @patch('product_api.get_products')
    def test_lambda_handler_multiple(self, mock_get_products):
    mock_get_products.return_value = [{'id': '1', 'name': 'test', 'description': 'test'}, {'id': '2', 'name': 'test2', 'description': 'test2'}]
    response = product_api.lambda_handler(None, None)
    self.assertEqual(response['statusCode'], 200)
    self.assertEqual(response['body'], '[{"id": "1", "name": "test", "description": "test"}, {"id": "2", "name": "test2", "description":
    "test2"}]')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    五、CodeWhisperer 学习好礼

    云上探索实验室开展至今,越来越多的人都对 AI 编程助手 Amazon CodeWhisperer 赞不绝口。为了让大家在体验时不走弯路,快速上手 Amazon CodeWhisperer,云上探索实验室-码上学堂来啦!为了让更多的伙伴们加入到学课阵营中,云上探索实验室面向所有伙伴们,特别招募码上学堂领学员,邀人加入码上学堂,有好礼相送哦。

    活动链接:https://mp.weixin.qq.com/s/WgeRzML5MogLSWeM57zv3w

    在这里插入图片描述

    (参与学习奖品)

    CodeWhisperer 学课通道:

    • CSDN平台:https://edu.csdn.net/course/detail/38969?utm_source=AWS-Paid-Builder-MKT-Social-YS-CW-CSDN
    • 网易云课堂:
      https://study.163.com/course/introduction/1213602804.htm?from=AWS-Paid-Builder-MKT-Social-YS-CW-NECC
    • Skill Builder 平台:
      https://explore.skillbuilder.aws/learn/course/external/view/elearning/17168/amazon-codewhisperer-getting-started-simplified-chinese?trk=d15c46ed-1e4e-4e8b-82c0-63ba2feb26b9&sc_channel=el

    在这里插入图片描述

  • 相关阅读:
    openlayers 绘制动态迁徙线、曲线
    使用Python的time库来格式化时间
    Java SE 7将于7月退役
    入手评测AMD锐龙r7 6800u和酷睿i7 1260p选哪个 r76800u和i71260p对比
    SpringSecurity(十六)---OAuth2的运行机制(中)-密码、客户端凭据授权类型以及刷新令牌
    生物制药产业发展现状和趋势展望
    centos7 crash调试内核
    产品结构设计的主要内容有哪些?
    【Make YOLO Great Again】YOLOv1-v7全系列大解析(输入侧篇)
    gradle目录结构,项目目录结构
  • 原文地址:https://blog.csdn.net/dietime1943/article/details/134453885