透過 Gemini Code Assist 編寫程式碼

本文說明如何使用 Gemini Code Assist ( Google Cloud中的 AI 輔助協作工具),在 Cloud Workstations 基本編輯器中執行下列作業:

  • 提供指引,協助您解決程式碼問題。

  • 為專案產生程式碼。

  • 在編寫程式碼時直接套用建議。

瞭解 Gemini for Google Cloud 如何使用您的資料

為協助您遵守程式碼的授權規定,如果 Gemini Code Assist 提供的建議直接引用特定來源的長篇內容,系統會提供引用出處。如要進一步瞭解 Gemini 引用來源的方式和時機,請參閱「Gemini 如何協助您生成程式碼及引用來源」。

程式碼自訂功能可讓您直接透過 Gemini Code Assist,根據貴機構的私人程式碼集取得程式碼建議。瞭解如何設定程式碼自訂功能

本文件適用於各種程度的開發人員。並假設您已具備 Cloud Workstations 的工作知識,且熟悉 Google Cloud。您也可以在 VS CodeIntelliJCloud Shell 編輯器中探索 Gemini Code Assist。

事前準備

  1. 請確認您具備專案的 Cloud Workstations 管理員 IAM 角色,才能建立工作站設定。

    前往「IAM」頁面

  2. 如果尚未設定工作站,請務必在設定中選取「Base Editor (Code-OSS)」(基本編輯器 (Code-OSS))

  3. 在程式碼檔案中測試 Gemini Code Assist 功能前,請確認檔案的程式設計語言是否受到支援。如要進一步瞭解支援的程式設計語言,請參閱「支援的程式設計語言」。

連結至 Google Cloud 並選取專案

在本節中,您將連線 Google Cloud 並選取Google Cloud 已在工作站啟用 Gemini for Google Cloud API 的專案。

如果選取的 Google Cloud 專案未啟用 Gemini for Google Cloud API,系統會顯示通知,讓您選擇從 IDE 啟用 API。在通知視窗中選取「啟用 API」,即可為專案啟用 API。詳情請參閱「為專案設定 Gemini Code Assist」一文。

如要在工作站連線至 Google Cloud ,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中啟動工作站。

    啟動工作站

  2. 在工作站的活動列中,按一下 spark「Gemini Code Assist」

  3. 如果尚未登入,請按照提示登入 Gemini Code Assist。

  4. 如果系統提示您允許 Cloud Workstations 開啟外部網站,請按一下「開啟」

  5. 按照提示登入帳戶。

    系統提示您確認從 Google 下載這個應用程式時,請點按「登入」

    瀏覽器會開啟新分頁,顯示登入 Cloud Code 的驗證碼。

  6. 複製驗證碼並貼到終端機中顯示「Enter authorization code」的位置,然後按下 Enter 鍵 (適用於 Windows 和 Linux) 或 Return 鍵 (適用於 macOS)。

    你現在已連線至「 Google Cloud」。可以開始使用 Gemini 了。

與 Gemini Code Assist 對話

在本節中,您將瞭解如何開啟 Gemini Code Assist 窗格,並與 Gemini Code Assist 對話,取得程式碼說明。

如要開始與 Gemini 對話,請按照下列步驟操作:

  1. 開啟來源檔案。

  2. 在工作站的活動列中,按一下 spark「Gemini Code Assist」

  3. 在「Gemini Code Assist」窗格中輸入提示 Explain this code to me,然後點按「傳送」send

    Gemini 會將檔案做為提示的背景資訊,並提供程式碼的說明。

    如要專注於特定程式碼區塊,請先在開啟的檔案中選取該區塊,再輸入提示。

重設對話記錄

Gemini Code Assist 會使用對話記錄,在回覆提示時提供額外背景資訊。

如果對話記錄與您想達成的目標無關,可以重設對話記錄:在「Gemini Code Assist」窗格中,按一下 delete「Reset Chat」

使用提示生成程式碼

以下章節說明如何使用 Gemini Code Assist,在檔案中透過 Function to create a Cloud Storage bucket 範例提示詞生成程式碼。您也可以選取部分程式碼,然後透過聊天功能提示 Gemini Code Assist 提供協助,並在編寫程式碼時接收及接受/拒絕程式碼建議。

在檔案中提示 Gemini Code Assist

  1. 在來源檔案的新行中輸入註解 Function to create a Cloud Storage bucket,然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。

  2. 如要生成程式碼,請按下 Ctrl + Enter 鍵 (Windows 和 Linux) 或 Ctrl + Return 鍵 (macOS)。

    在檔案中,Gemini Code Assist 會在提示文字旁生成淡色文字的程式碼。

  3. 選用:如要接受生成的程式碼,請按下 Tab 鍵。

