当前位置: 首页 > 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…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...