当前位置: 首页 > news >正文

AI 帮我写代码——Amazon CodeWhisperer 初体验

文章作者:游凯超

人工智能的突破和变革正在深刻地改变我们的生活。从智能手机到自动驾驶汽车,AI 的应用已经深入到我们生活的方方面面。而在编程领域,AI 的崭新尝试正在开启一场革命。Amazon CodeWhisperer,作为亚马逊云科技的一款 AI 编程工具,正是这场革命的一部分。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

作为一名接受过计算机科班训练的程序员,我曾坚信编程是一种需要专业技能和深度思考的任务,不可能被 AI 替代。然而,当我真正接触到 Amazon CodeWhisperer 时,我的观念开始发生转变。这款工具能够自动生成代码,以提高编程效率和代码质量。其惊人的效果让我不得不承认,AI 的快速发展已经开始在编程领域中取得一定的突破,甚至在某些方面超越了人类的能力。

CodeWhisperer 是一款由亚马逊云科技推出的 AI 代码生成器。这款工具的出现是为了帮助开发者更快、更安全地构建应用程序,它可以根据开发者的注释和现有代码实时生成从代码片段到全函数的代码建议,从而避免耗时的编程过程(俗称“体力活”),加速使用不熟悉的 API(尤其是亚马逊云服务相关的 API)进行开发。

CodeWhisperer 的主要功能和特点包括:

  1. 代码生成:CodeWhisperer 经过数十亿行代码的训练,可以根据注释和现有代码实时生成从代码片段到全函数的代码建议。

  2. 多语言和 IDE 支持: CodeWhisperer 支持15种编程语言,包括 Python、Java 和 JavaScript,以及各种集成式开发环境(IDE),比如 VS Code、IntelliJ IDEA、Amazon Cloud9、Amazon Lambda 控制台、JupyterLab 和 Amazon SageMaker Studio。

  3. 参考跟踪:CodeWhisperer 可以标记或筛选类似于开源训练数据的代码建议,获取相关开源项目的存储库 URL 和许可证,以便开发者可以更轻松地查看它们并检查许可证兼容性。

  4. 安全扫描:CodeWhisperer 可以扫描代码以检测难以发现的漏洞,并获取代码建议以立即修复这些漏洞。它遵循跟踪安全漏洞的最佳实践,例如开放全球应用程序安全项目 (OWASP) 概述的漏洞,或者不符合加密库最佳实践及其他类似安全最佳实践的漏洞。

据亚马逊的一项生产力挑战赛显示,使用 CodeWhisperer 的参与者成功完成任务的可能性要比未使用 CodeWhisperer 的参与者高27%,平均完成任务的速度快57%。

使用 CodeWhisperer 的方法很简单,也很直观。以我常用的 VS Code 环境为例:

1. 搜索 CodeWhisperer,注册账号

2. 在 VS Code 里面安装 Amazon Toolkit 插件,侧边栏就会出现一个亚马逊云科技的图标

3. 点进亚马逊云科技图标之后选择“Connect to ......”,就会弹出一个对话框,框里有一串验证码,复制之后点击“Copy Code and Proceed”,导向登录页面,按照要求创建 Builder ID,然后输入刚才复制的验证码,就可以了。

4. 点击 CodeWhisperer 的 Start,就可以使用了。

具体的每一步流程可以参看下面这张图:

image.png

CodeWhisperer 有两种使用方式:Auto-Suggestions 模式(程序自动判断何时生成代码),以及手动模式(MacOS 系统按下快捷键 Option+C、Windows系统按下快捷键 Alt+C,按下快捷键之后在光标处生成代码)。我个人喜欢第二种模式,它能给我更强的掌控感:我能明确地知道我在使用一个工具。而第一种模式,由于无法控制生成代码的时机,我经常在写注释和文档期间停下来整理思路的时候,就看到了一大段代码提示,让我感觉像是在考试的时候被监考老师盯着,令人心虚,不敢停下思考……(对,说的就是你,GitHub Copilot,什么时候能够增加手动模式!)

来看一个具体的例子:如果我想在 Python 里写一个快速排序算法,只需要写好文档说明,按下 Option+C 快捷键,就可以看到 CodeWhisperer 的代码建议(高亮的代码是我写的注释文档,灰色部分的代码是自动生成的建议代码)。CodeWhisperer 会生成三份代码建议,按下左(←)右(→)方向键可以在三份代码建议里面选择,按下 Tab 键采纳建议。

image.png

这段生成的代码确实是我想要的,但还不完整。所以我在采纳建议之后再次按下 Option+C 快捷键,生成剩余部分的代码:

image.png

这样,一个完整的快速排序算法就写完了。在这个过程中,我只负责写函数文档,相当于化身一个产品经理,让 CodeWhisperer 为我写出满意的代码,体验非常棒。当然,这个版本的快速排序算法还存在很多可以改进的地方。但是 CodeWhisperer 仅仅根据我这些注释就写出了代码,这效果可谓是非常惊艳了。

