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

news/2024/4/24 5:31:28/

在这里插入图片描述

文章目录

    • 一、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

在这里插入图片描述


http://www.ppmy.cn/news/1225320.html

相关文章

hive数据库将非分区表数据迁移到分区表

文章目录 一、非分区表数据迁移到分区表 一、非分区表数据迁移到分区表 业务运行一段时间后非分区表的数据量非常大,需要创建一张分区表并将数据迁移到分区表中。 原表建表语句: create table user(id String default null comment 主键id,name St…

16位 (MCU) R7F101G6G3CSP、R7F101G6E3CSP、R7F101G6G2DSP、R7F101G6E2DSP是新一代RL78通用微控制器

产品描述 RL78/G24微控制器具有RL78系列MCU的最高处理性能,CPU工作频率高达48MHz,设有灵活的应用加速器 (FAA)。FAA是一款专门用于算法运算的协处理器,可以独立于CPU运行,提供更高处理能力。RL78/G24 MCU具有增强的模拟功能和大量…

超大规模和隐私保护,融云如何助力 Web3 社交

这里写自定义目录标题 Web3 世界需要什么样的社交组件?开发者需要什么样的服务保障? ​ 现在,无论是资本市场、媒体舆论还是大厂论战,我们几乎要淹没在大模型中了。不知道还有没有人记得,就在 ChatGPT 掀起热议的几乎同…

无损音频播放软件 Colibri mac中文版特点介绍

Colibri for mac是一款轻量级的音频播放器软件。它具有简洁的界面设计和快速启动速度,能够提供流畅的音频播放体验。Colibri支持多种常见的音频格式,包括MP3、FLAC、ALAC、AAC等。它还提供了一些实用的功能,如音频均衡器、音频增益控制、播放…

MapApp 地图应用

1. 简述 1.1 重点 1)更好地理解 MVVM 架构 2)更轻松地使用 SwiftUI 框架、对齐、动画和转换 1.2 资源下载地址: Swiftful-Thinking:https://www.swiftful-thinking.com/downloads 1.3 项目结构图: 1.4 图片、颜色资源文件图: 1.5 启动图片配置图: 2. Mo…

【Spring篇】使用注解进行开发

🎊专栏【Spring】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 🥰欢迎并且感谢大家指出小吉的问题 文章目录 🌺原代码(无注解)🎄加上注解⭐两个注…

【仿真动画】ABB IRB 8700 机器人搬运(ruckig在线轨迹生成)动画欣赏

场景 动画 一、IRB 8700简介 二、动画脚本重点分析 2.1 sim.moveToPose 通过在两个 poses 之间执行插值,使用 Ruckig 在线轨迹生成器生成对象运动数据。该函数可以通过处理 4 个运动变量(x、y、z 和两个姿势之间的角度)或单个运动变量&#…

场景交互与场景漫游-路径漫游(7)

路径漫游 按照指定的路径进行漫游对一个演示是非常重要的。在osgViewer中,当第一次按下小写字母“z”时,开始记录动画路径;待动画录制完毕,按下大写字母“Z”,保存动画路径文件;使用osgViewer读取该动画路径文件时,会回…

【JVM】内存区域划分、类加载机制(双亲委派模型图解)、垃圾回收(可达性分析、分代回收)

一、JVM简介 JVM (Java虚拟机) 是执行Java字节码的虚拟机。它是Java平台的核心,并且为Java代码提供了跨平台的能力。JVM 是一种虚拟的计算机,在其上运行的程序是Java字节码,它提供了Java代码在不同操作系统和硬件平台上执行的能力。JVM 将Ja…

强化学习各种符号含义解释

:状态 : 动作 : 奖励 : 奖励函数 : 非终结状态 : 全部状态,包括终结状态 : 动作集合 ℛ : 奖励集合 : 转移矩阵 : 离散时间步 : 回合内最终时间步 : 时间t的状态 : 时间t动作 : 时间t的奖励,通常为随机量,且由和决定 : 回报 : n步…

【加法运算符重载】

通过自己写成员函数,实现两个对象相加属性后返回新的对象 总结1:对于内置的数据类型的表达式的的运算符是不可能改变的(不修改内置函数) 总结2:不要滥用运算符重载(在加法运算符中写的是减法) #…

VSG-001

VulkanSceneGraph (VSG), is a modern, cross platform, high performance scene graph library built upon Vulkan VSG 是一个基于vulkan的现代的、跨平台的高性能场景管理库 VSg特性: 使用C17作为c规范编码,支持 CppCoreGuidelines支持 FOSS Best P…

YOLOv8中训练参数中文解释

预测函数: from ultralytics import YOLO# Load a model model YOLO(yolov8n.pt) # Train the model model.train(datarD:\yolov8\ultralytics-main\data1.yaml, workers0, epochs100, batch16) 可选参数:

类型体系与基本数据类型(第四节)

目录 前言 一、矩阵 1.1 Matrix类模板 1.2 特殊矩阵:平凡矩阵、全零矩阵与独热向量 平凡矩阵 全零矩阵 独热向量 1.3 引入新的矩阵类 前言 一个深度学习框架的初步实现为例,讨论如何在一个相对较大的项目中深入应用元编程,为系统优化…

SMB信息泄露的利用

一、背景 今天分享SMB信息泄露,SMB(Server Message Block)网络通信协议,早些时候被用于Web链接和客户端与服务器之间的信息通信,现在大部分Web页面使用HTTP协议,在web领域应用较少。另一方面SMB协议还是被…

C语言——深入理解指针(第四章)

一、二级指针 在讲二级指针之前,我们先回顾一下指针的定义一直之前讲的一级指针。 1.指针的定义 一级指针:是一个指针变量,指向一个普通变量,并保存该普通变量的地址;二级指针:是一个指针变量,指向一个一…

智慧卫生间

智慧卫生间 获取ApiKey/SecretKey获取Access_token获取卫生间实时数据返回说明 获取ApiKey/SecretKey ApiKey/SecretKey采用 线下获取的方式,手动分配。 获取Access_token 向授权服务地址http://xxxxxx:12345/token(示意)发送post请求,并在data中带上…

设计模式-05-代理模式

经典的设计模式有23种,但是常用的设计模式一般情况下不会到一半,我们就针对一些常用的设计模式进行一些详细的讲解和分析,方便大家更加容易理解和使用设计模式。 创建型模式(01-04章节)主要解决对象的创建问题&#xf…

wpf devexpress绑定grid到总计和分组统计

此主题描述了如何在gridcontrol中的视图模型和显示定义总计和分组统计 在视图模型中指定统计 1、创建 SummaryItemType 枚举你想要在GridControl中显示的统计类型: public enum SummaryItemType { Max, Count, None } 2、创建一个grid统计描述类 public class S…

操作系统课程设计

操作系统课程设计 介绍 1. 系统介绍 具有进程管理,磁盘文件管理的操作系统,用于熟悉操作系统中CPU运行的三种状态,运行、就绪、阻塞。对于文件磁盘管理系统,具有相应的文件读取、写入、删除操作。 2. 运行系统的基础环境 运行…