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 個別使用者,我們可能會根據使用者的設定保留內容,以改善服務用途。我們採用靜態加密和嚴格的存取控制,以安全的方式存放此內容。
     

  • CodeWhisperer 可作為 AWS Toolkit for Visual Studio (VS) Code 和 AWS Toolkit for JetBrains 的一部分,目前支援 Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 指令碼、SQL、Scala、JSON、YAML 和 HCL。除了 VS Code 和 JetBrains 系列 [包括 IntelliJ、PyCharm、GoLand、CLion、PhpStorm、RubyMine、Rider、WebStorm、DataGrip 和 Visual Studio (預覽版)] 之外,CodeWhisperer 還可用於 AWS Cloud9、Lambda 主控台、JupyterLab 和 SageMaker Studio,以及您最喜愛的命令列,包括 macOs 終端、iTerm2 和內建 VS 程式碼終端。 

  • 若要開始使用 VS Code、JetBrains IDE 或 Visual Studio (預覽版),請觀看這些簡短影片。您也可以遵循文件中的指示進行操作。

    依預設,AWS Cloud9 和 Lambda 主控台提供 CodeWhisperer。如需詳細資訊,請使用下列連結,以取得有關如何在下列 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 和專案授權資訊來標記此類建議,或者可以選擇將其篩選掉。然後,您可以更輕鬆地找到並檢閱該參考程式碼,以及看看它在另一個專案的內容中使用的情況如何,再決定是否使用。系統會記錄所有參考,供您稍後檢閱,以確保您的程式碼流程不會受到干擾,而且您可以不間斷地保持編碼。

  • 您可以掃描程式碼以識別難以發現的安全漏洞,並取得程式碼建議以協助修復已識別的問題。內建安全掃描旨在偵測暴露的憑證和日誌注入等問題。採用生成式 AI 技術的程式碼建議可協助修復已識別的漏洞,並根據您的應用程式程式碼量身打造,因此您可以快速、自信地接受修正。安全掃描適用於 Java、Python、JavaScript 以及 TypeScript、C#、AWS CloudFormation (YAML、JSON)、AWS CDK (TypeScript、Python) 和 HashiCorp Terraform (HCL)。目前可針對以 Java、Python 和 JavaScript 編寫的程式碼,提供可協助修復漏洞的程式碼建議。

  • CodeWhisperer 是一種生成式 AI 服務,採用針對各種資料來源 (包括 Amazon 和開放原始碼) 訓練的基礎模型 (FM) 技術。此外,您也可以在 IDE 中透過 CodeWhisperer 存取 Amazon Q。Amazon Q 建置在 Amazon Bedrock 上,這是一項用於建置生成式 AI 應用程式的全受管服務,提供來自 Amazon 和領先 AI 公司的高效能 FM 選擇。Amazon Q 使用多個 FM 來完成任務,並使用邏輯將任務路由至最適合該任務的 FM。

