什么是 Amazon CodeWhisperer?
亚马逊云科技在2023年4月18日宣布,实时 AI 编程助手 Amazon CodeWhisperer 正式可用,同时推出的还有供所有开发人员免费使用的个人版(CodeWhisperer Individual)。CodeWhisperer 经过数十亿行代码的训练,可以根据您的评论和现有代码实时生成从代码片段到全函数的代码建议。CodeWhisperer 帮助开发者基于注释生成代码,追踪开源参考,扫描查找漏洞。确保了开发人员可以专注于敏捷开发,不会由于搜索示例代码等工作而打断思绪。在创建复杂代码和面对不断变化的开发环境时,开发人员可以在自己喜欢的 IDE(集成开发环境)中使用 CodeWhisperer,例如 Visual Studio Code、IntelliJ IDEA 及其他 IDE,从而提高工作效率、简化工作任务。
具有以下特点:
· 1、免费:对所有开发人员都可以免费使用。这点很重要!!!
· 2、为您量身定制的实时 AI 代码生成器,极大提高工作效率。在预览期间,Amazon 举办了一场工作效率挑战赛,使用 Amazon CodeWhisperer 的参与者成功完成任务的可能性要比未使用 CodeWhisperer 的参与者高 27%,平均完成任务的速度快 57%。
· 3、 支持热门编程语言和 IDE。Amazon CodeWhisperer 支持开发语言有: Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和 Scala 等开发语言;支持的IDE有Visual Studio Code、IntelliJ IDEA 等。所有开发人员(不仅仅是拥有亚马逊云服务账户或使用亚马逊云服务的人),只需一个电子邮箱地址即可注册。so easy!!!
· 4、针对 AWS 服务的优质建议:可以帮助程序员过滤出有偏见或不公正的代码建议,提高代码的安全性和准确性。CodeWhisperer 是唯一具备该功能的编程助手。当生成的代码类似于训练集中的参考代码时,它会为代码提供额外的提示(比如代码库 URL 和许可证),帮助降低使用代码的风险,并使开发人员重复利用代码。
· 5、内置安全扫描:可以对开发人员编写的代码进行安全扫描,找到并建议修复难以检测的漏洞。例如十大开放式 Web 应用程序安全项目 (OWASP) 中的漏洞以及不符合加密库最佳实践的漏洞等。如果 CodeWhisperer 发现了漏洞,它会提供解决问题的建议。
快速上手CodeWhisperer
安装
打开pytcharm,点击File——Settings,如下图:
点击Plugins,然后,在搜索栏里输入aws,找到AWS Toolkit,点击Install安装,如下图:
弹出警告框,如下图:
点击Accept,继续下一步。等待安装完成。
安装完成后,点击Apply。
重启Pycharm。到这里就安装完成了。非常easy!!!
配置
重启Pycharm后,在左下角就能看到AWS Toolkit。我们开始配置CodeWhisperer,如下图
点击AWS Toolkit——Developer Tools,选择CodeWhisperer,点击Start。
选择使用email登录,如上如图.然后,点击Connect
点击Open and Copy Code。
然后将Code粘贴进去。点击Submit and continue。继续下一步!
输入注册的电子邮箱,如果没有请注册一个账号!继续下一步!
输入邮箱和姓名!下一步!
新建密码,和新建账号时的要求一样,可以设置一样的密码!
点击Allow。然后网页和Pycharm弹出如下界面:
一切OK!Are you OK?
如何使用 Amazon CodeWhisperer
· 1、将光标放在注释或代码行后面,点击 Enter 键,激活 CodeWhisperer。
· 2、您可以使用向左箭头键 / 向右箭头键,浏览多个建议(如果可用)。通过按 Tab 键,接受代码建议。通过按 Esc 键 或键入一个字符,放弃建议。
· 3、在接受或编写新代码后,再次点击 Enter 键,获取下一行建议代码。
· 4、手动触发 Amazon CodeWhisperer;或者如果未显示建议,可在 MacOS 上点击 Option + C,或在 Windows 上点击 Alt + C。
CodeWhisperer初体验:hello world
配置完成就可以上手了! 体验一下Python的hello world。如下图:
先写一行注释,如下图:
然后,点击Enter键,生成函数名。如果你觉得满意,点击Tab键即可使用!在点击Enter键,生成函数体,如下图:
点击Tab键,写入代码。几个按键就可以完成!代码如下:
中文和英文混着用,CodeWhisperer可以识别!
Python语言快速入门
我选一些常用的代码作为例子,比如一些文件的读写操作和一些经典的算法,体验CodeWhisperer代码生成能力!
向文件写入数据
我想输入一万行咋办呢?
读取csv文件
这个就比较简单了!
排序算法之冒泡排序
代码如下:
对比其他平台的,代码如下:
设计模式之单例模式
模式设计也是日常编程经常用到的,我选择单例模式来测验一下CodeWhisperer,代码如下:
可以看到a和b是同一个对象,代码是没有问题的!
使用CodeWhisperer快速上手Pytorch
目前,python语言广泛应用在AI上,其中最著名的AI框架是Pytorch。试试CodeWhisperer生成Pytorch代码的能力如何?
pytorch版本的卷积
Conv+BN+Relu激活函数
Conv+BN+Relu是CNN的标准配置!我们一起看看CodeWhisperer生成的代码怎么样,代码如下:
轻松搞定!!!
残差Block
ResNet Block,这种残差结构主宰着深度学习模型,无论是CNN还是Transformer都是这种残差结构,我们尝试使用CodeWhisperer生成ResNet的Block,代码如下:
毫无压力!!!
上大餐:Reset18
只需使用Enter+Tab+方向键就可以完成ResNet18网络的编译!
NMS(非极大值抑制)
NMS是物体检测常用的代码,我们使用CodeWhisperer可以轻松写出来,代码如下: