使用 Gemini CLI 加快開發速度

1. 總覽

本實驗室的重點是運用 Gemini CLI,這是 Google Cloud 中的開放原始碼 AI 代理。您將學會使用 Gemini CLI 執行各種工作,包括瞭解現有程式碼集、生成說明文件和單元測試,以及重構 Python 網頁應用程式的 UI 和後端元件。

學習目標

在本實驗室中,您將瞭解如何執行下列工作:

  • 如何使用 Gemini CLI 執行常見的開發人員工作。

必要條件

  • 本實驗室假設您已熟悉 Cloud 控制台和 Cloud Shell 環境。

2. 設定和需求

設定 Cloud 專案

  1. 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果沒有 Gmail 或 Google Workspace 帳戶,請建立帳戶

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 專案名稱是這個專案參與者的顯示名稱。這是 Google API 未使用的字元字串。你隨時可以更新。
  • 專案 ID 在所有 Google Cloud 專案中都是不重複的,而且設定後即無法變更。Cloud 控制台會自動產生專屬字串,通常您不需要在意該字串為何。在大多數程式碼研究室中,您需要參照專案 ID (通常標示為 PROJECT_ID)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。你也可以嘗試使用自己的名稱,看看是否可用。完成這個步驟後就無法變更,且專案期間會維持不變。
  • 請注意,有些 API 會使用第三個值,也就是「專案編號」。如要進一步瞭解這三種值,請參閱說明文件
  1. 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成這個程式碼研究室的費用不高,甚至可能完全免費。如要關閉資源,避免在本教學課程結束後繼續產生費用,請刪除您建立的資源或專案。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。

環境設定

開啟 Gemini 對話。

bc3c899ac8bcf488.png

或在搜尋列中輸入「問問 Gemini」。

e1e9ad314691368a.png

啟用 Gemini for Google Cloud API:

636114fa6e5f0abf.png

在下一個畫面中啟用 GCA。

8e234b2e282c4413.png

點選「Start chatting」,然後按照其中一個範例問題操作,或自行輸入提示詞來試用。

ed120d672468b412.png

建議提示詞:

  • 請用 5 個重點說明 Cloud Run。
  • 您是 Google Cloud Run 產品經理,請用 5 個簡短重點向學生說明 Cloud Run。
  • 您是 Google Cloud Run 產品經理,請用 5 個簡短重點向認證 Kubernetes 開發人員說明 Cloud Run。
  • 您是 Google Cloud Run 產品經理,請以 5 個簡短重點,向資深開發人員說明 Cloud Run 與 GKE 的適用情境。

完成後,請關閉 Gemini Cloud Assist 對話視窗。

如要進一步瞭解如何撰寫更優質的提示,請參閱提示指南

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

Google 的隱私權承諾

Google 是業界首批發布 AI/機器學習隱私權承諾的公司,該文提到我們的信念:除了極致的安全性之外,客戶也應該對儲存在雲端的自家資料保有最大的掌控權

您提交及收到的資料

您向 Gemini 提出的問題 (包括您提交給 Gemini 分析或完成的任何輸入資訊或程式碼),都稱為提示。您從 Gemini 取得的答案或程式碼完成建議稱為「回覆」。我們不會將您的提示詞或 Gemini 的回覆用做模型訓練資料

提示加密

當您將提示提交給 Gemini 時,您的資料會在傳輸過程中加密,然後輸入至 Gemini 的基礎模型。

Gemini 生成的節目資料

Gemini 是以 Google Cloud 第一方程式碼和精選第三方程式碼訓練而成。您必須對程式碼的安全性、測試和效用負責,包括 Gemini 提供的任何程式碼完成、生成或分析功能。

進一步瞭解 Google 如何處理提示。

3. 測試提示的選項

如要變更現有提示,可以採取下列做法。

Vertex AI Studio 是 Google Cloud Vertex AI 平台的一部分,專門用於簡化及加速生成式 AI 模型的開發和使用。

Google AI Studio 是網頁工具,可讓您製作提示工程和 Gemini API 的原型並進行實驗。

