免费的实时 AI 编程助手:Amazon CodeWhisperer 使用体验

开源
Amazon CodeWhisperer
云上探索实验室
大语言模型
生成式人工智能
0
1
文章作者:李子 lll ### 前言   随着大型语言模型(LLM)的普及,AI 编程助手作为 LLM 技术的一个突出应用场景,正在逐渐改变开发者们的工作方式。本文将深入探讨由亚马逊推出的实时 AI 编程助手:[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)。让我们一起来探索它的功能、优势以及对编程方式的潜在影响。 ### 什么是 Amazon CodeWhisperer   [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是亚马逊推出的实时 AI 编程助手,经过数十亿行代码的训练,可以根据注释和现有代码实时生成从代码片段到全函数的代码建议。此外,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 可以标记或筛选类似开源训练数据的代码建议,获取相关开源项目的存储库 URL 和许可证,开发者可以轻松地查看它们并添加归因。更重要的是,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 可以扫描代码来检测难以发现的漏洞,获取代码建议来立即修复这些漏洞。最贴心的是,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 支持 Python、Java 和 JavaScript 等15 种编程语言,还有支持 VS Code、IntelliJ IDEA、Amazon Cloud9、Amazon Lambda 控制台、JupyterLab 和 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio 等集成式开发环境。 ### Amazon CodeWhisperer 功能特性 - 量身定制的实时代码建议 - 支持热门编程语言和 IDE - 支持的语言:Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和 Scala - 支持的 IDE:JetBrains IDE(IntelliJ IDEA、PyCharm、WebStorm 和 Rider)、Visual Studio(VS)Code、Amazon Cloud9、Amazon Lambda 控制台、JupyterLab 和 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio - [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 通过提供针对 Amazon API 进行优化的代码建议,让开发人员更高效地使用亚马逊云科技服务 - 内置安全扫描,可以扫描 Java、JavaScript 和 Python 项目以检测难以发现的漏洞,也是目前市面上唯一一个具有安全扫描功能的 AI 编程助手 - 负责任地编写代码:开源代码的引用跟踪器、避免偏见 - **个人用户完全免费**,无任何功能阉割 ### Amazon CodeWhisperer 安装配置   <!--StartFragment--> [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 被集成在`Amazon Toolkit`插件中,`Amazon Toolkit`支持多种 IDE,我们可以在开发者常用的 VS Code,JetBrains IDE 应用商店内搜索`Amazon Toolkit`安装。本文将基于 VS Code演示 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 基本的安装配置 <!--EndFragment--> 在 VS Code 应用商店中搜索 `Amazon Toolkit` 并安装 ![3a2f46b1c400ce092c80cb4e95adfe9b.png](https://dev-media.amazoncloud.cn/db66b06d42af40fca40440aa8b60deb0_3a2f46b1c400ce092c80cb4e95adfe9b.png "3a2f46b1c400ce092c80cb4e95adfe9b.png") 插件安装成功后,点击左侧工具栏中的亚马逊云科技图标,按照下图步骤,登录 `Amazon Builder ID` ![2a7b2dfb3a38750e0b1aba66efdb2716.png](https://dev-media.amazoncloud.cn/37405d0ee75e45f0bb85a44059529e40_2a7b2dfb3a38750e0b1aba66efdb2716.png "2a7b2dfb3a38750e0b1aba66efdb2716.png") ![0dfbb0a45e4a3b89a9637483b547d8c5.png](https://dev-media.amazoncloud.cn/eb1fcd7dc36c4440aa6c214fdda0a87d_0dfbb0a45e4a3b89a9637483b547d8c5.png "0dfbb0a45e4a3b89a9637483b547d8c5.png") ![b2eea13f247ffdf7fd7717b090a6b62c.png](https://dev-media.amazoncloud.cn/046c2a0d14f74473acd918b340ae90e5_b2eea13f247ffdf7fd7717b090a6b62c.png "b2eea13f247ffdf7fd7717b090a6b62c.png") ![31590aad8f496a32451281fb1a097826.png](https://dev-media.amazoncloud.cn/0c33b53abd244b8b83ef4cb55d4f0446_31590aad8f496a32451281fb1a097826.png "31590aad8f496a32451281fb1a097826.png") ![c7bd9bdf452abe08e0d4eacce6807c11.png](https://dev-media.amazoncloud.cn/9fb180912f624432986c8faf78294577_c7bd9bdf452abe08e0d4eacce6807c11.png "c7bd9bdf452abe08e0d4eacce6807c11.png") ### Amazon CodeWhisperer 本地初体验   插件安装成功后,我们先来简单了解下插件的使用方法: <!--StartFragment--> | 操作 | 快捷键 | | :------------------ | :--------------------------------- | | 手动触发 CodeWhisperer 建议 | MacOS: Option + C Windows: Alt + C | | 接受建议 | Tab | | 下一个建议 | ➡ | | 上一个建议 | ⬅ | | 拒绝建议 | ESC、退格键,或继续输入内容,一旦出现字符不匹配,建议将立即消失 | <!--EndFragment--> 接下来,让我通过几个常见的开发场景来深入体验 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 的功能和实用性: - 基于 Comments 的代码提示:20秒搞定冒泡排序 ![8be27ee5910eb5371700284237bcca0c.gif](https://dev-media.amazoncloud.cn/3314dff05b924c339f7a6849288f7b81_8be27ee5910eb5371700284237bcca0c.gif "8be27ee5910eb5371700284237bcca0c.gif") 运行一下,代码可正常运行并输出正确的结果: ![179c07eb90bdd1a935b4dad58fcd3a58.png](https://dev-media.amazoncloud.cn/069b41a30d18468ba45832ecb04600c6_179c07eb90bdd1a935b4dad58fcd3a58.png "179c07eb90bdd1a935b4dad58fcd3a58.png") - 基于上下文的代码补全提示:流畅的编程体验 通过动图我们可以看到,当我们输入一部分代码的时候,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能够根据我们的输入内容以及周围的上下文内容,迅速洞察我们的编程意图,并随后提供精准的代码建议,它不仅仅是简单地匹配字符串,而是理解开发者的意图。然后,它会智能地预测下一步可能的操作,并向开发者提供相关的代码建议,开发者只需要做好 Code Review 就能快速的完成代码编写。这种能力使开发者能够更快地编写代码,减少了犯错的机会,提高了代码的质量。 ![a8f69b5d3d4080854c849014a9d5bb44.gif](https://dev-media.amazoncloud.cn/25f8eb9d8807428d9241955c4572c2b1_a8f69b5d3d4080854c849014a9d5bb44.gif "a8f69b5d3d4080854c849014a9d5bb44.gif") - 多种编程语言混合开发 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 似乎是基于当前文件类型来确定编程语言,这种判断策略对前端工程师来说可能不太友好。举例来说:假设开发者正在编辑一个 HTML 登录页面,同时需要在该文件中编写 JavaScript 代码提交表单数据。自然而然地,开发者期望在编码过程中获得有关 JavaScript 的自动提示和补全功能,以提高开发效率和代码质量。然而,目前的情况是,虽然 [Amazon CodeWhisperer ](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)本身支持 JavaScript,但由于它将当前文件类型识别为 .html,它会向你显示以下信息:html is currently not supported by CodeWhisperer。这种情况下,开发者无法充分利用 [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 来辅助编写 JavaScript 代码。如果 [Amazon CodeWhisperer ](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)能够更智能地基于上下文内容来判断编程语言,而不仅仅依赖于文件类型,那么在同一文件中基于多种编程语言混合开发的产品体验将会得到显著提升,使开发者开发过程更加流畅,提高开发者的生产力和舒适度。 ![b26a268fc915c12374fae99529ddbc26.png](https://dev-media.amazoncloud.cn/aa3abb16dd124a6ea49e9f9df502962c_b26a268fc915c12374fae99529ddbc26.png "b26a268fc915c12374fae99529ddbc26.png") ### Amazon CodeWhisperer 的云端生态整合   [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 充分依托亚马逊云科技的强大生态系统,实现了亚马逊云科技服务的无缝集成,将 AI 智能编程体验带到了云端 IDE。[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 不仅可以在本地 IDE 中使用,还可以在 Amazon Cloud9、[AWS Lambda](https://aws.amazon.com/cn/lambda/?trk=cndc-detail) 控制台和 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio上免费使用,这显著提升了云端 IDE 编程的便捷性。下面将分享在 Amazon Cloud9 中使用 [CodeWhisperer ](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)编写 Python 代码来创建 S3 存储桶的简单体验。 ![04ada8aeb317cf467b267f5afc9975ce.gif](https://dev-media.amazoncloud.cn/275b175da5ae4bf9b923e49afb8cfa91_04ada8aeb317cf467b267f5afc9975ce.gif "04ada8aeb317cf467b267f5afc9975ce.gif") ### 总结   [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 是一款突破性的代码辅助工具,不仅仅是一个代码提示工具,更是一款智能化的编程伴侣。它不同于传统的代码提示工具,因为它具备高度理解和上下文感知的能力,这使得它在帮助开发者提高开发效率、降低错误率以及促进编程学习方面具有独特的优势。   通过深度学习和自然语言处理技术,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能够实时分析开发者的编码需求。这意味着它能够理解开发者正在解决的问题,并基于这一理解提供精准的代码建议、自动补全和错误检查。这不仅节省了开发者大量繁琐的代码书写工作,还让他们能够更专注于解决问题和创造价值。   另一个显著的优势是它有助于降低错误率。[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 能够及时发现潜在的代码问题,并给出改进建议,这有助于避免在后期开发过程中出现严重的错误,从而节省了时间和资源。   此外,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 还是一个出色的编程学习工具。它提供了实时的代码解释和建议,帮助开发者理解编程概念和最佳实践。这对于初学者来说尤其有价值,因为它可以加速他们的学习过程,使他们更快地掌握编程技能。   除了这些基本功能之外,[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 还有两个独有的特性,使其在市场上脱颖而出。首先,它针对 Amazon API 进行优化的代码建议,这意味着使用亚马逊云科技云服务的后端开发者能够获得独有的代码建议和最佳实践,从而更好地利用亚马逊云科技云服务。其次,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 提供了安全扫描功能,这是市面上唯一具有这个功能的 AI 助手。这意味着它可以帮助开发者及时发现潜在的安全漏洞和问题,提高应用程序的安全性。   最重要的是,[CodeWhisperer ](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)针对个人用户是完全免费的。这意味着任何开发者都可以充分利用它的功能,提高他们的开发效率,降低错误率,并加速编程学习过程,而无需支付额外费用。这使得它成为了一个极具吸引力的编程工具,无论是新手还是有经验的开发者都能受益匪浅。
1
目录
关闭