> 文章作者:游凯超
人工智能的突破和变革正在深刻地改变我们的生活。从智能手机到自动驾驶汽车,AI 的应用已经深入到我们生活的方方面面。而在编程领域,AI 的崭新尝试正在开启一场革命。[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail),作为亚马逊云科技的一款 AI 编程工具,正是这场革命的一部分。
作为一名接受过计算机科班训练的程序员,我曾坚信编程是一种需要专业技能和深度思考的任务,不可能被 AI 替代。然而,当我真正接触到 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 时,我的观念开始发生转变。这款工具能够自动生成代码,以提高编程效率和代码质量。其惊人的效果让我不得不承认,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](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 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](https://dev-media.amazoncloud.cn/72766999f389454397a8c16a41fadeb3_image.png "image.png")
CodeWhisperer 有两种使用方式:Auto-Suggestions 模式(程序自动判断何时生成代码),以及手动模式(MacOS 系统按下快捷键 Option+C、Windows系统按下快捷键 Alt+C,按下快捷键之后在光标处生成代码)。我个人喜欢第二种模式,它能给我更强的掌控感:我能明确地知道我在使用一个工具。而第一种模式,由于无法控制生成代码的时机,我经常在写注释和文档期间停下来整理思路的时候,就看到了一大段代码提示,让我感觉像是在考试的时候被监考老师盯着,令人心虚,不敢停下思考……(对,说的就是你,GitHub Copilot,什么时候能够增加手动模式!)
来看一个具体的例子:如果我想在 Python 里写一个快速排序算法,只需要写好文档说明,按下 Option+C 快捷键,就可以看到 CodeWhisperer 的代码建议(高亮的代码是我写的注释文档,灰色部分的代码是自动生成的建议代码)。CodeWhisperer 会生成三份代码建议,按下左(←)右(→)方向键可以在三份代码建议里面选择,按下 Tab 键采纳建议。
![image.png](https://dev-media.amazoncloud.cn/814bb348992149c8afb6e2c9bf251559_image.png "image.png")
这段生成的代码确实是我想要的,但还不完整。所以我在采纳建议之后再次按下 Option+C 快捷键,生成剩余部分的代码:
![image.png](https://dev-media.amazoncloud.cn/c6252aed696944b2826ea3b0c165f970_image.png "image.png")
这样,一个完整的快速排序算法就写完了。在这个过程中,我只负责写函数文档,相当于化身一个产品经理,让 CodeWhisperer 为我写出满意的代码,体验非常棒。当然,这个版本的快速排序算法还存在很多可以改进的地方。但是 CodeWhisperer 仅仅根据我这些注释就写出了代码,这效果可谓是非常惊艳了。
由于我的日常学习科研主要涉及一些[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)研究相关的代码,不涉及安全相关的问题,所以我没有尝试参考跟踪和安全扫描这两项功能。感兴趣的读者可以自行尝试,CodeWhisperer 是免费使用的,也很容易上手。
在对 CodeWhisperer 这款神奇工具有了一定了解之后,我们有必要将目光转向一个或许中国人听说较少、但却在全世界影响力深远的科技巨头——**亚马逊云科技。它是全球份额排名第一的云服务提供商**,我们生活中许多无法忽视的科技突破,无论是崭新的应用还是创新的理念,背后都离不开亚马逊云服务的支持。
近期,类似ChatGPT的大语言模型在科技界引发了巨大的关注,它们通过模拟人类语言的复杂模式,展现了惊人的智能。这些模型的训练,需要大量的数据和庞大的计算能力,其中**很多模型就是在亚马逊云服务的平台上训练的。可以说,亚马逊云服务如同一只无形的巨手,默默推动着人工智能技术的进步。**
如果你也对这股AI浪潮背后的力量感到好奇,如果你也想要探索科技的未知领域,那么,欢迎来参加**2023年6月27日-28日在上海世博中心举办的亚马逊云科技中国峰会**。在这次峰会上,亚马逊云科技将围绕可靠的技术与服务,携手众多业内领先技术践行者,特别呈现创新技术应用、明星讲师团实力助考、开发者社群交流等多样化内容。这将是一个为来自全球不同行业、拥有不同技术水平的用户,提供共话交流、共谋合作、共同探索的机遇的大会。此外,峰会将涵盖多个热点主题,包括云计算年度热点话题盘点、数字化转型创新、行业转型之道等。在这里,无论你是科技领域的专家,还是对科技有着浓厚兴趣的学生,都可以深入了解亚马逊云服务的魅力,亲身感受云科技如何改变世界。峰会还将提供开发者专属板块,以及面向企业高管的全面升级的定制化参会体验。
想要参加峰会的朋友,微信搜索【**亚马逊云科技**】小程序,在首页就可以看到亚马逊云科技中国峰会的报名通道了。欢迎大家来共同探索 AI 在编程领域的未来可能性,体验 CodeWhisperer 的强大功能,借助亚马逊云科技中国峰会的机会,在亚马逊云服务这个创新的平台上,共享知识,共创未来。