Google Gemini 網頁應用程式 (gemini.google.com) 是一款網頁工具,可協助您探索及運用 Google Gemini AI 模型強大的功能。

4. 下載並檢查應用程式

按一下搜尋列右側的圖示,啟用 Cloud Shell。

3e0c761ca41f315e.png

如果系統提示您授權,請點選「授權」繼續操作。

6356559df3eccdda.png

在終端機中執行下列指令,在本機複製 Git 存放區。

git clone https://github.com/gitrey/calendar-app-lab
cd calendar-app-lab

啟動「Cloud Shell 編輯器」。

18ca8f879206a382.png

開啟「calendar-app-lab」資料夾。

7cef847802b51038.png

在 Cloud Shell 編輯器中啟動新的終端機。

3336bea9c0e999b9.png

您的環境應如下方螢幕截圖所示。

ae9475871b7d28a6.png

5. Gemini CLI 簡介

Gemini CLI 是一款開放原始碼 AI 代理,可與 Google Cloud 的 Gemini 模型整合。開發人員可直接在終端機執行各種工作,例如瞭解程式碼庫、生成說明文件和單元測試,以及重構程式碼。Gemini CLI 的主要優點是能直接在開發人員的指令列環境中運用生成式 AI 的強大功能,簡化開發工作流程、減少情境切換,並提升工作效率。

在 Qwiklabs 環境中,您不必執行這個步驟來設定環境變數。繼續執行下一步。

如果您在本機環境中使用貴機構的付費 Code Assist 授權,請記得在終端機中設定 Google Cloud 專案。瞭解詳情

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_NAME"

確認您位於專案資料夾的根目錄:

cd ~/calendar-app-lab

在終端機視窗中啟動 Gemini CLI:

gemini

您的環境應如下方螢幕截圖所示。

如果您是在本機環境中執行這些步驟,可以啟用與 IDE 的整合。

你隨時可以執行 /ide disable | enable 變更這項設定。

eaee08868abb4ccd.png

如果您是在 Qwiklabs 環境中執行實驗室,請選取「Use Cloud Shell user credentials」。

否則,請執行下列指令並選取「Login with Google」,驗證 Gemini CLI:

/auth

重新啟動 CLI 後,系統會提示您按照提供的連結授權應用程式。

390e8cbd9a32e8eb.png

開啟連結,然後按照步驟使用 Qwiklabs 學員憑證登入。24c1671a3c14b61d.png

複製驗證碼,然後返回終端機貼上該代碼,完成程序。

如要驗證驗證方法,請執行下列指令:

/about

f15a4036437b84d5.png

6. 瞭解程式碼集

你可以使用 Gemini CLI 快速瞭解程式碼集,要求 Gemini 摘要說明檔案或目錄的用途,並解釋複雜的函式或程式碼區段。開發人員不必深入探索,就能快速加入新專案,或掌握現有程式碼中不熟悉的部分。

如要進一步瞭解程式碼集,請在 Gemini CLI 中傳送下列提示:

Don't suggest any changes. Explain this codebase to me.

查看輸出內容:

63b57c91fd0e90a8.png

7. 在本機啟動應用程式

Gemini CLI 可協助您自動生成必要設定檔 (例如 requirements.txt 或基本 Dockerfile),大幅簡化在本機執行 Python 應用程式的程序。此外,這項工具也很適合用來管理 Python 依附元件及排解問題,因為它可以快速說明因缺少套件或版本衝突而導致的回溯錯誤,並經常建議精確的 pip install 指令來修正問題。

如要在本機啟動應用程式,請在 Gemini CLI 終端機中輸入下列提示:

Run this app locally

按照提示啟動應用程式:

d1fefa449b733c15.png

按一下連結即可預覽應用程式:

695fc8a1abab0aa7.png

輸出內容範例:

e9f986d9088b4419.png

d2bb703195b4f99.png

8. 新增說明文件

Gemini CLI 可讓您立即生成函式或類別的說明字串,因此非常適合用於文件和註解。您也可以運用這項功能,在複雜或陌生的程式碼區塊中快速新增說明內嵌註解,大幅提升程式碼庫的清晰度和可維護性。

