共计 2734 个字符,预计需要花费 7 分钟才能阅读完成。
引言
代码生成器最近有点多,为了提高效率最近在我的 VSCode 上先后装置了 Bito、Codeium、Tabnine AI Assistant 等等,还有本文中刚有 AWS 推出的 CodeWhisperer。接下来就来看看这款 AI 代码生成器如何应用吧。
介绍
Amazon CodeWhisperer 是一款通用的、基于机器学习的代码生成器,可为您实在的提供代码倡议。当你编写代码时,CodeWhisperer 会依据你现有的代码和正文主动生成倡议。您的个性化倡议能够在大小和范畴上有所不同,从单行正文到残缺的性能。、
CodeWhisperer 还能够扫描您的代码,以突出和定义平安问题。
目前 CodeWhisperer 反对了 15 种常见编程语言的代码生成,据官网介绍,就训练数据的品质来看,反对最好的语言是以下几种:
- Java
- Python
- JavaScript
- TypeScript
- C#
不出意外,这款代码生成器将来必定要免费,然而目前亚马逊云科技推出了测评流动,能够收费集体应用,注册而后在开发环境 VSCode、JupyterLab 或 JetBrains 设置好就能应用。(当然 AWS 本人的开发环境 Amazon SageMaker、AWS Cloud9、AWS Lambda 也行,然而没有 AWS EC2 实例可不行,即便有,明人不说暗话,自己就是喜爱白嫖的)
流动链接,点击 CodeWhisperer 测评流动 立马上车~
VS Code 设置
假如您的电脑上曾经装置好 VS Code 编辑器,而后咱们须要装置 AWS Toolkit,只有这样能力将 CodeWhisperer 与 VS Code 联合应用,在 VS Code 扩大中搜寻 AWS 或者全称 AWS Toolkit,点击装置(Install),如下:
装置胜利后就会在咱们的编辑器的最右边呈现 aws 图标,这个就是咱们的工具了,如图:
在抉择身份验证形式登录这里,针对本地编辑器 VS Code 和 JetBrains,咱们能够通过应用 AWS Builder ID 或 IAM Identity Center 进行身份验证。
将 CodeWhisperer 与 AWS Cloud9 或 AWS Lambda 配合应用,则必须应用 IAM 进行身份验证
本文就是通过 AWS Builder ID 进行登录的。
应用 AWS 生成器 ID 登录
AWS Builder ID 是一种面向所有 AWS 客户的新的身份验证模式。AWS Builder ID 是收费的。您只需为本人在 AWS 账户 中应用的 AWS 资源付费。AWS Builder ID 容许拜访 Amazon 上的工具 CodeCatalyst 和本文介绍的生成器服务 CodeWhisperer。
接着会弹出这个框,有一个随机的申请码,这里咱们点击 Copy Code and Proceed
:
接着会弹出到这个链接 https://device.sso.us-east-1.amazonaws.com/
:
点击 Open,将关上默认浏览器,把下面随机的申请码复制进去:
点击 Next,VSCode 的左下角会弹出正在登录中的进度条,略微等一会:
在浏览器中输出咱们的邮箱地址:
而后输出明码,点击容许:
等浏览器呈现这个界面,就阐明登录和配置胜利了:
祝贺,接着让咱们来摸索 CodeWhisper 的代码生成能力吧!
关上 CodeWhisperer 上手体验
- 在 VS Code 的 aws 的 DEVELOPER TOOLS -> CodeWhisperer,点击 Start:
- 新建一个
hello.py
程序,写下正文帮咱们写一个 HelloWorld 程序,能够按下alt+c
快捷键弹出提醒:如下图:
按下 Tab
键承受 CodeWhisper 的代码生成,最初生成的代码如下:
# generate a HelloWorld program with a function
def hello_world():
print("Hello World")
# call the function HelloWorld
hello_world()
其余快捷方式:
单行代码补全
当你开始输出单行代码或正文时,CodeWhisperer 会依据你以后和之前的输出来提出倡议,比如说应用 ORM 通过 book_id
来删除一本书的函数,会这样给你提醒:
残缺函数生成
比方,咱们想写一个读取 TXT 文件的函数:
# write a function to read a txt file
def read_txt(file_name):
with open(file_name, 'r') as f:
return f.read()
# main function
def main():
content = read_txt('a.txt')
print(content)
if __name__ == '__main__':
main()
测试成果如下:
代码块补全
为了更好的写逻辑管制,比方 if
、for
、while
语句也能反对补齐:
book_list = ["Head First Python", "Python Crash Course", "Python Cookbook"]
for i, v in enumerate(book_list):
if i == 0:
print("The first book is", v)
elif i == 1:
print("The second book is", v)
else:
print("The third book is", v)
运行测试:
其它代码示例
除了下面演示的根本三种补全形式,还反对在 Java 代码中,用户输出了一个文档字符串。CodeWhisperer 倡议了一个函数来实现文档字符串。
还能反对对代码正文和函数文档的补全,如图:
总结
本文介绍了 AWS CodeWhisperer 的装置、配置步骤,并在最根本的代码编写过程中体验了它的补全性能,然而理论应用过程中,还是发现补全性能有点提早,常常须要应用 Alt+C
来唤出。
总体而言,体验下来,有如下几点缺点:
- 比照 Copilot AI 免费而言,最大的特点是集体开发者 收费
- 绝对于联合 ChatGPT 的代码工具如 Bito 还少了代码解释和互动的性能
- 绝对于 Codeium 而言,响应速度有点慢,没有 VS Code 编辑器与 Codeium 插件的联合应用更佳。
总而言之,CodeWhisperer 满足了集体开发过程中根本的代码性能的补缺,提高效率,这些工具的进去终于让文档不必本人想怎么形容了,还是很好用的,应该针对后续会有很大更新与迭代,让咱们来期待一下吧~
后话:汽车的创造下岗的不是马夫而是马,代码工具更好用也无奈代替长于使用工具程序员。马夫能够转型司机,同理,期待程序员转型为真正的 CTRL + C/V 操作员。
心愿本文能对你有所帮忙,如果喜爱本文,能够点个关注。
下一篇文章见!宇宙古今无有穷期,毕生不过顷刻,当思奋争。
参考链接:
- Setting up CodeWhisperer for individual developers