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 個別使用者,我們可能會根據使用者的設定保留內容,以改善服務用途。我們採用靜態加密和嚴格的存取控制,以安全的方式存放此內容。
-
CodeWhisperer 支援哪些程式設計語言和 IDE?
CodeWhisperer 可做為 AWS Toolkit for Visual Studio (VS) Code and JetBrains 的一部分,目前支援 Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 指令碼、SQL 和 Scala。除了 VS Code 和 JetBrains 系列 (包括 IntelliJ、PyCharm、GoLand、CLion、PhpStorm、RubyMine、Rider、WebStorm 和 DataGrip) 之外,CodeWhisperer 還可在 AWS Cloud9、AWS Lambda 主控台、JupyterLab 和 Amazon SageMaker Studio 上使用。
-
如何開始使用 CodeWhisperer?
若要開始使用 VS Code 或 JetBrains IDE,請觀看這些簡短影片。您也可以依照這裡的文件中的說明。
依預設,AWS Cloud9 和 AWS Lambda 主控台提供 CodeWhisperer。如需詳細資訊,請依照下列步驟開始使用 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 的程式碼掃描功能是什麼?
您可以使用程式碼掃描功能來掃描 Python、Java 和 JavaScript 程式碼,以偵測難以發現的漏洞,例如 10 大全球開放應用程式安全計畫 (OWASP) 中的漏洞,或不符合加密程式庫最佳實務和其他類似安全最佳實務的漏洞。一旦發現安全漏洞,CodeWhisperer 還會提供有關如何修復這些漏洞的建議。
-
AWS 從哪裡取得訓練資料來建置此服務?
CodeWhisperer 是一種產生型 AI 服務,採用針對各種資料來源 (包括 Amazon 和開放原始碼) 訓練的基礎模型技術。
-
誰擁有 CodeWhisperer 產生的程式碼?
就像您的 IDE 一樣,您擁有您撰寫的程式碼,包括 CodeWhisperer 提供的任何程式碼建議。您必須為您撰寫的程式碼負責,包括您接受的 CodeWhisperer 建議。請務必檢閱程式碼建議,再接受該建議,您可能需要進行編輯,以確保程式碼完全符合您的預期。
-
CodeWhisperer 是否會產生類似於其訓練資料的程式碼?
做為產生型 AI,CodeWhisperer 會依據從經過訓練的程式碼中學習的經驗,以及您以先前程式碼和註解形式提供的內容來建立新程式碼。雖然 CodeWhisperer 的設計並非用於重新產生經過訓練的程式碼,但在極少數情況下,可能會產生與訓練資料中特定程式碼片段非常相符的程式碼。如果 CodeWhisperer 偵測到其輸出與特定開放原始碼訓練資料相符,內建的參考追蹤器會通知您授權類型 (例如 MIT 或 Apache) 參考,以及開放原始碼專案的 URL。然後,您可以更輕鬆地找到並檢閱該參考程式碼,以及看看它在另一個專案的內容中使用的情況如何,再決定是否使用。為確保您的編碼流程不會受到干擾,系統會記錄所有參考供您稍後檢閱,因此您可以不間斷地保持編碼。
-
是否可以阻止 CodeWhisperer 使用程式碼參考來建議程式碼?
是。在 CodeWhisperer 的組態設定中,您可以取消選取「包括程式碼參考建議」選項。 這會阻止 CodeWhisperer 提出包括已知授權開放原始碼參考的建議。針對免費的 CodeWhisperer 個別方案使用者,此設定可在 IDE 中使用。針對 CodeWhisperer 專業人員,AWS 管理員可從 AWS 管理主控台在組織層級集中進行此設定。
-
CodeWhisperer 是否會產生有害或有偏見的程式碼?
CodeWhisperer 可篩選掉包括有害片語的程式碼建議,以及包含表明存在偏見的常見程式碼結構的建議。
-
CodeWhisperer 是否會建議含有安全漏洞的程式碼?
CodeWhisperer 訓練資料會針對安全漏洞進行分析,並篩選出盡可能多的安全漏洞。此篩選的目標是減少訓練資料中不安全的程式碼模式,讓模型無法學習並產生這些內容。然而,鑑於 CodeWhisperer 的產生性質,我們無法完全排除具有安全問題的程式碼建議。因此,CodeWhisperer 搭載內建的程式碼掃描功能,可偵測您的 Python、Java 和 JavaScript 專案中的安全漏洞,包括 CodeWhisperer 提供的程式碼建議和您撰寫的程式碼。
-
CodeWhisperer 是否只能使用英文運作?
CodeWhisperer 依據各種資料來源進行訓練,包括 Amazon 和開放原始碼。CodeWhisperer 已經過訓練和驗證,可從英文註解中產生程式碼建議。鑑於訓練資料集中的範例種類繁多,CodeWhisperer 可能會從以非英文語言撰寫的註解中提供程式碼建議;不過,這並非受支援的使用案例。
-
CodeWhisperer 需要多少費用?
使用 AWS 建構家 ID 來建立並登入,即可免費使用 CodeWhisperer 個人版。註冊程序只需幾分鐘,不需要信用卡或 AWS 帳戶。
CodeWhisperer 專業版的費用為每位使用者每月 19 美元,可讓管理員透過單一登入 (SSO) 驗證來為其組織啟用 CodeWhisperer。管理員能夠更輕鬆地將 CodeWhisperer 與其現有的員工身分識別解決方案整合、提供使用者和群組存取權,以及在整個組織進行設定,例如包括或排除含程式碼參考建議。如需詳細資訊,請參閱 Amazon CodeWhisperer 定價。
-
哪些 AWS 區域可以使用 CodeWhisperer?
CodeWhisperer 不受 AWS 區域限制,可供全球開發人員使用。CodeWhisperer 目前在 IAD (美國東部 (維吉尼亞北部) 區域) 提供。如果您在其他區域 (非 IAD) 擁有 IAM Identity Center,做為 CodeWhisperer 專業版管理員,您可將 CodeWhisperer 設定為授權的跨區域應用程式。
-
如何為我的組織啟用 CodeWhisperer?
AWS 管理員可以透過 AWS 管理主控台為組織啟用 Amazon CodeWhisperer。先決條件是管理員必須透過 AWS IAM Identity Center (之前稱為 AWS 單一登入) 設定 SSO (如果其組織尚未啟用)。設定 SSO 驗證後,管理員就能啟用 CodeWhisperer,並將存取權指派給其組織中的使用者和群組。
-
如何設定 SSO?
適用於 CodeWhisperer 的 SSO 由 IAM Identity Center 啟用。如需詳細資訊,請參閱這裡。
-
CodeWhisperer 專業版會收集哪些資料?
Amazon CodeWhisperer 專業版會使用您的內容 (例如程式碼片段、註解,以及在 IDE 中所開啟檔案的內容)。此內容僅透過服務進行處理,用於提供和維護服務。我們不會存放 CodeWhisperer 專業版處理的內容,或將其用於改善服務。
此外,AWS 可能會收集並使用用戶端遙測和用量指標,以改善服務。您可以在 IDE 中調整設定,來選擇退出此資料收集。
如需詳細資訊,請參閱這裡。
-
如何使用 CodeWhisperer 專業版收集的資料?
Amazon CodeWhisperer 專業版會使用您的內容 (例如程式碼片段、註解,以及在 IDE 中所開啟檔案的內容),該內容僅透過服務進行處理,用於提供和維護服務。我們不會存放 CodeWhisperer 專業版處理的內容,或將其用於改善服務。
此外,AWS 可能會收集並使用用戶端遙測和用量指標,以改善服務。您可以在 IDE 中調整設定,來選擇退出此資料收集。
如需詳細資訊,請參閱這裡。
-
如何控制我在 CodeWhisperer 專業版中的資料共用與使用?
我們不會存放 CodeWhisperer 專業版處理的內容 (例如程式碼片段、註解,以及在 IDE 中所開啟檔案的內容) 或將其用於改善服務。
AWS 可能會收集並使用用戶端遙測和用量指標,以改善服務。您可以在 IDE 中調整設定,來選擇退出此資料收集。
如需詳細資訊,請參閱這裡。
-
CodeWhisperer 專業版是否會重新產生我的私人程式碼?
否。不會存放 CodeWhisperer 專業版處理的內容 (例如程式碼片段、註解和 IDE 中所開啟檔案的內容) 或將其用於訓練模型,因此絕不會在其他使用者的程式碼建議中重新產生。
-
CodeWhisperer 個人版會收集哪些資料?
Amazon CodeWhisperer 個人版會使用您的內容 (例如程式碼片段、註解、游標位置,以及在 IDE 中所開啟檔案的內容),來做為提供程式碼建議的輸入。您可以在 IDE 中調整 AWS Toolkit 的「與 AWS 共用 CodeWhisperer 內容」設定,選擇不允許 AWS 存放和使用您的內容來改善服務。
此外,AWS 可能會收集並使用用戶端遙測和用量指標,以改善服務。您可以調整 IDE 中 AWS Toolkit 的遙測設定,選擇退出此資料收集。
如需詳細資訊,請參閱這裡。
-
如何使用 CodeWhisperer 個人版收集的資料?
除非您依照下面提供的方式選擇退出,否則 Amazon CodeWhisperer 個人版可存放和使用您的內容 (例如程式碼片段、註解,以及在 IDE 中所開啟檔案的內容),該內容透過服務進行處理,用於提供和維護服務,以改善和提高 Amazon CodeWhisperer 的品質。這包括學習透過程式碼產生來改善開發人員生產力的最佳方式、偵測服務的潛在濫用、評估 CodeWhisperer 功能的有效性、改善可產生程式碼的基礎大型語言模型、微調演算法等級,等等。您可在 IDE 中調整設定,選擇不允許 AWS 存放和使用您的內容來改善服務。
此外,AWS 可能會收集並使用用戶端遙測和用量指標,以改善服務。您可以在 IDE 中調整設定,來選擇退出此資料收集。
如需詳細資訊,請參閱這裡。
-
如何控制我在 CodeWhisperer 個人版中的資料共用與使用?
針對 CodeWhisperer 個人版,您可以在 IDE 中調整設定,來選擇退出此資料收集。
如需詳細資訊,請參閱這裡。
-
CodeWhisperer 個人版是否會重新產生我的私人程式碼?
我們的保護措施旨在阻止重新產生從 CodeWhisperer 個人版使用者收集的不重複私人程式碼。