如要為應用程式中的每個 Python 檔案新增註解,請使用 Gemini CLI 終端機並輸入下列提示:

Add docstrings to all files

核准建議的變更。如果已啟用 IDE 整合功能,您可以使用 UI 控制項或在終端機中按下 Enter 鍵,接受並繼續操作。您也可以使用「ctrl+y」啟用自動核准(YOLO) 模式。

a41d76b77290cc10.png

使用下列提示更新 .gitignore 檔案:

update .gitignore and add __pycache__ folder

切換至「原始碼控管」檢視畫面,查看目前所做的變更:

2c41f8b842573384.png

9. 新增單元測試

Gemini CLI 非常適合用來編寫單元測試,可讓開發人員根據現有函式的簽章和邏輯生成測試函式,並完成初始斷言和模擬設定。開發人員仍須審查及驗證生成的測試,確保測試涵蓋所有必要邊緣情況,而不只是簡化的路徑執行。

使用下列提示詞生成單元測試:

Generate unit tests for @calendar.py

查看變更內容,然後接受變更。

6b59d78b83152a22.png

安裝新的依附元件並執行測試。Gemini CLI 會觀察、修正並重新執行生成的程式碼,直到測試通過並驗證程式碼為止。

ec1a4fbb2d340384.png

10. 檢查是否有錯誤

Gemini CLI 可協助檢查邏輯中的錯誤,只要提示 Gemini CLI 檢查及分析程式碼片段,即可找出潛在的邏輯瑕疵、差一錯誤或不正確的條件處理方式。說明程式碼的預期行為,並要求 CLI 找出差異,即可在執行程式碼前快速發現細微的缺陷。

如要檢查轉換邏輯是否有任何錯誤,請在 Gemini CLI 中傳送下列提示:

Are there any bugs in the conversion logic? Check if negative numbers are handled properly.

在對話中查看並接受建議的變更:

54ef65ded5462b34.png

11. 重構 UI

Gemini CLI 可協助您將舊版 UI 模式 (例如類別元件) 轉換為新式功能範例 (例如 React 中的 Hook),或建議結構改善措施,以提升可維護性,大幅協助 UI 重構。您可以使用這項工具分析現有的 UI 程式碼,並重構為更模組化、可重複使用的元件,確保介面設計更簡潔且標準化。

將下列提示提交至 Gemini CLI,使用 Bootstrap 程式庫重構 UI:

Refactor UI to use Bootstrap library

查看並接受變更:

16e6ca14e703127.png

首先,請啟動應用程式。如果已在執行,只要重新載入頁面即可。

python3 main.py

重新載入頁面,然後查看變更。

b52a709e902040e3.png

54664e527bcd9227.png

實作錯誤處理機制,確保發生問題時會顯示錯誤頁面。

Implement error handling to display an error page when issues occur.

請重新整理頁面來查看更新。

傳送負數,確認錯誤頁面。

82e16d4cf25933db.png

12. 重構後端

Gemini CLI 可協助將舊版架構程式碼遷移至新式替代方案,或將單一服務重構為更容易管理的多個微服務元件,因此非常適合用於後端重構。這項功能可以分析伺服器端邏輯,建議改善資料庫查詢模式或更有效率的 API 端點設計,確保效能和擴充性維持不變或有所提升。

修改後端,將轉換要求儲存在記憶體中。

Store requests in memory and create a page to display conversion history. Add links on all pages to view the history.

查看並接受對話中的變更:

19cfa20552fb3a01.png

向應用程式提交多項要求,然後查看記錄頁面。

ac5639d18b341b0a.png

查看轉換要求記錄。

9ca680e193510640.png

如要使用目前的程式碼庫狀態更新 README.md 檔案,請透過 Gemini CLI 傳送這項提示:

analyze README.md file and update it with latest codebase state

查看輸出內容。如果您已啟用 Cloud Shell 整合功能,可以使用 UI 控制項存取變更,也可以從終端機執行這項操作。

13. Gemini CLI 內建工具

