Amazon CodeWhisperer 常见问题
-
什么是 Amazon CodeWhisperer?
CodeWhisperer 是一款 AI 编码伴侣,可在您的集成式开发环境(IDE)中生成实时单行或全函数代码建议,以帮助您快速构建软件。使用 CodeWhisperer,您可以用自然语言编写注释,用英语概述特定任务,例如“Upload a file with server-side encryption”。 基于这些信息,CodeWhisperer 直接在 IDE 中推荐一个或多个可以完成任务的代码片段。您可以快速轻松地接受排在首位的建议(Tab 键)、查看更多建议(箭头键)或继续编写自己的代码。在接受代码建议之前,您应该务必对其进行审查,并且可能需要对其进行编辑以确保完全符合您的预期。
有关更多信息,请参阅 JetBrains、Visual Studio Code、AWS Cloud9、AWS Lambda 控制台、JupyterLab 和 Amazon SageMaker Studio 的用户指南。
-
为什么应该使用 CodeWhisperer?
CodeWhisperer 通过提供代码建议来帮助加快软件开发,从而减少总开发工作量,留出更多时间进行构思、解决复杂问题和编写差异化代码。除了通用代码建议外,CodeWhisperer 还接受额外的训练,为使用 AWS API 提供代码建议。CodeWhisperer 还可以通过帮助检测和修复安全漏洞来帮助您提高应用程序安全性。
-
CodeWhisperer 如何运作?
在您编写代码时,CodeWhisperer 会分析英语注释和邻近的代码,以推断完成手头任务需要什么代码。CodeWhisperer 直接在代码编辑器中为一个或多个代码片段提供建议,加快您的编程速度。CodeWhisperer 提供的代码建议基于经过数十亿行代码(包括 Amazon 和开源代码)训练的大型语言模型(LLM)。您可以快速且更轻松地接受排在首位的建议(Tab 键)、查看更多建议(箭头键)或继续编写自己的代码。在接受代码建议之前,请务必对其进行审查,并且可能需要对其进行编辑以确保完全符合您的预期。
-
CodeWhisperer 收集哪些数据来提供代码建议?
Amazon CodeWhisperer 使用您的内容(例如代码片段、注释、光标位置以及在 IDE 中打开的文件中的内容)作为输入来提供代码建议。
-
在传输时如何保护我的内容?
您的内容使用 TLS 协议传输,以确保您的 IDE 与 CodeWhisperer 服务之间的安全通信。内容在传输过程中经过加密,以防止窃听或中间人攻击。对于 CodeWhisperer Individual 用户,我们可能会根据用户的设置保留内容以改善服务。我们以安全的方式存储这些内容,采用静态加密和严格的访问控制。
-
CodeWhisperer 支持哪些编程语言和 IDE?
CodeWhisperer 作为 AWS Toolkit for Visual Studio(VS)Code 和 JetBrains 的一部分,目前支持 Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和 Scala。除了 VS Code 和 JetBrains 系列 IDE(包括 IntelliJ、PyCharm、GoLand、CLion、PhpStorm、RubyMine、Rider、WebStorm 和 DataGrip)之外,CodeWhisperer 还可在 AWS Cloud9、AWS Lambda 控制台、JupyterLab 和 Amazon SageMaker Studio 上使用。
-
如何开始使用 CodeWhisperer?
要开始使用 VS Code 或 JetBrains IDE,请观看这些简短的视频。您也可以按照此处文档中的说明进行操作。
默认情况下,CodeWhisperer 可在 AWS Cloud9 和 AWS Lambda 控制台上使用。有关更多信息,请按照以下步骤开始在 AWS Lambda 控制台中使用 CodeWhisperer,按照以下步骤开始在 AWS Cloud9 中使用 CodeWhisperer。
按照以下说明开始使用 JupyterLab 和 Amazon SageMaker Studio。
-
激活服务后,会在何处看到 CodeWhisperer 的建议?
启用 CodeWhisperer 后,键入时您将在代码编辑器中收到代码建议。要手动触发 CodeWhisperer,请使用 Option+C(macOS)或 Alt+C(Windows)。
-
开发人员可以遵循什么指导,以从 CodeWhisperer 获取更佳结果?
开发人员注释简短且映射到较小的离散任务以使单个函数或代码块不会太长时,CodeWhisperer 工作效率最高。同样,开发人员为各种代码元素(例如,函数名称)使用直观名称时,CodeWhisperer 可以生成有用的代码建议。可用作环境上下文的代码越多,建议就越好。
-
我是否可以关闭自动建议?
可以。您可以暂停 AWS Toolkit 中“开发人员工具”面板的 CodeWhisperer 部分的自动建议。在您恢复自动建议之前,自动建议将保持暂停状态。要手动触发 CodeWhisperer,请使用 Option+C(macOS)或 Alt+C(Windows)。
-
什么是 CodeWhisperer 引用跟踪器?
CodeWhisperer 引用跟踪器检测代码建议是否与特定的 CodeWhisperer 开源训练数据类似。引用跟踪器可以使用存储库 URL 和项目许可证信息来标记此类建议,也可以选择将其滤除。然后,在决定使用之前,您可以更轻松地查找并检查该引用代码,并查看其如何在另一个项目的上下文中使用。所有引用都会被记录下来,供您稍后查看,以确保您的代码流不受干扰,并且您可以不间断地继续编码。
-
什么是 CodeWhisperer 的代码扫描能力?
您可以使用代码扫描功能扫描 Java、JavaScript 和 Python 代码,以检测难以发现的漏洞,例如开放全球应用程序安全项目(OWASP)中排名前十的漏洞,或者不符合加密库最佳实践及其他类似安全最佳实践的漏洞。发现安全漏洞后,CodeWhisperer 还会提供有关如何修复这些漏洞的建议。
-
AWS 从何处获取训练数据来构建此服务?
CodeWhisperer 是一项生成式人工智能服务,由基于包括 Amazon 和开源代码在内的各种数据来源训练的基础模型提供支持。
-
谁拥有 CodeWhisperer 生成的代码?
就像您的 IDE 一样,您编写的代码归您所有,包括 CodeWhisperer 提供的任何代码建议。您对自己编写的代码负责,包括您接受的 CodeWhisperer 建议。在接受代码建议之前,请务必对其进行审查,并且可能需要对其进行编辑以确保完全符合您的预期。
-
CodeWhisperer 是否会生成看起来与训练数据相似的代码?
作为生成式人工智能,CodeWhisperer 根据其从训练过的代码中学到的内容以及您作为先前代码和注释提供的上下文来创建新代码。尽管 CodeWhisperer 并不是为了重现训练过的代码而设计的,但在极少数情况下,它可能会生成与训练数据中特定代码片段非常匹配的代码。如果 CodeWhisperer 检测到其输出与特定的开源训练数据相匹配,内置引用跟踪器将通知您许可证类型(例如,MIT 或 Apache)和开源项目的 URL。然后,在决定是否使用之前,您可以更轻松地查找并检查该引用代码,并查看其如何在另一个项目的上下文中使用。为确保您的编码流程不受干扰,所有引用都会被记录下来供您稍后查看,这样您就可以不间断地继续编码。
-
我能否阻止 CodeWhisperer 推荐带有代码引用的代码?
可以。在 CodeWhisperer 的配置设置中,您可以取消选择“包含带有代码引用的建议”选项。 这将防止 CodeWhisperer 提出引用已知许可开源代码的建议。对于免费的 CodeWhisperer Individual Tier 用户,此设置在 IDE 中可用。使用 CodeWhisperer Professional,AWS 管理员可以从 AWS 管理控制台在组织层面集中配置此设置。
-
CodeWhisperer 是否会生成有毒或有偏见的代码?
CodeWhisperer 可以滤除包含有毒短语的代码建议和包含表明偏差的常见代码结构的建议。
-
CodeWhisperer 是否会推荐存在安全漏洞的代码?
对 CodeWhisperer 训练数据进行安全漏洞分析,并尽可能多地滤除安全漏洞。这种过滤的目的是减少训练数据中不安全的代码模式,这样模型就不会学习和生成这类代码。但是,鉴于 CodeWhisperer 的生成性质,我们不能完全排除存在安全问题的代码建议。因此,CodeWhisperer 内置了代码扫描功能,可以检测您的 Python、Java 和 JavaScript 项目中的安全漏洞,包括来自 CodeWhisperer 的代码建议和您编写的代码。
-
CodeWhisperer 是否只能用英语?
CodeWhisperer 接受了有关各种数据来源的训练,包括 Amazon 和开源代码。CodeWhisperer 已经过训练和验证,可以根据英语注释生成代码建议。鉴于训练数据集中的示例多种多样,CodeWhisperer 可能会从用非英语语言编写的注释中提供代码建议;但是,这不是支持的使用案例。
-
CodeWhisperer 价格如何?
CodeWhisperer Individual 可通过使用 AWS 构建者 ID 创建和登录来免费使用。注册过程仅需几分钟,不需要信用卡或 AWS 账户。
CodeWhisperer Professional 的价格为每位用户每月 19 美元,使管理员能够通过单点登录(SSO)身份验证为其组织启用 CodeWhisperer。管理员可以更轻松地将 CodeWhisperer 与其现有的员工身份解决方案相集成,提供对用户和组的访问权限并配置组织范围内的设置,例如包含或排除带有代码引用的建议。有关更多详细信息,请参阅 Amazon CodeWhisperer 定价。
-
CodeWhisperer 在哪些 AWS 区域提供?
CodeWhisperer 不限制 AWS 区域,全球开发人员均可使用。CodeWhisperer 目前托管在 IAD(美国东部(弗吉尼亚州北部)区域)。如果您在其他区域(非 IAD)有 IAM Identity Center,作为 CodeWhisperer Professional 管理员,您可以将 CodeWhisperer 配置为授权的跨区域应用程序。
-
如何为我的组织启用 CodeWhisperer?
AWS 管理员可以通过 AWS 管理控制台为组织启用 Amazon CodeWhisperer。如果尚未为其组织启用,则作为前提,管理员必须通过 AWS IAM Identity Center(之前称为 AWS Single Sign-On)设置 SSO。设置 SSO 身份验证后,管理员可以启用 CodeWhisperer 并在其组织中分配对用户和组的访问权限。
-
如何设置 SSO?
CodeWhisperer 的 SSO 由 IAM Identity Center 启用。有关更多信息,请参阅此处。
-
CodeWhisperer Professional 收集哪些数据?
Amazon CodeWhisperer Professional 会使用您的内容,例如代码片段、注释和在 IDE 中打开的文件中的内容。本服务处理此类内容的目的仅在于提供和维护服务。CodeWhisperer Professional 处理的内容不存储或用于服务改进。
此外,AWS 可能会收集和使用客户端遥测和使用情况指标来改进服务。您可以通过在 IDE 中调整设置来选择退出此数据收集。
有关更多信息,请参阅此处。
-
CodeWhisperer Professional 收集的数据如何使用?
Amazon CodeWhisperer Professional 使用您的内容,例如代码片段、注释和在 IDE 中打开的文件中的内容,这些内容由服务处理,仅用于提供和维护服务。CodeWhisperer Professional 处理的内容不存储或用于服务改进。
此外,AWS 可能会收集和使用客户端遥测和使用情况指标来改进服务。您可以通过在 IDE 中调整设置来选择退出此数据收集。
有关更多信息,请参阅此处。
-
如何在 CodeWhisperer Professional 中控制我的数据的共享和使用?
CodeWhisperer Professional 处理的内容,例如代码片段、注释和在 IDE 中打开的文件中的内容,不会被存储或用于服务改进。
AWS 可能会收集和使用客户端遥测和使用情况指标来改进服务。您可以通过在 IDE 中调整设置来选择退出此数据收集。
有关更多信息,请参阅此处。
-
CodeWhisperer Professional 是否会复制我的私有代码?
不。由 CodeWhisperer Professional 处理的内容,例如代码片段、注释和在 IDE 中打开的文件中的内容,不会存储或用于训练模型,因此永远不会在为其他用户提供的代码建议中复制。
-
CodeWhisperer Individual 收集哪些数据?
Amazon CodeWhisperer Individual 使用您的内容(例如代码片段、注释、光标位置以及在 IDE 中打开的文件中的内容)作为输入来提供代码建议。您可以通过调整 IDE 内的 AWS Toolkit 中的“与 AWS 共享 CodeWhisperer 内容”设置,选择不允许 AWS 存储和使用您的内容来改进服务。
此外,AWS 可能会收集和使用客户端遥测和使用情况指标来改进服务。您可以通过调整 IDE 内的 AWS Toolkit 中的“遥测”设置来选择退出此数据收集。
有关更多信息,请参阅此处。
-
CodeWhisperer Individual 收集的数据如何使用?
除非您按以下规定选择退出,Amazon CodeWhisperer Individual 可以存储和使用您的内容,例如代码片段、注释和在 IDE 中打开的文件中的内容,这些内容由服务处理,以提供和维护服务,改进和提高 Amazon CodeWhisperer 的质量。包括学习通过代码生成提高开发人员工作效率的最佳方法、检测服务的潜在滥用、评估 CodeWhisperer 功能的有效性、改进支持代码生成的底层大型语言模型、微调排名算法等。您可以通过在 IDE 中调整设置,选择不允许 AWS 存储和使用您的内容来改进服务。
此外,AWS 可能会收集和使用客户端遥测和使用情况指标来改进服务。您可以通过在 IDE 中调整设置来选择退出此数据收集。
有关更多信息,请参阅此处。
-
如何在 CodeWhisperer Individual 中控制我的数据的共享和使用?
对于 CodeWhisperer Individual,您可以通过在 IDE 中调整设置来选择退出数据收集。
有关更多信息,请参阅此处。
-
CodeWhisperer Individual 是否会复制我的私有代码?
我们有保护措施,旨在防止复制从 CodeWhisperer Individual 用户那里收集的唯一私有代码。