由于我的日常学习科研主要涉及一些机器学习研究相关的代码,不涉及安全相关的问题,所以我没有尝试参考跟踪和安全扫描这两项功能。感兴趣的读者可以自行尝试,CodeWhisperer 是免费使用的,也很容易上手。

在对 CodeWhisperer 这款神奇工具有了一定了解之后,我们有必要将目光转向一个或许中国人听说较少、但却在全世界影响力深远的科技巨头——亚马逊云科技。它是全球份额排名第一的云服务提供商,我们生活中许多无法忽视的科技突破,无论是崭新的应用还是创新的理念,背后都离不开亚马逊云服务的支持。

近期,类似ChatGPT的大语言模型在科技界引发了巨大的关注,它们通过模拟人类语言的复杂模式,展现了惊人的智能。这些模型的训练,需要大量的数据和庞大的计算能力,其中很多模型就是在亚马逊云服务的平台上训练的。可以说,亚马逊云服务如同一只无形的巨手,默默推动着人工智能技术的进步。

如果你也对这股AI浪潮背后的力量感到好奇,如果你也想要探索科技的未知领域,那么,欢迎来参加2023年6月27日-28日在上海世博中心举办的亚马逊云科技中国峰会。在这次峰会上,亚马逊云科技将围绕可靠的技术与服务,携手众多业内领先技术践行者,特别呈现创新技术应用、明星讲师团实力助考、开发者社群交流等多样化内容。这将是一个为来自全球不同行业、拥有不同技术水平的用户,提供共话交流、共谋合作、共同探索的机遇的大会。此外,峰会将涵盖多个热点主题,包括云计算年度热点话题盘点、数字化转型创新、行业转型之道等。在这里,无论你是科技领域的专家,还是对科技有着浓厚兴趣的学生,都可以深入了解亚马逊云服务的魅力,亲身感受云科技如何改变世界。峰会还将提供开发者专属板块,以及面向企业高管的全面升级的定制化参会体验。

想要参加峰会的朋友,微信搜索【亚马逊云科技】小程序,在首页就可以看到亚马逊云科技中国峰会的报名通道了。欢迎大家来共同探索 AI 在编程领域的未来可能性,体验 CodeWhisperer 的强大功能,借助亚马逊云科技中国峰会的机会,在亚马逊云服务这个创新的平台上,共享知识,共创未来。

文章来源:AI 帮我写代码——Amazon CodeWhisperer 初体验

相关文章:

AI 帮我写代码——Amazon CodeWhisperer 初体验

文章作者:游凯超 人工智能的突破和变革正在深刻地改变我们的生活。从智能手机到自动驾驶汽车,AI 的应用已经深入到我们生活的方方面面。而在编程领域,AI 的崭新尝试正在开启一场革命。Amazon CodeWhisperer,作为亚马逊云科技的一款…...

实训笔记9.1

实训笔记9.1 9.1笔记一、项目开发流程一共分为七个阶段1.1 数据产生阶段1.2 数据采集存储阶段1.3 数据清洗预处理阶段1.4 数据统计分析阶段1.5 数据迁移导出阶段1.6 数据可视化阶段 二、项目的数据产生阶段三、项目的数据采集存储阶段四、项目数据清洗预处理的实现4.1 清洗预处…...

汽车SOA架构

文章目录 一、汽车SOA架构的基本概念二、汽车SOA架构的优势三、从设计、开发和测试方面介绍汽车SOA架构四、SOA技术在汽车行业的应用 汽车SOA架构是指汽车软件架构采用面向服务的架构(Service-Oriented Architecture,简称SOA)的设计模式。SOA…...

L1-017 到底有多二 C++解法

题目 一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数…...

motionface respeak视频一键对口型

语音驱动视频唇部动作和视频对口型是两项不同的技术,但是它们都涉及到将语音转化为视觉效果。 语音驱动视频唇部动作(语音唇同步): 语音驱动视频唇部动作是一种人工智能技术,它可以将语音转化为实时视频唇部动作。这…...

LeetCode——顺时针打印矩形

题目地址 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目解析 按照顺时针一次遍历&#xff0c;遍历外外层遍历里层。 代码如下 class Solution { public:vector<int> spiralOrder(vector<vector<int>>& matrix) {if(…...

C语言课程作业

本科期间c语言课程作业代码整理&#xff1a; Josephus链表实现 Josephus 层序遍历树 二叉树的恢复 哈夫曼树 链表的合并 中缀表达式 链接&#xff1a;https://pan.baidu.com/s/1Q7d-LONauNLi7nJS_h0jtw?pwdswit 提取码&#xff1a;swit...

