Amazon CodeWhisperer 常见问题

一般性问题
  • CodeWhisperer 是一款 AI 支持的生产力工具,可在您的集成式开发环境(IDE)和命令行中生成实时单行或全函数代码建议,以帮助您快速构建软件。使用 CodeWhisperer,您可以用自然语言编写注释,用英语概述特定任务,例如“Upload a file with server-side encryption”。 基于这些信息,CodeWhisperer 直接在 IDE 中推荐一个或多个可以完成任务的代码片段。您可以快速轻松地接受排在首位的建议(Tab 键)、查看更多建议(箭头键)或继续编写自己的代码。在接受代码建议之前,务必对其进行审查,并且可能需要对其进行编辑以确保完全符合您的预期。

    有关更多信息,请参阅 Visual Studio (VS) Code 和 JetBrainsAWS Cloud9AWS Lambda 控制台JupyterLabAmazon SageMaker Studio命令行Visual Studio(预览版)的用户指南

  • CodeWhisperer 通过提供代码建议来帮助加快软件开发,从而减少总开发工作量,留出更多时间进行构思、解决复杂问题和编写差异化代码。除了通用代码建议外,CodeWhisperer 的设计还旨在为使用 AWS API 提供代码建议。CodeWhisperer 还可以通过帮助检测和修复安全漏洞来帮助您提高应用程序安全性。

  • 在您编写代码时,CodeWhisperer 会分析英语注释和邻近的代码,以推断完成手头任务需要什么代码。CodeWhisperer 直接在代码编辑器中为一个或多个代码片段提供建议,加快您编程时的工作速度。CodeWhisperer 代码建议基于经过数十亿行代码(包括 Amazon 和开源代码)训练的大型语言模型(LLM)。您可以快速且更轻松地接受排在首位的建议(Tab 键)、查看更多建议(箭头键)或继续编写自己的代码。在接受代码建议之前,请务必对其进行审查,并且可能需要对其进行编辑以确保完全符合您的预期。

  • CodeWhisperer 使用您的内容(例如代码片段、注释、光标位置以及在 IDE 中打开的文件中的内容)作为输入来提供代码建议。

  • 您的内容使用 TLS 协议传输,以确保您的 IDE 与 CodeWhisperer 服务之间的安全通信。内容在传输过程中经过加密,以防止窃听或中间人攻击。对于 CodeWhisperer Individual 用户,我们可能会根据用户的设置保留内容以改善服务。我们以安全的方式存储这些内容,采用静态加密和严格的访问控制。
     

  • CodeWhisperer 作为 AWS Toolkit for Visual Studio(VS)Code 和 JetBrains 的一部分,目前支持 Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL、Scala、JSON、YAML 和 HCL。除了 VS Code 和 JetBrains 系列 IDE(包括 IntelliJ、PyCharm、GoLand、CLion、PhpStorm、RubyMine、Rider、WebStorm、DataGrip 和 Visual Studio 预览版)之外,CodeWhisperer 还可在 AWS Cloud9、Lambda 控制台、JupyterLab 和 Amazon SageMaker Studio 以及您最喜欢的命令行(包括 macOS 终端、iTerm2 和内置 VS Code 终端)上使用。 

  • 要开始使用 VS Code、JetBrains IDE 或 Visual Studio(预览版),请观看这些简短的视频。您也可以按照文档中的说明进行操作。

    默认情况下,CodeWhisperer 可在 AWS Cloud9 和 Lambda 控制台上使用。要了解更多信息,请使用以下链接获取有关如何在以下 IDE 中开始使用 CodeWhisper 的说明:

  • 启用 CodeWhisperer 后,键入时您将在代码编辑器中收到代码建议。要手动触发 CodeWhisperer,请使用 Option+C(macOS)或 Alt+C(Windows)。

  • 开发人员注释简短且映射到较小的离散任务以使单个函数或代码块不会太长时,CodeWhisperer 工作效率最高。同样,开发人员为各种代码元素(例如,函数名称)使用直观名称时,CodeWhisperer 可以生成有用的代码建议。可用作环境上下文的代码越多,建议就越好。

  • 可以。您可以暂停 AWS Toolkit 中“开发人员工具”面板的 CodeWhisperer 部分的自动建议。在您恢复自动建议之前,自动建议将保持暂停状态。要手动触发 CodeWhisperer,请使用 Option+C(macOS)或 Alt+C(Windows)。

  • CodeWhisperer 引用跟踪器检测代码建议是否与特定的 CodeWhisperer 开源训练数据类似。引用跟踪器可以使用存储库 URL 和项目许可证信息来标记此类建议,也可以选择将其滤除。然后,在决定使用之前,您可以更轻松地查找并检查该引用代码,并查看其如何在另一个项目的上下文中使用。所有引用都会被记录下来,供您稍后查看,以确保您的代码流不受干扰,并且您可以不间断地继续编码。

  • 您可以扫描代码以识别难以发现的安全漏洞,并获取代码建议以帮助修复已识别的问题。内置的安全扫描旨在检测泄露的凭证和日志注入等问题。生成式人工智能驱动型代码建议有助于修复已发现的漏洞,并且是针对您的应用程序代码量身定制的,因此您可以放心地快速接受修复。安全扫描适用于 Java、Python、JavaScript,现在也可用于 TypeScript、C#、AWS CloudFormation(YAML、JSON)、AWS CDK(TypeScript、Python)和 HashiCorp Terraform(HCL)。帮助修复漏洞的代码建议目前可用于使用 Java、Python 和 JavaScript 编写的代码。

  • CodeWhisperer 是一项生成式人工智能服务,由基于包括 Amazon 和开源代码在内的各种数据来源训练的基础模型(FM)提供支持。此外,您还可以在 IDE 中通过 CodeWhisperer 访问 Amazon Q。Amazon Q 在 Amazon Bedrock 上构建,后者是一种用于构建生成式人工智能应用程序的完全托管服务,提供来自 Amazon 和领先的人工智能公司的高性能 FM 供您选择。Amazon Q 使用多个 FM 来完成其任务,并使用逻辑将任务路由到最适合该作业的 FM。