選用:變更產生程式碼的鍵盤快速鍵

如果產生程式碼的預設鍵盤快速鍵無法運作 (如上一節所述),請按照下列步驟變更鍵盤快速鍵:

  1. 在工作站中,依序點按「選單」menu>「檔案」>「偏好設定」>「鍵盤快速鍵」

  2. 在鍵盤快速鍵清單中,搜尋「Cloud Code: Generate Code」

  3. 按一下「Cloud Code: Generate Code」,然後點選 edit「Change Keybinding」

  4. 在隨即顯示的對話方塊中,輸入自訂快速鍵。

  5. 按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。

    現在你可以使用新指派的鍵盤快速鍵,透過 Gemini 生成程式碼。

使用即時通訊功能,透過選取的程式碼提示 Gemini Code Assist

Gemini Code Assist 可以根據您選取的程式碼執行工作或回答問題。如要根據提示和所選程式碼取得生成的程式碼,請按照下列步驟操作:

  1. 在活動列中,按一下 spark「Gemini Code Assist」,開啟「Gemini Code Assist」對話窗格。

  2. 在來源檔案中選取程式碼區塊。

  3. Gemini Code Assist Chat 文字欄位中,輸入所選程式碼的提示詞。

    舉例來說,選取程式碼中的函式,然後輸入提示 Write a unit test for this function

    Gemini 會以選取的程式碼做為參考,並回應提示。

在編寫程式碼時取得行內建議

撰寫程式碼時,Gemini Code Assist 會提供內嵌程式碼建議,您可以接受或忽略。如要試用這項功能,請按照下列步驟操作:

  1. 在來源檔案中,另起新行並開始編寫函式。 舉例來說,如果您位於 Python 檔案中,請輸入 def。Gemini 會以淡色文字的形式建議程式碼。

  2. 如要接受 Gemini Code Assist 提供的程式碼建議,請按下 Tab 鍵。如要忽略建議,請按下 Esc 鍵或繼續撰寫程式碼。

選用:停用行內建議

如要停用 Gemini Code Assist 的內嵌建議,請按照下列步驟操作:

  1. 在工作站中,選取 menu「選單」,然後依序前往「檔案」>「偏好設定」>「設定」

  2. 在「設定」對話方塊的「使用者」分頁中,依序前往「擴充功能」>「Cloud Code」

  3. 捲動至「Cloudcode: Gemini Code Assist: Inline Suggestions: Enable Auto」清單,然後選取「Off」

    這樣一來,系統就會關閉內嵌建議。您仍可按下 Ctrl + Enter 鍵 (Windows 和 Linux) 或 Ctrl + Return 鍵 (macOS),手動觸發行內建議。

選用:使用 .aiexclude 檔案將檔案從脈絡中排除

您可以建立 .aiexclude 檔案,排除 Gemini Code Assist 考慮的檔案。.aiexclude 檔案的語法與 .gitignore 檔案類似,但有下列差異:

  • 如果 .aiexclude 檔案為空白或不存在,系統不會封鎖該目錄和所有子目錄中的檔案。
  • .aiexclude 檔案不支援否定,也就是在模式前加上驚嘆號 (!)。
  • .aiexclude 檔案會貪婪地比對 * 字元。這會不分青紅皂白地比對目錄和檔案。這個 .aiexclude 檔案不會區分資料夾或檔案的 ***

目前僅支援單一 .aiexclude 檔案。如要設定 .aiexclude 檔案,請在工作區資料夾的根目錄中建立名為 .aiexclude 的檔案。如要將這個檔案放在工作區根目錄以外的位置,或重新命名檔案,可以在 VS Code 設定的「Context Exclusion File」下方設定路徑。這個設定中提供的路徑值會相對於開啟的工作區根資料夾解析。

範例

