继GitHub的Copilot收费后,亚马逊推出了 CodeWhisperer,感觉不错...

GitHub 的 Copilot 曾是一款广受开发者追捧的人工智能编程助手,然而,它自 2022 年 6 月起改为了付费订阅模式。此转变并未引发过多讨论,因为利用机器学习训练智能编程 AI 模型,已被视为未来的趋势。

巧合的是,仅在 Copilot 宣布收费后的几天,Amazon 推出了名为 CodeWhisperer 的产品,与 Copilot 类似,它也提供了 AI 助手功能。预计未来会有更多类似的产品涌现,为程序员和编程学习者带来更多便利。

代码补全最早出现在 1985 年的 Alice 编辑器上,它支持自动缩进、补全控制结构,并能进行语法着色。然而,初期争议认为代码补全可能会使编程过于简单,实际上它仅是一个语法辅助工具,无法生成语义正确的代码。

随着 GitHub 的 CoPilot 和 Amazon 的 CodeWhisperer 的推出,情况发生了改变。这些工具不仅能提供语法辅助,还能生成语义上正确的代码,不仅提供 if 语句的大纲,还能创建完整的代码样例。然而,这些 AI 助手在 2022 年的表现如何,仍存在疑问。

本文将重点介绍 CodeWhisperer,并探讨它在 2022 年的表现。首先,让我们试用 CodeWhisperer 在 Python 从 S3 读取数据的场景。

CodeWhisperer 支持 Python、Java 和 JavaScript。在 AWS 博客的介绍中,Mark Richman 解释了 CodeWhisperer 的模型基于 Amazon 开源代码等数据源训练。这使得使用 CodeWhisperer 在编写从 S3 读取文件的代码时,成为了一个良好的测试案例。

使用 CodeWhisperer,开发者需要写一个注释描述期望的功能。描述越具体,系统越能准确推断所需逻辑。注释以 Function 开始,提示系统创建函数。随后,系统分析注释并生成函数定义,允许开发者在生成代码前修改。CodeWhisperer 还可能提供多种函数定义供选择。

IntelliJ 集成了 CodeWhisperer,通过点击“插入代码”,系统会根据注释自动创建函数,并附带文档字符串。这样操作仅需几秒钟,大大节省了查找 API 文档的时间。

CodeWhisperer 不仅能够创建完整的函数,还能在函数中插入代码片段,并通过上下文推断相关变量。在某些场景中,使用 CodeWhisperer 能够显著提高编程效率,例如处理 CloudWatch 数据或编写测试代码。

虽然 CodeWhisperer 是一个强大的工具,但它并非完美的。代码生成过程中可能出现安全漏洞,以及生成的代码可能出现 bug。此外,CodeWhisperer 的表现可能在处理领域特定逻辑时受限,这取决于周围代码结构的清晰度。

尽管存在局限性,CodeWhisperer 仍然为开发者提供了极大的价值,通过节省时间,让开发者能够专注于改进代码、重构和测试。随着技术的进步,这些问题有望得到改善。

总之,CodeWhisperer 是一个重要的生产力工具,有助于开发者成为更优秀的程序员,即使在面对复杂任务时,也能确保代码质量。尽管 AI 助手未来能否取代人类编写代码尚不确定,但它们无疑为编程世界带来了创新和发展。