负责任的 AI
  • 就像您的 IDE 一样,您编写的代码归您所有,包括 CodeWhisperer 提供的任何代码建议。您对自己编写的代码负责,包括您接受的 CodeWhisperer 建议。在接受代码建议之前,请务必对其进行审查,并且可能需要对其进行编辑以确保完全符合您的预期。

  • 作为生成式人工智能,CodeWhisperer 根据其基础模型从训练过的代码中学到的内容以及您作为先前代码和注释提供的上下文来创建新代码。尽管 CodeWhisperer 并不是通过训练数据重现代码而设计的,但在极少数情况下,它可能会生成与公开代码非常匹配的代码。如果 CodeWhisperer 检测到其输出与公开代码相匹配,内置引用跟踪器将通知您许可证类型(例如,MIT 或 Apache)和公开代码的 URL。然后,在决定是否使用之前,您可以更轻松地查找并检查该引用代码,并查看其如何在另一个项目的上下文中使用。为确保您的编码流程不受干扰,所有引用都会被记录下来供您稍后查看,这样您就可以不间断地继续编码。

  • 可以。在 CodeWhisperer 的配置设置中,您可以取消选择“包含带有代码引用的建议”选项。这将防止 CodeWhisperer 提出引用已知许可开源代码的建议。对于免费的 CodeWhisperer Individual Tier 用户,此设置在 IDE 中可用。使用 CodeWhisperer Professional,AWS 管理员可以从 AWS 管理控制台在组织层面集中配置此设置。

  • CodeWhisperer 可以滤除包含有毒短语的代码建议和包含表明偏差的常见代码结构的建议。

  • CodeWhisperer 旨在防止建议存在安全漏洞的代码,并尽可能过滤掉尽可能多的安全漏洞。但是,鉴于 CodeWhisperer 的生成性质,我们不能完全排除存在安全问题的代码建议。因此,CodeWhisperer 内置了代码扫描功能,可以检测您的 Python、Java 和 JavaScript 项目中的安全漏洞,包括来自 CodeWhisperer 的代码建议和您编写的代码。

  • CodeWhisperer 接受了有关各种数据来源的训练,包括 Amazon 和开源代码。CodeWhisperer 已经过训练和验证,可以根据英语注释生成代码建议。鉴于训练数据集中的示例多种多样,CodeWhisperer 可能会从用非英语语言编写的注释中提供代码建议;但是,这不是支持的使用案例。

