什么是 Amazon CodeWhisperer?
Amazon CodeWhisperer 是一项由机器学习 (ML) 驱动的服务,它根据开发人员的注释和现有代码,实时生成从代码片段到完整函数的代码建议,从而帮助提高开发人员的生产力。它直接集成到流行的集成开发环境 (IDE) 中,如 VS Code、JetBrains IDE 和 AWS Cloud9。CodeWhisperer 在数十亿行代码上进行训练,旨在通过处理样板代码和复杂代码来加速软件开发,让开发人员能够专注于更高级别的问题解决。
主要功能
- 实时代码建议: 为多种编程语言(包括 Python、Java、JavaScript、TypeScript 和 C#)提供内联代码建议。
- 完整函数生成: 可以根据描述所需逻辑的自然语言注释生成整个函数。
- 安全扫描: 识别代码中难以发现的安全漏洞,并提供修复建议。
- 参考跟踪: 可以标记或过滤与开源训练数据相似的代码建议,提供归属和许可证信息以帮助合规。
- IDE 集成: 与领先的 IDE 无缝集成,使其成为开发工作流程的自然组成部分。
- 针对 AWS API 进行优化: 为使用 EC2、S3 和 Lambda 等 AWS 服务提供最准确、最有效的建议。
使用案例
- 加速开发: 快速生成样板代码、实用函数和单元测试,显著加快开发周期。
- 学习新 API: 通过提供上下文示例,帮助开发人员快速学习和使用不熟悉的库或 AWS 服务 API。
- 提高代码质量: 使用内置的安全扫描器检测和修复代码注入或凭证泄露等漏洞。
- 数据处理: 为常见的数据处理任务生成代码,例如读取文件、解析数据以及与数据库交互。
入门指南
这是一个简单的 Python “Hello World” 风格的示例。在您的 IDE 中安装 AWS Toolkit 扩展并进行身份验证后,您可以输入注释,CodeWhisperer 将建议代码。
- 为您的 IDE(例如 VS Code)安装 AWS Toolkit。
- 使用您的凭据连接到 AWS。
- 在 Python 文件 (
.py) 中,输入以下注释:
```python
function to upload a file to an S3 bucket
- 按 Enter 键。CodeWhisperer 将自动建议一个完整的函数实现。您可以按 Tab 键接受它。
```python
function to upload a file to an S3 bucket
import boto3 from botocore.exceptions import NoCredentialsError
def upload_to_s3(file_name, bucket, object_name=None): “"”Upload a file to an S3 bucket
:param file_name: File to upload
:param bucket: Bucket to upload to
:param object_name: S3 object name. If not specified then file_name is used
:return: True if file was uploaded, else False
"""
# If S3 object_name was not specified, use file_name
if object_name is None:
object_name = file_name
# Upload the file
s3_client = boto3.client('s3')
try:
response = s3_client.upload_file(file_name, bucket, object_name)
except FileNotFoundError:
print("The file was not found")
return False
except NoCredentialsError:
print("Credentials not available")
return False
return True
定价
Amazon CodeWhisperer 提供两个级别:
- 个人版: 对个人开发者免费。它提供代码建议、参考跟踪和安全扫描。
- 专业版: 针对组织的付费订阅,按每用户每月收费。它包括个人版的所有功能,外加组织许可证和策略管理等管理功能。