Gemini CLI 內建多項工具,Gemini 模型可藉此與本機環境互動、存取資訊及執行動作。這些工具可強化 CLI 的功能,讓 CLI 不僅能生成文字,還能協助處理各種工作。

在 Gemini CLI 中傳送這項提示,即可查看可用的工具:

/tools

查看輸出內容。

e5ef2d9b81f6c10.png

Gemini CLI 會根據您提供的任務,智慧選取最合適的內建工具,並運用對要求和可用功能的理解,執行複雜作業。進一步瞭解內建工具

14. Gemini CLI 存放區初始化指令

Gemini CLI 包含可分析專案並建立專屬 GEMINI.md 檔案的指令。

如要生成 GEMINI.md 檔案,請使用 Gemini CLI 傳送下列提示:

/init

查看輸出內容。這項指令會建立 GEMINI.md 檔案,其中摘要說明專案用途、技術、建構/執行指令和開發慣例,以供日後參考。

如要瞭解專案 GEMINI.md 檔案中應加入哪些指令或脈絡,建議先查看gemini-cli 存放區中的 GEMINI.md 檔案。

15. Gemini CLI 自訂指令

您可以在 Gemini CLI 中使用自訂指令,簡化開發工作流程並維持一致性。這些指令可做為個人快速鍵,方便你使用最常用的提示。您可以建立特定專案專用的指令,也可以讓所有專案都能使用這些指令。

存放區隨附多個自訂指令,位於 .gemini/commands 資料夾中。

建立圖表的自訂指令

在 Gemini CLI 中傳送這項提示,以 Mermaid 格式生成要求流程圖。

接受工具呼叫,例如建立資料夾和儲存檔案。

/diagram:new request flow for this app

查看輸出內容。

a85a31f482a2cc7d.png

如要預覽圖表,請從 Marketplace 安裝 Mermaid Chart 擴充功能。

22d4a002e2137b55.png

開啟檔案,然後從內容選單中選取「預覽」。

bccf0ae8ac46415f.png

c669fcd96c34662.png

建立牌組的自訂指令

在 Gemini CLI 中傳送這項提示,以 Marp 格式生成含有重點的投影片組。

接受工具呼叫,例如建立資料夾和儲存檔案。

/deck:new key points and details for this app

查看輸出內容。

c9aa767796204c7c.png

這個步驟與 Cloud Shell 不相容,因為 Marp 擴充功能需要安裝網路瀏覽器。

從 Marketplace 安裝 Marp for VS Code 擴充功能,即可儲存簡報。

a9d339718cbfcd9.png

否則,您會在編輯器中開啟產生的檔案,並從指令區塊面板選取「Marp: Export Slide Deck」。

91143fe81f7f5d71.png

自訂指令:規劃新功能實作

在 Gemini CLI 中傳送這項提示,即可重構 UI。

接受工具呼叫,例如建立資料夾和儲存檔案。

/plan:new refactor UI to use Materialize CSS

查看輸出內容。

552dbe189a493f91.png

根據先前產生的計畫,透過 Gemini CLI 提交這項提示,啟動 UI 重構程序。

接受工具呼叫,例如建立資料夾和儲存檔案。您可以使用「ctrl+y」啟用工具自動核准模式(YOLO mode)。

/plan:impl implement the plan to refactor the app

a3ceec7146f285e0.png

啟動/重新載入應用程式,並查看輸出內容:

fd0675f713d361e4.png

7352b93acabfb5be.png

16. Gemini CLI 非互動模式

在 CI/CD pipeline 中以非互動模式執行 Gemini CLI 時,您可以直接將提示和指令傳遞至 CLI,自動執行各種工作,不必手動操作。因此可順暢整合至自動化工作流程,用於程式碼分析、產生說明文件和其他開發工作。

開啟新的終端機,或關閉現有的 Gemini CLI 工作階段,然後執行這項指令。

gemini -p "Explain the architecture of this codebase"

查看輸出內容。

如果工作需要核准工具,您可以使用 -y 旗標啟用 YOLO 模式。

gemini -p "Explain the architecture of this codebase and save the file in the markdown format in the docs folder" -y