負責的 AI
  • 就像您的 IDE 一樣,您擁有您撰寫的程式碼,包括 CodeWhisperer 提供的任何程式碼建議。您必須為您撰寫的程式碼負責,包括您接受的 CodeWhisperer 建議。請務必檢閱程式碼建議,再接受該建議,您可能需要進行編輯,以確保程式碼完全符合您的預期。

  • 作為生成式 AI,CodeWhisperer 會依據從經過訓練的程式碼中學習的基礎模型,以及您以先前程式碼和註解形式提供的內容來建立新程式碼。雖然 CodeWhisperer 的設計並非用於從訓練資料中重新產生程式碼,但在極少數情況下,可能會產生與公開可用程式碼非常相符的程式碼。如果 CodeWhisperer 偵測到其輸出與公開可用程式碼相符,內建的參考追蹤器會通知您授權類型 (例如 MIT 或 Apache) 參考,以及公開可用程式碼的 URL。然後,您可以更輕鬆地找到並檢閱該參考程式碼,以及看看它在另一個專案的內容中使用的情況如何,再決定是否使用。為確保您的編碼流程不會受到干擾,系統會記錄所有參考供您稍後檢閱,因此您可以不間斷地保持編碼。

  • 是。在 CodeWhisperer 的組態設定中,您可以取消選取「包括程式碼參考建議」選項。這會阻止 CodeWhisperer 提出包括已知授權開放原始碼參考的建議。針對免費的 CodeWhisperer 個別方案使用者,此設定可在 IDE 中使用。針對 CodeWhisperer 專業人員,AWS 管理員可從 AWS 管理主控台在組織層級集中進行此設定。

  • CodeWhisperer 可篩選掉包括有害片語的程式碼建議,以及包含表明存在偏見的常見程式碼結構的建議。

  • CodeWhisperer 旨在防止建議具有安全漏洞的程式碼,並篩選出盡可能多的安全漏洞。然而,鑑於 CodeWhisperer 的產生性質,我們無法完全排除具有安全問題的程式碼建議。因此,CodeWhisperer 搭載內建的程式碼掃描功能,可偵測您的 Python、Java 和 JavaScript 專案中的安全漏洞,包括 CodeWhisperer 提供的程式碼建議和您撰寫的程式碼。

  • CodeWhisperer 依據各種資料來源進行訓練,包括 Amazon 和開放原始碼。CodeWhisperer 已經過訓練和驗證,可從英文註解中產生程式碼建議。鑑於訓練資料集中的範例種類繁多,CodeWhisperer 可能會從以非英文語言撰寫的註解中提供程式碼建議;不過,這並非受支援的使用案例。

定價和可用性
  • 使用 AWS 建構家 ID 來建立並登入,即可免費使用 CodeWhisperer 個人版。註冊程序只需幾分鐘,不需要信用卡或 AWS 帳戶。

    CodeWhisperer 專業版的費用為每位使用者每月 19 美元,可讓管理員透過單一登入 (SSO) 驗證來為其組織啟用 CodeWhisperer。管理員能夠更輕鬆地將 CodeWhisperer 與其現有的員工身分識別解決方案整合、提供使用者和群組存取權,以及在整個組織進行設定,例如包括或排除含程式碼參考建議。如需詳細資訊,請參閱 Amazon CodeWhisperer 定價
     

  • CodeWhisperer 不受 AWS 區域限制,可供全球開發人員使用。CodeWhisperer 目前託管在美國東部 [維吉尼亞北部] 區域。如果您在其他區域擁有 IAM Identity Center,作為 CodeWhisperer 專業版管理員,您可將 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、Ruby、Kotlin、C、C++、Shell 指令碼、SQL 和 Scala) 編寫的檔案。

  • 您可以使用 AWS 管理主控台,安全地將程式碼儲存庫連線至 CodeWhisperer。CodeWhisperer 管理員可輕鬆管理透過主控台對私有自訂項的存取權,因此只有特定開發人員才具有存取權。

  • 每個自訂項都與其他客戶完全隔離,並且使用此新功能建立的任何自訂項都不會用於訓練基礎 CodeWhisperer 的基礎模型。建立自訂項時,CodeWhisperer 提供在 AWS Key Management Service (KMS) 中使用客戶受管金鑰加密來加密自訂資料的選項,以協助維護程式碼的安全性。自訂任務完成後,自訂資料即會刪除。

  • 在預覽版期間,您可以使用 CodeWhisperer 自訂功能,根據您的內部程式碼基礎建立多達 8 個自訂項。您可讓最多兩個程式碼自訂項同時保持啟用。