定价和可用性
  • CodeWhisperer Individual 可通过使用 AWS 构建者 ID 创建和登录来免费使用。注册过程仅需几分钟,不需要信用卡或 AWS 账户。

    CodeWhisperer Professional 的价格为每位用户每月 19 美元,使管理员能够通过单点登录(SSO)身份验证为其组织启用 CodeWhisperer。管理员可以更轻松地将 CodeWhisperer 与其现有的员工身份解决方案相集成,提供对用户和组的访问权限并配置组织范围内的设置,例如包含或排除带有代码引用的建议。有关更多详细信息,请参阅 Amazon CodeWhisperer 定价
     

  • CodeWhisperer 不限制 AWS 区域,全球开发人员均可使用。CodeWhisperer 目前托管在美国东部(弗吉尼亚州北部)区域。如果您在其他区域有 IAM Identity Center,作为 CodeWhisperer Professional 管理员,您可以将 CodeWhisperer 配置为授权的跨区域应用程序。

  • AWS 管理员可以通过 AWS 管理控制台为组织启用 CodeWhisperer。如果尚未为其组织启用,则作为前提,管理员必须通过 IAM Identity Center 设置 SSO。设置 SSO 身份验证后,管理员可以启用 CodeWhisperer 并在其组织中分配对用户和组的访问权限。

  • CodeWhisperer 的 SSO 由 IAM Identity Center 启用。有关更多信息,请参阅 CodeWhisperer 用户指南