查看輸出內容。

在非互動模式下使用 Gemini CLI,可大幅提升 CI/CD 管道的自動化功能,進而提高開發週期效率並提升程式碼品質。

17. Gemini CLI Shell 模式

大型語言模型可處理複雜工作,但直接指令更適合簡單動作。! prefix 可讓您在 AI 和傳統命令列介面之間順暢切換。

!ls

查看輸出內容。按下 Escape 即可結束殼層模式。

18. Gemini CLI MCP 支援

Gemini CLI 可透過 Model Context Protocol (MCP) 與 Jira、Confluence 或 GitHub 等第三方系統整合。這項功能是透過 MCP 伺服器自訂工具整合實現,讓 Gemini CLI 能夠建立或更新 JIRA 票證、從 Confluence 頁面擷取資訊,以及建立提取要求等。

在終端機中執行這個指令,即可建立設定檔或使用殼層模式。

echo '{
    "mcpServers": {
        "context7": {
            "httpUrl": "https://mcp.context7.com/mcp"
        }
    }
}' > .gemini/settings.json

啟動 Gemini CLI 工作階段:

gemini

驗證設定的 MCP 伺服器:

/mcp

查看輸出內容。

c80d95544cc3436a.png

將提示傳送至已設定的 MCP 伺服器進行測試:

use context7 tools to look up how to implement flex grid in react mui library 

核准工具並查看輸出內容。

b51db5af09bd3f02.png

19. 本機環境的 MCP 伺服器設定範例

您可以使用下列設定,在本機環境中設定多個 MCP 伺服器。

{
    "mcpServers": {
        "Snyk Security Scanner": {
            "command": "snyk",
            "args": [
                "mcp",
                "-t",
                "stdio",
                "--experimental"
            ],
            "env": {}
        },
        "atlassian": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-remote",
                "https://mcp.atlassian.com/v1/sse"
            ]
        },
        "playwright": {
            "command": "npx",
            "args": [
                "@playwright/mcp@latest"
            ]
        },
        "github": {
            "command": "npx",
            "args": [
                "-y",
                "@modelcontextprotocol/server-github"
            ],
            "env": {
                "GITHUB_PERSONAL_ACCESS_TOKEN": "******"
            }
        }
    }
}

在此設定中,MCP 伺服器會提供外部系統的標準化存取權,將 Gemini CLI 代理程式轉換為動態開發和協作工具。具體來說,Snyk Security Scanner 伺服器可讓代理程式檢查程式碼和依附元件中的安全漏洞,不必離開目前的工作區;Atlassian 伺服器則會連線至 Jira 和 Confluence,讓 Gemini CLI 能夠使用自然語言建立、搜尋及更新問題或文件。此外,Playwright 伺服器會授予代理程式瀏覽器自動化功能,讓代理程式瀏覽及與網頁互動,執行測試或資料擷取等工作。最後,Github 伺服器會提供代理程式直接存取存放區的權限,讓代理程式管理 PR、分類問題及分析程式碼集,大幅減少切換程序的情形,並提升整個開發工作流程的生產力。

20. Gemini CLI 結論

總而言之,Gemini CLI 是功能強大且用途廣泛的開放原始碼 AI 代理程式,可與 Google Cloud 的 Gemini 模型完美整合,大幅提升開發人員的工作效率。在本實驗室中,我們探討了 Gemini Code Assist 的功能,瞭解如何運用這項工具簡化各種常見的開發工作,包括瞭解複雜的程式碼集、產生重要文件和單元測試,以及有效重構 Python 網頁應用程式的前端和後端元件。開發人員可以運用 Gemini CLI 減少環境切換、自動處理重複性程序,最終以更高的效率交付更高品質的程式碼。這項功能可直接在指令列中使用生成式 AI,徹底革新開發工作流程。

21. 恭喜!

恭喜,您已完成本程式碼研究室!

涵蓋內容:

  • 使用 Gemini CLI 執行常見的開發人員工作

後續步驟:

  • 我們即將推出更多實作課程!

清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。

©2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,所有其他公司和產品名稱可能是其關聯公司的商標。