AMAZON Q IN IDE (預覽版)
  • CodeWhisperer 是一款採用生成式 AI 技術的生產力工具,適用於 IDE 和命令列。您可以在 IDE 中安裝 AWS Toolkit 延伸,並登入 CodeWhisperer 模組,以存取 IDE 中的內嵌程式碼建議、自訂、安全掃描和 Amazon Q 等功能。Amazon Q 是一款專為工作而設計的採用生成式 AI 技術的助理。在 IDE 中使用時,Amazon Q 可以回答有關在 AWS 及其他平台上建置軟體的問題。此外,它還可以理解 IDE 中的程式碼,且可以協助您完成解釋程式碼、編寫測試或升級應用程式語言版本等任務。

  • Amazon Q 可透過 Amazon CodeWhisperer 在 IDE 中使用,目前支援 Visual Studio (VS) Code 和 JetBrains 系列 IDE。若要在 IDE 中開始使用 Amazon Q,請參閱 Amazon Q 入門 – AWS 的專家助理,或閱讀文件

  • 透過相應的延伸/外掛程式市集安裝 AWS Toolkit for Visual Studio (預覽版)JetBrainsVS Code。然後,使用 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 專業版使用者的任何內容來改善服務。在以 Amazon CodeWhisperer 專業版使用者身分使用 Amazon Q 時,AWS 可能會收集和使用用戶端遙測和用量指標,以及您的意見回饋來用於改善服務。隨著對話的進展,Amazon Q 利用這一點來使未來的回應更好、更適合開發人員的指示和意圖。您可以在 IDE 中調整設定,來選擇退出此資料收集。如需有關 CodeWhisperer 個人如何收集和使用您的資料的資訊,請參閱 CodeWhisperer 個人常見問答集

  • 在預覽版中,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 程式碼內的終端
    5)CLI:250 多個最熱門的 CLI,例如 git、aws、docker、npm、yarn (請參閱 https://github.com/withfig/autocomplete)

    若要在 macOS 上支援 Jetbrain IDE (Fleet 除外)、Alacritty、Kitty、Wezterm,請執行「cw integrations install input-method」

  • CodeWhisperer 可能會儲存有關您的使用情況和內容的資料,以達到提升服務的目的。您的內容包括 CodeWhisperer 用來產生 AI 建議和翻譯的命令列歷史記錄中的部分,以及建議本身的內容。CodeWhisperer 不會出於專業方案改進服務的目的收集您的內容。您對服務的使用情況會使用用戶端遙測量化。例如,AWS 可能會追蹤您是接受還是拒絕建議。您的用戶端遙測不包含實際的程式碼,也不包含個人身分識別資訊 (PII),例如您的 IP 地址。您可以透過在適用於命令列的 CodeWhisperer 儀表板中調整設定,從而選擇退出使用和內容資料收集。

  • 是。
    1.執行 `cw` 以打開設定頁面。
    2.選取 [CLI 完成] 索引標籤。
    3.將頁面右上角的開關切換為關閉。

CODEWHISPERER 專業版隱私權
CODEWHISPERER 個人版隱私權
  • CodeWhisperer 個人版會使用您的內容 (例如程式碼片段、註解、游標位置,以及在 IDE 中所開啟檔案的內容),來做為提供程式碼建議的輸入。您可以在 IDE 中調整 AWS Toolkit 的「與 AWS 共用 CodeWhisperer 內容」設定,選擇不允許 AWS 存放和使用您的內容來改善服務。

    此外,AWS 可能會收集並使用用戶端遙測和用量指標,以改善服務。您可以調整 IDE 中 AWS Toolkit 的遙測設定,選擇退出此資料收集。

    如需詳細資訊,請參閱 CodeWhisperer 使用者指南

  • 除非您依照下述方式選擇退出,否則 CodeWhisperer 個人版可存放和使用您的內容 (例如程式碼片段、註解,以及在 IDE 中所開啟檔案的內容),該內容透過服務進行處理,用於提供和維護服務,以改善和提高 CodeWhisperer 的品質。這包括學習透過程式碼產生來改善開發人員生產力的最佳方式、偵測服務的潛在濫用、評估 CodeWhisperer 功能的有效性、改善可產生程式碼的基礎 LLM、微調演算法等級,等等。您可在 IDE 中調整設定,選擇不允許 AWS 存放和使用您的內容來改善服務。

    此外,AWS 可能會收集並使用用戶端遙測和用量指標,以改善服務。您可以在 IDE 中調整設定,來選擇退出此資料收集。

    如需詳細資訊,請參閱 CodeWhisperer 使用者指南

  • 針對 CodeWhisperer 個人版,您可以在 IDE 中調整設定,來選擇退出此資料收集。

    如需詳細資訊,請參閱 CodeWhisperer 使用者指南

  • 我們的保護措施旨在阻止重新產生從 CodeWhisperer 個人版使用者收集的不重複私人程式碼。

隱私權一般內容
瀏覽文件

檢視 CodeWhisperer 文件,進一步了解相關資訊。

進一步了解 »

開始使用 CodeWhisperer 進行建置