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

在这里插入图片描述

文章目录

    • 一、Amazon CodeWhisperer 简介
      • 1.1 CodeWhisperer 是什么
      • 1.2 Amazon CodeWhisperer 是如何工作的
    • 二、Amazon CodeWhisperer 的优势和功能
      • 2.1 Amazon CodeWhisperer 的优势
      • 2.2 Amazon CodeWhisperer 的代码功能
    • 三、Amazon CodeWhisperer 安装
      • 3.1 安装到 IntelliJ IDEA
      • 3.2 安装到 VS Code 中
    • 四、Amazon CodeWhisperer 使用实战
      • 4.1 根据注释生成相应代码
      • 4.2 测试返回多个记录
    • 五、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

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

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返回多条记录

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"}]')

五、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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/160518.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音直播招聘报白是一种新颖、高效的招聘方式增加曝光度和吸引力

总之,抖音招聘是一种新颖、高效的招聘方式,它可以为公司带来更大的曝光度和吸引力,帮助公司吸引更多优秀的人才。通过抖音直播招聘报白,企业或者人力资源公司可以利用抖音的短视频流量红利,触达到每天超过8亿的活跃用户…

centos虚拟机无法接受消息(防火墙)

1.利用wireshark抓包, 发现发送信息后, 虚拟机返回 :host administratively prohibited 2.发现是centos虚拟机未关闭防火墙 (关闭后可正常接收消息)

数字音频工作站FL Studio21.1中文版本如何下载?

在现在这个数字音乐时代,各种音乐中都或多或少有些电子音乐的影子,或是合成器音色、或是通过数字效果器制作出的变幻莫测的变化效果。而小马丁、Brooks、Eliminate等众多电子音乐巨头便是使用FL Studio来制作音乐的。今天小编就以FL Studio五年的资深用户…

java学习part05

43-流程控制-使用Scanner类从键盘获取数据_哔哩哔哩_bilibili 1.接收输入 步骤 例子 2.生成随机数 3.switch-case 4.for 5.while

4.3 Windows驱动开发:监控进程与线程对象操作

在内核中,可以使用ObRegisterCallbacks这个内核回调函数来实现监控进程和线程对象操作。通过注册一个OB_CALLBACK_REGISTRATION回调结构体,可以指定所需的回调函数和回调的监控类型。这个回调结构体包含了回调函数和监控的对象类型,还有一个A…

go zero手把手教你入门案例

一、入门案例 1、在黑窗口上安装 go install github.com/zeromicro/go-zero/tools/goctllatest2、使用goland创建一个项目 3、在项目中安装依赖 go get -u github.com/zeromicro/go-zerolatest4、模拟创建一个user的项目 goctl api new user5、安装依赖包 go mod tidy6、补充代…

Java 算法篇-链表的经典算法:有序链表去重、合并多个有序链表

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 链表的说明 2.0 有序链表去重的实现方式 2.1 有序链表去重(保留重复的节点) - 使用递归来实现 2.2 有序链表去重(保留重复的节点) - 使用双指针来实现 2.3 有序…

U盘如何自定义图标?

1、准备一张图片,转换为.ico格式,转换格式的工具推荐一个ToYcon 转换好后放到拷贝到u盘里面。 2、在u盘里面新建一个文本文档,在文档里面写入以下内容,注意,这里的test为图片的名称。 根据自己图片名称做一下修改。 […

三十二、W5100S/W5500+RP2040树莓派Pico<UPnP示例>

文章目录 1 前言2 简介2 .1 什么是UPnP?2.2 UPnP的优点2.3 UPnP数据交互原理2.4 UPnP应用场景 3 WIZnet以太网芯片4 UPnP示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 随着智能家居、物联网等…

6.7二叉树的最小深度(LC111)

审题要清楚: 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。注意是叶子节点(左右孩子都为空的节点才是叶子节点!)。 算法: 既可以求最小高度,也可以直接求深度。 最小高度: 后序…

4M防错追溯与MES管理系统的融合应用

在现代化制造业中,质量追溯已成为企业核心竞争力的重要组成部分。为了实现精确的质量追溯,制造企业广泛采用了MES管理系统解决方案来进行生产过程中的数据管理。本文将探讨如何通过MES管理系统实现4M防错追溯,并提升企业的生产与管理效率。 一…

软件质量保护与测试(第2版)学习总结第十三章 集成测试

很多人都认为微软是一家软件开发公司,事实上我们是一家软件测试公司。 ---比尔盖茨 集成测试是在单元测试的基础上将多个模块组合在一起进行测试的过程。 13.1.1 区别 单元测试主要关注模块内部,系统测试则是在用户的角度来评价系统&#xff…

第四篇 《随机点名答题系统》——基础设置详解(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)

目录 1.功能需求 2.数据库设计 3.流程设计 4.关键代码 4.1.设置题库 4.1.1数据请求示意图 4.1.2选择题库(index.php)数据请求代码 4.1.3取消题库(index.php)数据请求代码 4.1.4业务处理Service(xztk.p…

【高并发内存池】第一篇 项目简介及定长内存池

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…

Flume学习笔记(4)—— Flume数据流监控

前置知识: Flume学习笔记(1)—— Flume入门-CSDN博客 Flume学习笔记(2)—— Flume进阶-CSDN博客 Flume 数据流监控 Ganglia 的安装与部署 Ganglia 由 gmond、gmetad 和 gweb 三部分组成。 gmond(Ganglia …

MybatisPlus学习

一.快速入门 1.相关数据库创建 CREATE TABLE USER(id BIGINT(20) NOT NULL COMMENT 主键ID,NAME VARCHAR(30) NULL DEFAULT NULL COMMENT 姓名,age INT(11) NULL DEFAULT NULL COMMENT 年龄,email VARCHAR(50) NULL DEFAULT NULL COMMENT 邮箱,PRIMARY KEY (id));​​INSERT I…

BUG:编写springboot单元测试,自动注入实体类报空指针异常

原因:修饰测试方法的Test注解导入错误 造成错误的原因是 import org.junit.Test;正确的应该是 import org.junit.jupiter.api.Test前者是Junit4,后者是Junit5 junit4的使用似乎要在测试类除了添加SpringbootTest还要添加RunWith(SpringRunner.class) 同时要注意spring-boot-s…

制作翻页电子相册,这个工具你必须了解!

电子相册作为一种很有纪念意义的载体,无论是生日、旅行、结婚、毕业纪念等等,可以应用在很多场合当中,如何制作呢? 而对于不会制作电子相册的人来说,使用套用模板是最直接快速的方式了。所以,推荐大家使用…

Find My充电宝|苹果Find My技术与充电宝结合,智能防丢,全球定位

充电宝是一种个人可随身携带,自身能储备电能,主要为手持式移动设备等消费电子产品(例如无线电话、笔记本电脑)充电的便携充电器,特别应用在没有外部电源供应的场合。其主要组成部分包括:用作电能存储的电池…

C++软件开发面试场景题

自己在秋招过程中遇到的一些场景题 海量数据N取Top K个元素,复杂度是多少 在处理海量数据中获取前K个元素(Top K)的问题中,通常会使用一些高效的算法来减少时间和空间复杂度。以下是两种常见的解决方案和它们的复杂度&#xff1…