以下範例說明如何設定 .aiexclude 檔案:

  • 封鎖工作區目錄中或其下的所有 apikeys.txt 檔案:

    apikeys.txt
    
  • 封鎖工作區目錄中或其下所有副檔名為 .key 的檔案:

    *.key
    
  • 只封鎖與 .aiexclude 檔案位於相同目錄的 apikeys.txt 檔案,但不封鎖任何子目錄:

    /apikeys.txt
    
  • 封鎖目錄 my/sensitive/dir 和所有子目錄中的所有檔案。 路徑應相對於工作區根目錄。

    my/sensitive/dir/*
    

停用與引用來源相符的程式碼建議

如果 Gemini 直接完整引述其他來源的內容,例如公開的原始碼,則會註明引用來源。詳情請參閱「Gemini 引用來源的方式和時機」。

如要避免系統建議與引用來源相符的程式碼,請在 settings.json 檔案中將 geminicodeassist.recitation.maxCitedLength 設定修改為 0

"geminicodeassist.recitation.maxCitedLength": 0

使用智慧動作

為協助您提高工作效率,同時減少切換情境的次數,Gemini Code Assist 直接在原始碼編輯器中提供 AI 輔助智慧動作。在編輯器中選取程式碼時,您可以查看並選取與內容相關的動作清單。

如要使用智慧動作,請按照下列步驟操作:

  1. 在來源檔案中選取程式碼區塊。

  2. 在選取的程式碼區塊旁邊,按一下「顯示程式碼動作」lightbulb

    在 Shell 和工作站中選取程式碼區塊後,系統會顯示智慧動作燈泡圖示。

  3. 選取動作,例如「產生單元測試」

    Gemini 會根據所選動作生成回覆。

使用程式碼轉換

Gemini Code Assist 提供程式碼轉換功能,可讓您在檔案中選取部分程式碼,然後透過自然語言提示,使用內嵌文字方塊要求修改現有程式碼。

程式碼轉換功能可執行下列操作:

  • 生成註解行,記錄程式碼
  • 排解有問題的程式碼
  • 提升程式碼可讀性
  • 提高程式碼效率

您也可以在「Gemini:Chat」窗格中,查看生成回覆的脈絡來源。

透過內嵌文字方塊提示 Gemini Code Assist

您可以在內嵌文字方塊中,直接在程式碼中與 Gemini Code Assist 互動。

如要開啟內嵌文字方塊並提示 Gemini,請按照下列步驟操作:

  1. 在來源檔案中,按下 Ctrl + I 鍵 (適用於 Windows 和 Linux) 或 Command + I 鍵 (適用於 macOS)。

  2. 輸入提示 (例如 Write a function to create a Cloud Storage bucket),然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。

    Gemini Code Assist 會根據提示生成程式碼。

查看重構程式碼的差異

內建於內嵌文字方塊的差異檢視畫面會顯示 Gemini 建議的變更和原始程式碼。接著,您可以接受或捨棄建議的變更。

如要查看內嵌文字方塊中重構程式碼的差異,請按照下列步驟操作:

  1. 在來源檔案中選取函式,然後按下 Ctrl + I 鍵 (適用於 Windows 和 Linux) 或 Command + I 鍵 (適用於 macOS),開啟內嵌文字方塊。

  2. 輸入提示 (例如 Add comments),然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。

    Gemini 生成所選函式的程式碼變更後,差異檢視畫面就會顯示。

    Gemini:Chat 窗格中列出的脈絡來源。

  3. 如要接受或捨棄變更,請按一下「接受」或「捨棄」

查看生成回覆的內容來源

脈絡顯示功能會列出專案檔案 (脈絡來源),這些檔案會做為參考,用來生成提示的回覆。瞭解系統參考了哪些檔案,有助於修正提示並取得更具體的回答。每次使用 Gemini Chat 時,系統都會顯示內容來源。

如要查看生成回覆的脈絡來源,請在「Gemini:Chat」窗格中捲動,直到看到「脈絡來源」程式碼片段為止。展開程式碼片段,即可查看所有內容來源。

Gemini:Chat 窗格中列出的脈絡來源。

使用智慧指令

智慧指令:您可以在內嵌文字方塊中使用智慧指令,對程式碼執行特定動作。

如要使用 /explain 智慧指令取得整個來源檔案的說明,請按照下列步驟操作:

  1. 在檔案中,按下 Ctrl + I 鍵 (Windows 和 Linux) 或 Command + I 鍵 (macOS),開啟內嵌文字方塊。

  2. 按下 / 即可查看智慧指令清單和說明。

  3. 選取「/explain」。

    Gemini 會在內嵌文字方塊中生成整個檔案的說明。

  4. 選用:如要在「Gemini:Chat」窗格中查看生成的回覆,請按一下「在 Chat 中查看」

查看提示記錄

存取提示記錄可節省時間,方便您在大型來源檔案中重複使用提示。

如要存取提示記錄,請在檔案中按下 Ctrl + I 鍵 (Windows 和 Linux) 或 Command + I 鍵 (macOS),開啟內嵌文字方塊,然後按下 Ctrl + 向上鍵 (Windows 和 Linux) 或 Command + 向上鍵 (macOS)。這樣就能瀏覽舊提示,並在需要時重複使用。

協助非英文母語者理解程式碼

如果您的母語不是英文,需要使用翻譯應用程式,可以使用內嵌文字方塊生成其他語言的註解。

如要將英文註解轉換為其他語言,或以其他語言新增註解,請按照下列步驟操作:

  1. 在來源檔案中,選取要加入註解的程式碼。

  2. 按下 Ctrl + I 鍵 (Windows 和 Linux) 或 Command + I 鍵 (macOS),開啟內嵌文字方塊。

  3. 輸入提示 (例如 Add spanish comments),然後按下 Enter 鍵 (Windows 和 Linux) 或 Return 鍵 (macOS)。

    Gemini 會以您在提示中指定的語言生成註解,並顯示這些建議的差異。

  4. 如要接受或捨棄這些程式碼變更,請按一下「接受」或「捨棄」

測試其他範例提示

閱讀本文件的「使用提示生成程式碼」一節後,請嘗試使用下列部分提示範例。

取得程式碼說明

  1. 在來源檔案中,選取要說明的函式。
  2. 在「Gemini Code Assist」窗格中,輸入提示詞 Explain this code to me

    Gemini 會以所選程式碼做為參照,並說明所選函式。

產生測試計畫

  1. 在來源檔案中,選取要新增單元測試的程式碼。
  2. 在「Gemini Code Assist」窗格中,輸入提示詞 Write unit tests for my code

取得偵錯程式碼相關協助

  1. 在來源檔案中,選取要偵錯的程式碼。
  2. 在「Gemini Code Assist」窗格中,輸入提示詞 Help me debug my code

讓程式碼更清楚易懂

  1. 在來源檔案中,選取要提高可讀性的程式碼。
  2. 在「Gemini Code Assist」窗格中,輸入提示詞 Make my code more readable

    如要專注於程式碼的特定部分,請先選取偏好的程式碼部分,再提示 Gemini。

已知問題

以下各節將說明 Gemini Code Assist 的已知問題。

朗讀授權警告不會在工作階段之間保留

如果授權背誦警告不會持續顯示,請參閱持續性記錄:

  1. 依序點選 menu「選單」 >「檢視」>「輸出」

  2. 選取「Gemini Code Assist - Citations」(Gemini Code Assist - 引用內容)

Gemini Code Assist 輸出視窗中的連線問題

如果在 Gemini Code Assist 輸出視窗中看到連線錯誤或其他連線問題,請嘗試下列方法:

  • 設定防火牆,允許存取 oauth2.googleapis.comcloudaicompanion.googleapis.com

  • 設定防火牆,允許透過 gRPC 使用的 HTTP/2 通訊協定進行通訊。

您可以使用 grpc-health-probe 工具測試連線。如果檢查成功,輸出內容會如下所示:

$ grpc-health-probe -addr cloudaicompanion.googleapis.com:443 -tls error: this server does not implement the grpc health protocol (grpc.health.v1.Health): GRPC target method can't be resolved

如果檢查失敗,會產生下列輸出內容:

timeout: failed to connect service "cloudaicompanion.googleapis.com:443" within 1s

如要取得更多詳細資料,請在 grpc-health-probe 前執行下列指令:

export GRPC_GO_LOG_SEVERITY_LEVEL=info

Gemini Code Assist 和 JetBrains Gateway

Gemini Code Assist 不會透過 JetBrains Gateway 執行。因此,Gemini Code Assist 無法在需要透過 JetBrains Gateway 連線的 Cloud Workstations IDE 上執行。

選取 Gemini Code Assist 專案後,系統仍顯示「啟用 Gemini Code Assist」

如果您已按照本指南中的操作說明選取專案,包括啟用 Gemini for Google Cloud API,則可能是 LS 伺服器發生問題。

如要進一步瞭解問題,請採取下列行動:

  1. 在狀態列中,依序點選 spark「Gemini Code Assist」和「Send feedback」(提供意見)

  2. 按一下任一記錄檔的「顯示」,即可查看更多詳細資料,協助排解問題。

提供意見

如要提供使用體驗的相關意見,請按照下列步驟操作:

  1. 在狀態列中點選「Gemini Code Assist」,然後在「快速挑選」選單中選取「提供意見」

  2. 在表單中填寫「標題」和「留言」欄位。

  3. 如要分享 Skaffold 或 AI 輔助記錄,請選取「傳送 Skaffold 記錄」或「傳送 AI 輔助記錄」選項。

  4. 按一下「提交意見回饋」

後續步驟