Amazon CodeWhisperer 利用机器学习在您编码时提供实时代码建议。这些量身定制的建议适合您当前的代码库,从注释到完整的功能。此外,该工具还执行安全扫描,通过查明可能的漏洞来提高代码质量。通过提供个性化、上下文相关的支持,CodeWhisperer 提高了效率并促进了编码最佳实践的采用。
一句话总结,Amazon CodeWhispere r是 Amazon 推出的一款AI编程助手。
这里提一下,Amazon CodeWhisperer 有两种,一种是个人用,一种是专业级的,大致的区分概括如下:
CodeWhisperer 个人用:代码建议和参考跟踪免费;每月还可免费扫描 50 次代码。
CodeWhisperer 专业级:根据最大用户数(即每个用户每月)按月计费。
我使用起来 Amazon CodeWhisperer 的感受是,你可以当 Amazon CodeWhisperer是一款人工智能伙伴。
你在 IDE 中写代码,或者有疑问编写注释等的时候,IDE会自动的发送你的需求,或者你想要的给 Amazon CodeWhisperer,Amazon CodeWhisperer 会使用 AI 生成基于 IDE中先前的代码和注释生成在你编写代码时提供类似自动补全的建议。你可以通过开始编写你想要使用的代码,或者写下自然语言描述想要代码实现的功能。
个人研究学习的时候发现:Amazon CodeWhisperer优势还是比较多的,毕竟是大公司开发,起主要的功能可以归纳为:
通用代码生成器: Amazon CodeWhisperer 是一款旨在通过实时生成代码建议来帮助开发人员的工具。
机器学习驱动: CodeWhisperer 使用机器学习算法来理解和分析您编写的代码。它利用此分析来生成相关且上下文感知的代码建议。
实时建议:当您编写代码时,CodeWhisperer 会提供自动、即时的代码建议。这种实时反馈可以帮助简化编码流程并提高生产力。
上下文感知建议: CodeWhisperer 生成的建议是根据您的特定代码库量身定制的。它会考虑您现有的代码、注释和当前上下文来提供相关建议。
建议的范围不同: CodeWhisperer 的建议的复杂程度可能有所不同。它们的范围可以从简单的注释或代码注释到整个函数或代码块。
提高生产力:通过提供相关代码建议,CodeWhisperer旨在帮助开发人员更高效地编写代码,减少手动搜索代码示例或语法的需要。
代码安全分析:除了代码生成之外,CodeWhisperer 还能够扫描您的代码是否存在安全问题。它可以突出显示潜在的安全漏洞,帮助您识别和解决代码库中的安全问题。通过提供实时建议并突出显示安全问题,CodeWhisperer 可以推广编码最佳实践并鼓励遵守编码标准。
以开发人员为中心: CodeWhisperer 旨在支持开发人员完成编码任务。它旨在提供符合开发人员意图和编码实践的有意义的建议。CodeWhisperer 的代码建议根据开发人员的风格和编码偏好量身定制,打造更加个性化的编码体验。
学习潜力:开发人员可以从 CodeWhisperer 生成的建议中学习,深入了解编码模式和最佳实践。
其实作为开发者,我们的重点大部分是关注 Amazon CodeWhisperer 能给出的diamante级别的建议到底是什么,体验下来可以看到 CodeWhisperer 给出的几种建议:
单行代码完成:提供在您键入时完成单行代码的建议,帮助语法和函数调用。
完整函数生成:根据上下文和编码模式自动生成完整函数。
块完成:提供完成循环或条件等代码块的建议,从而改进代码结构。
Docstring 和 Javadoc 补全:生成函数和类的文档字符串,帮助编写代码文档。
逐行建议:提供实时逐行编码建议,提高代码质量和效率。
单行注释完成:提供完成单行注释的建议,帮助代码解释和注释。
例如,你可以通过单击向右箭头接受建议或查看多个代码建议。
在登录时您将看到如下窗口。请点击“打开并复制验证码”,并使用验证码进行验证。
跳转到你的浏览器,粘贴刚刚复制的验证码
随后将跳转至登录注册页面。如果为首次使用,请用您的电子邮箱进行注册。注册和登录完毕后即可开始使用 CodeWhisperer
与安装到 IntelliJ IDEA 中类似,此处不做过多介绍,直接在插件市场里找到亚马逊的AWS Toolkit
插件直接安装即可。
给出的提示词如下(创建一个函数来创建DynamoDB表):
# Create a function to create a DynamoDB table
Amazon CodeWhisperer 给出的解决方案:
另外尝试生成的更具体的案例,我们给出的提示词如下:
# 函数创建DynamoDB表,以员工ID为主键和 readcapacity单 位为100和写入容量单位为200
# Function to create a DynamoDB table with employee ID as primary key and ReadCapacityUnits at 100 and WriteCapacityUnits at 200
Amazon CodeWhisperer 给出的解决方案:
从这里可以看出,就和 ChatGPT 类似,如果你的提示词更具提,CodeWhisperer 生成的内容也更具具体,符合你的期望,所以适当的写出提示词给 CodeWhisperer,才能更好的让他来帮助到你。
在这里,我们根据提供的代码,使用 CodeWhisperer 来生成多个记录。
所使用的测试代码如下:
我们给出自己的需求,和相应的提示词给 CodeWhisperer
# Patch get_products and test lambda_handler returns a multiple records
# Patch get_products和test lambda_handler返回多条记录
CodeWhisperer 根据我们的提示词生成并返回相应的代码
# Patch get_products and test lambda_handler returns multiple records
@patch('product_api.get_products')
def test_lambda_handler_multiple(self, mock_get_products):
mock_get_products.return_value = [{'id': '1', 'name': 'test', 'description': 'test'}, {'id': '2', 'name': 'test2', 'description': 'test2'}]
response = product_api.lambda_handler(None, None)
self.assertEqual(response['statusCode'], 200)
self.assertEqual(response['body'], '[{"id": "1", "name": "test", "description": "test"}, {"id": "2", "name": "test2", "description":
"test2"}]')
云上探索实验室开展至今,越来越多的人都对 AI 编程助手 Amazon CodeWhisperer 赞不绝口。为了让大家在体验时不走弯路,快速上手 Amazon CodeWhisperer,云上探索实验室-码上学堂来啦!为了让更多的伙伴们加入到学课阵营中,云上探索实验室面向所有伙伴们,特别招募码上学堂领学员,邀人加入码上学堂,有好礼相送哦。
活动链接:https://mp.weixin.qq.com/s/WgeRzML5MogLSWeM57zv3w
CodeWhisperer 学课通道: