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

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...