Yolov8魔术师:卷积变体大作战,涨点创新对比实验,提供CVPR2023、ICCV2023等改进方案

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文独家改进&#xff1a;提供各种卷积变体DCNV3、DCNV2、ODConv、SCConv、PConv、DynamicSnakeConvolution、DAT&#xff0c;引入CVPR2023、ICCV2023等改进方案&#xff0c;为Yolov8创新保驾护航&#xff0c;提供各种科研对比实验 &am…...

基于小波神经网络的空气质量预测,基于小波神经网络的PM2.5预测,基于ANN的PM2.5预测

目标 背影 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 小波神经网络(以小波基为传递函数的BP神经网络) 代码链接:基于小波神经网络的PM2.5预测,ann神经网络pm2.5预测资源-CSDN文库 https:/…...

Vue / Vue CLI / Vue Router / Vuex / Element UI

Vue Vue是一种流行的JavaScript前端框架&#xff0c;用于构建用户界面 它被设计为易于学习和使用&#xff0c;并且具有响应式的数据绑定和组件化的架构 Vue具有简洁的语法和灵活的功能&#xff0c;可以帮助开发人员构建高效、可扩展的Web应用程序 它也有一个大型的生态系统和活…...

Lesson4-2:OpenCV图像特征提取与描述---Harris和Shi-Tomas算法

学习目标 理解Harris和Shi-Tomasi算法的原理能够利用Harris和Shi-Tomasi进行角点检测 1 Harris角点检测 1.1 原理 H a r r i s Harris Harris角点检测的思想是通过图像的局部的小窗口观察图像&#xff0c;角点的特征是窗口沿任意方向移动都会导致图像灰度的明显变化&#xff…...

华为云云耀云服务器L实例评测|部署spring项目端口开放问题的解决 服务器项目环境搭建MySQL,Redis,Minio...指南

目录 引出书接上回&#xff0c;部署spring项目&#xff0c;端口访问失败最后排查结果反馈 尝试的几种解决方案【未成功】1.指定tomcat启动ipv4端口2.添加开放端口规则保存规则防火墙相关命令记录 最终成功解决【成功&#xff01;】用firewall成功了问题来了&#xff0c;如果这里…...

MySQL内外连接

MySQL内外链接 内连接显示SMITH的名字和部门名称 外连接左外连接查询所有学生的成绩&#xff0c;如果这个学生没有成绩&#xff0c;也要将学生的个人信息显示出来 右外连接把所有的成绩都显示出来&#xff0c;即使这个成绩没有学生与它对应&#xff0c;也要显示出来列出部门名称…...

sql:SQL优化知识点记录(十四)

&#xff08;1&#xff09;索引失效行锁变表锁 建立2个索引 索引是失效后&#xff0c;系统性能会变查&#xff0c;如果涉及到锁的话&#xff0c;行锁会变表锁 有一个问题&#xff0c;当session1用b字段做查询条件因为是varchar类型&#xff0c;需要加双引号&#xff0c;但是没…...

什么是IIFE(Immediately Invoked Function Expression)?它有什么作用?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐IIFE 的基本语法⭐IIFE 的主要作用⭐如何使用 IIFE 来创建私有变量和模块封装⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅…...

Codeforces Round 866 (Div 2)(A - D)

Codeforces Round 866 (Div. 2)(A - D) Dashboard - Codeforces Round 866 (Div. 2) - Codeforces A. Yura’s New Name&#xff08;思维&#xff09; 思路&#xff1a;枚举每个下划线 &#xff0c; 计算其前后需要补齐的 ‘^’ 个数 &#xff0c; 注意特判样例四的特殊情况…...

QTday3(QT实现文件对话框保存操作、实现键盘触发事件【WASD控制小球的移动】)

1.实现文件对话框保存操作 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }void Widget::on_fontBtn_clicked() {//调用QFo…...

WPF基础入门-Class8-资源基础

WPF基础入门 Class8-资源基础 前言&#xff1a;方便各种资源的集中管理和动态效果 静态引用&#xff1a;初始化的时候确定样式&#xff0c;后续不发生改变 动态引用&#xff1a;样式随着引用的内容一起改变 1、新建资源字典.xaml&#xff0c;创建一个边框颜色资源MyBrush和一…...

Axure RP PC电商平台Web端交互原型模板

Axure RP PC电商平台Web端交互原型模板。原型图内容齐全&#xff0c;包含了用户中心、会员中心、优惠券、积分、互动社区、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务等完整的电商体系功能架构和业务流程。 在设计尺寸方面&#xff0c;本套模板按照主流的…...

Ubuntu目录和linux内核文件用途

一&#xff0c;目录&#xff1a; 1./:根目录&#xff0c;是整个文件系统的起点 2./bin:binary 二进制可执行文件目录&#xff0c;包含用于系统启动和运行的基本命令 3./boot: 启动加载器目录&#xff0c;包含用于系统启动的内核和引导程序文件。 4./dev: device 设备文件目录&a…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...