CODEWHISPERER 自定义功能(预览版)
  • 通过 CodeWhisperer 自定义功能,您可以自定义 CodeWhisperer,使其了解您的内部库、API、最佳实践和架构模式,从而生成更相关的建议。有关更多信息,请参阅自定义 CodeWhisperer 以获得更好的建议

  • 目前,您可以在以 Java、JavaScript、TypeScript 和 Python 编写的代码库上自定义 CodeWhisperer 建议。创建自定义项或在 IDE 中根据内部代码存储库提供自定义建议时,不会使用以 CodeWhisperer 支持的其他语言(C#、Go、Rust、PHP、Rust、PHP、Rust、Kotlin、C、C++、Shell 脚本、SQL 和 Scala)编写的文件。

  • 您可以使用 AWS 管理控制台将您的代码存储库安全地连接到 CodeWhisperer。CodeWhisperer 管理员可以在控制台轻松管理对私有自定义项的访问,这样就只有特定的开发人员才具有访问权限。

  • 每个自定义项都与其他客户完全隔离,使用这项新功能构建的所有自定义项都不会用于训练 CodeWhisperer 底层的基础模型。在创建自定义项时,CodeWhisperer 提供了使用 AWS Key Management Service(AWS KMS)中的客户管理的密钥对自定义数据进行加密的选项,从而帮助维护代码的安全性。自定义作业完成后,自定义数据即被删除。

  • 在预览期间,可以使用 CodeWhisperer 自定义功能,根据内部代码库创建最多 8 个自定义项。最多可以同时启用两个代码自定义项。

IDE 中的 AMAZON Q(预览版)
  • CodeWhisperer 是一款适用于 IDE 和命令行的生成式人工智能驱动型生产力工具。您可以在 IDE 中安装 AWS Toolkit 扩展并登录 CodeWhisperer 模块以访问 IDE 中的内联代码建议、自定义、安全扫描和 Amazon Q 等功能。Amazon Q 是专为工作而设计的生成式人工智能驱动型助手。在 IDE 中使用时,Amazon Q 可以回答有关在 AWS 及其他平台上构建软件的问题。此外,它还可以理解 IDE 中的代码,并可以帮助您完成解释代码、编写测试或升级应用程序语言版本等任务。

  • Amazon Q 可通过 Amazon CodeWhisperer 在 IDE 中使用,目前支持 Visual Studio(VS)Code 和 JetBrains 系列 IDE。要开始在 IDE 中使用 Amazon Q,请参阅 Amazon Q 入门 — 您的 AWS 专家助手或阅读文档

  • 通过相应的扩展/插件市场安装适用于 Visual Studio(预览版)JetBrainsVS Code 的 AWS Toolkit。然后,使用 AWS 构建者 ID 或 AWS IAM Identity Center 进行身份验证。身份验证后,可以在 VS Code 的活动栏或 JetBrains 右上角的工具窗口中找到 Amazon Q。有关 Amazon Q 入门的更多帮助,请参阅开始使用 Amazon Q—您的 AWS 专家助手

  • Amazon Q 不仅可以在开发人员环境中生成和补全代码,还可以帮助开发人员通过自然语言的对话进行交互,支持各种使用案例以帮助开发人员学习如何使用库和 API,可以生成代码来处理提示、解释复杂的代码逻辑,并讨论代码错误的可能解决方案。它可以显著提高开发人员的效率和生产力,在他们的日常开发生命周期中起到辅助作用,让他们腾出时间思考在软件系统中要解决的正确问题。

  • Amazon Q 可以回答有关入门以及在 AWS 及其他平台上构建、部署或操作应用程序和工作负载的问题。Amazon Q 还可以帮助解释不熟悉的代码库、修复错误或生成代码和测试。借助 Amazon Q 功能开发功能,您可以通过直接从 IDE 中获得的交互式分步说明,在很短的时间内从自然语言提示转换为应用程序功能。Amazon Q Code Transformation 可以帮助您将 Java 应用程序升级到最新语言版本(预览期间可从 Java 8 或 11 升级到 Java 17),方法是识别和更新强制包依赖项和框架、更新已弃用的代码并纳入安全最佳实践,以及生成测试以验证升级后的应用程序将运行。

  • Amazon Q 在回答问题时将使用以下上下文信息:1.当前的对话上下文,例如对话面板中提出的问题和生成的答案/代码。2.IDE 上下文,包括文件中选定的代码行、片段或函数,以及开发人员当前正在使用的存储库。

  • Amazon Q 不会存储或使用任何来自 CodeWhisperer Professional 用户的内容来改进服务。以 Amazon CodeWhisperer Professional 用户身份使用 Amazon Q 时,AWS 可能会收集和使用客户端遥测和使用指标以及您的反馈以改进服务。随着对话的推进,Amazon Q 将使用这些信息来改进未来的响应,使其更符合开发人员的指示和意图。您可以通过在 IDE 中调整设置来选择退出此数据收集。有关 CodeWhisperer Individual 如何收集和使用您的数据的信息,请参阅 CodeWhisperer Individual 常见问题

  • 在预览版中,Amazon Q 将不支持 CodeWhisperer 自定义功能。Amazon Q 不会根据您的内部代码库提供自定义代码建议,即使您通过 CodeWhisperer 使用自定义功能也是如此。目前,仅针对 CodeWhisperer 的 IDE 内体验的代码生成用例支持自定义功能。

CODEWHISPERER 命令行(预览版)
  • 命令行版 CodeWhisperer 通过上下文 CLI 补全、内联文档和 AI 自然语言到 bash 的转换,帮助开发人员在使用命令行时提高工作效率。命令行版 CodeWhisperer 与开发人员现有的命令行集成在一起,使开发人员无需更改其使用的工具即可开始从中受益。

  • 当用户在命令行中键入内容时,CodeWhisperer 会显示 250 多个 CLI 工具的行内补全和文档。

    例如,开发人员可以键入“git”并查看所有 git 子命令、选项和参数的列表,这些内容按其使用频率排序。开发人员还可以键入“npm install”并查看所有可供安装的节点包的列表。最后,开发人员可以键入“aws”并查看所有可用的 aws 子命令的列表。 

  • 命令行版 CodeWhisperer 可以采用自然语言文本提示(例如“撤消我最近的 git 提交”)并将其转换为即时可执行的 bash 代码

    要开始使用,只需运行“q”,插入提示符,然后执行 bash!

  • 命令行版 CodeWhisperer 目前支持与以下工具的集成:

    1.操作系统:macOS
    2.Shell:bash、zsh、fish
    3.终端仿真器::iTerm2、macOS 终端、Hyper、Tabby
    4.IDE:VS Code 内部的终端
    5) CLI:250 多个最受欢迎的 CLI,例如 git、aws、docker、npm、yarn(参见 https://github.com/withfig/autocomplete)

    要在 macOS 上支持 Jetbrains IDE(实例集除外)、Alacritty、Kitty 和 Wezterm,请运行“cw integrations install input-method”

  • CodeWhisperer 可能会存储有关您的使用情况和内容的数据,以改善服务。您的内容包括 CodeWhisperer 用来生成 AI 推荐和翻译的命令行历史记录部分,以及推荐本身的内容。CodeWhisperer 不会出于改进专业套餐服务的目的收集您的内容。系统会使用客户端遥测来量化您的服务使用情况。例如,AWS 可能会跟踪您对某项建议的决定(接受还是拒绝)。您的客户端遥测不包含实际代码,也不包含您的 IP 地址等个人身份信息(PII)。您可以通过调整命令行版 CodeWhisperer 控制面板中的设置来选择不收集使用情况和内容数据。

  • 可以。
    1.运行“cw”以打开设置页面。
    2.选择“CLI 补全”选项卡。
    3.将页面右上角的开关切换到“关闭”。

CODEWHISPERER PROFESSIONAL 隐私
CODEWHISPERER INDIVIDUAL 隐私
  • CodeWhisperer Individual 使用您的内容(例如代码片段、注释、光标位置以及在 IDE 中打开的文件中的内容)作为输入来提供代码建议。您可以通过调整 IDE 内的 AWS Toolkit 中的“与 AWS 共享 CodeWhisperer 内容”设置,选择不允许 AWS 存储和使用您的内容来改进服务。

    此外,AWS 可能会收集和使用客户端遥测和使用情况指标来改进服务。您可以通过调整 IDE 的 AWS Toolkit 中的“遥测”设置来选择退出此数据收集。

    有关更多信息,请参阅 CodeWhisperer 用户指南

  • 除非您按下文所述选择退出,CodeWhisperer Individual 可以存储和使用您的内容,例如代码片段、注释和在 IDE 中打开的文件中的内容,这些内容由服务处理,以提供和维护服务,从而改进和提高 CodeWhisperer 的质量。包括学习通过代码生成提高开发人员工作效率的最佳方法、检测服务的潜在滥用、评估 CodeWhisperer 功能的有效性、改进支持代码生成的底层 LLM、微调排名算法等。您可以通过在 IDE 中调整设置,选择不允许 AWS 存储和使用您的内容来改进服务。

    此外,AWS 可能会收集和使用客户端遥测和使用情况指标来改进服务。您可以通过在 IDE 中调整设置来选择退出此数据收集。

    有关更多信息,请参阅 CodeWhisperer 用户指南

  • 对于 CodeWhisperer Individual,您可以通过在 IDE 中调整设置来选择退出数据收集。

    有关更多信息,请参阅 CodeWhisperer 用户指南

  • 我们有保护措施,旨在防止复制从 CodeWhisperer Individual 用户那里收集的唯一私有代码。

一般隐私
浏览文档

查看 CodeWhisperer 文档了解更多信息。

了解详情 »

开始使用 CodeWhisperer 进行构建