1. 概览
本实验重点介绍如何使用 Gemini CLI,它是 Google Cloud 中的一个开源 AI 赋能的智能体。您将学习如何使用 Gemini CLI 完成各种任务,包括了解现有代码库、生成文档和单元测试,以及重构 Python Web 应用的界面和后端组件。
学习内容
在本实验中,您将学习如何完成以下操作:
- 如何使用 Gemini CLI 执行常见的开发者任务。
前提条件
- 本实验假设您熟悉 Cloud 控制台和 Cloud Shell 环境。
2. 设置和要求
Cloud 项目设置
- 登录 Google Cloud 控制台,然后创建一个新项目或重复使用现有项目。如果您还没有 Gmail 或 Google Workspace 账号,则必须创建一个。
- 项目名称是此项目参与者的显示名称。它是 Google API 尚未使用的字符串。您可以随时对其进行更新。
- 项目 ID 在所有 Google Cloud 项目中是唯一的,并且是不可变的(一经设置便无法更改)。Cloud 控制台会自动生成一个唯一字符串;通常情况下,您无需关注该字符串。在大多数 Codelab 中,您都需要引用项目 ID(通常用
PROJECT_ID
标识)。如果您不喜欢生成的 ID,可以再随机生成一个 ID。或者,您也可以尝试自己的项目 ID,看看是否可用。完成此步骤后便无法更改该 ID,并且此 ID 在项目期间会一直保留。 - 此外,还有第三个值,即部分 API 使用的项目编号,供您参考。如需详细了解所有这三个值,请参阅文档。
- 接下来,您需要在 Cloud 控制台中启用结算功能,以便使用 Cloud 资源/API。运行此 Codelab 应该不会产生太多的费用(如果有的话)。若要关闭资源以避免产生超出本教程范围的结算费用,您可以删除自己创建的资源或删除项目。Google Cloud 新用户符合参与 300 美元免费试用计划的条件。
环境设置
打开 Gemini 对话。
或者在搜索栏中输入“向 Gemini 提问”。
启用 Gemini for Google Cloud API:
在下一个界面中启用 GCA。
点击“Start chatting
”,然后按照其中一个示例问题操作,或输入您自己的提示来试用该功能。
建议尝试的提示:
- 用 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 是一款基于 Web 的工具,可用于进行原型设计,并使用提示工程和 Gemini API 进行实验。
- Gemini Web 应用 (gemini.google.com)
Google Gemini Web 应用 (gemini.google.com) 是一款基于 Web 的工具,旨在帮助您探索和利用 Google Gemini AI 模型的强大功能。
- 适用于 Android 的 Google Gemini 移动应用和 iOS 设备上的 Google 应用
4. 下载并检查应用
点击搜索栏右侧的图标,激活 Cloud Shell。
如果系统提示您进行授权,请点击“授权”以继续。
在终端中,运行以下命令以在本地克隆 Git 代码库。
git clone https://github.com/gitrey/calendar-app-lab
cd calendar-app-lab
启动“Cloud Shell 编辑器”。
打开“calendar-app-lab
”文件夹。
在 Cloud Shell 编辑器中启动新终端。
您的环境应类似于以下屏幕截图。
5. Gemini CLI 简介
Gemini CLI 是一款与 Google Cloud 的 Gemini 模型集成的开源 AI 代理。借助它,开发者可以直接从终端执行各种任务,例如了解代码库、生成文档和单元测试,以及重构代码。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
来更改此设置。
如果您在 Qwiklabs 环境中运行实验,请选择“Use Cloud Shell user credentials
”。
否则,请运行以下命令并选择“Login with Google
”来对 Gemini CLI 进行身份验证:
/auth
重启 CLI 后,系统会提示您按照提供的链接为应用授权。
打开链接,然后按照相应步骤使用 Qwiklabs 学员凭据登录。
复制验证码,然后返回终端,粘贴验证码以完成该流程。
如需验证您的身份验证方法,请运行以下命令:
/about
6. 代码库理解
您可以使用 Gemini CLI 快速了解代码库,只需让它总结文件或目录的用途,并解释复杂的函数或代码部分即可。这样一来,开发者无需进行深入的手动探索,即可快速加入新项目或掌握现有代码中不熟悉的部分。
如需详细了解代码库,请在 Gemini CLI 中发送以下提示:
Don't suggest any changes. Explain this codebase to me.
查看输出:
7. 在本地启动应用
Gemini CLI 可以帮助您自动生成必要的配置文件(例如 requirements.txt 或基本的 Dockerfile),从而显著简化在本地运行 Python 应用的过程。此外,它非常适合管理 Python 依赖项和进行问题排查,因为它可以快速解释因缺少软件包或版本冲突而导致的轨迹回溯错误,并且通常会建议用于解决问题的精确 pip install 命令。
如需在本地启动应用,请在 Gemini CLI 终端中输入以下提示:
Run this app locally
按照提示启动应用:
点击链接以预览应用:
示例输出:
8. 添加文档
Gemini CLI 可让您即时为函数或类生成文档字符串,因此非常适合用于文档和注释。您还可以利用它快速向复杂或不熟悉的代码块添加解释性内嵌注释,从而显著提高代码库的清晰度和可维护性。
如需向应用中的每个 Python 文件添加注释,请使用 Gemini CLI 终端并输入以下提示:
Add docstrings to all files
批准建议的更改。如果 IDE 集成已启用,您可以使用界面控件或在终端中按 Enter 键来接受并继续。您还可以使用“ctrl+y
”启用自动批准(YOLO) 模式。
使用以下提示更新 .gitignore
文件:
update .gitignore and add __pycache__ folder
切换到“源代码控制”视图,查看您目前所做的更改:
9. 添加单元测试
Gemini CLI 非常适合用于编写单元测试,它能够让开发者根据现有函数的签名和逻辑生成测试函数,并附带初始断言和模拟设置。不过,开发者仍必须检查并验证生成的测试,以确保这些测试能够有意义地涵盖所有必需的边缘情况,而不仅仅是简单的路径执行。
使用以下提示生成单元测试:
Generate unit tests for @calendar.py
查看更改后,接受这些更改。
安装新依赖项并运行测试。Gemini CLI 将循环观察、修复并重新运行生成的代码,直到测试通过且代码通过验证。
10. 检查 bug
Gemini CLI 可帮助检查逻辑中的 bug,您只需提示它检查和分析代码段,即可识别潜在的逻辑缺陷、差一错误或不正确的条件处理。通过说明代码的预期行为并让 CLI 发现差异,您可以在运行代码之前快速发现细微的缺陷。
如需检查转换逻辑中是否存在任何 bug,请在 Gemini CLI 中发送以下提示:
Are there any bugs in the conversion logic? Check if negative numbers are handled properly.
在对话中查看建议的更改并接受:
11. 重构界面
Gemini CLI 可以帮助您将旧版界面模式(例如类组件)转换为更新、更现代的功能范式(例如 React 中的钩子),或建议进行结构改进以提高可维护性,从而显著帮助您进行界面重构。您可以使用它来分析现有界面代码并将其重构为更模块化、可重用的组件,从而确保界面设计更简洁、更标准化。
通过向 Gemini CLI 提交以下提示,使用 Bootstrap 库重构界面:
Refactor UI to use Bootstrap library
查看并接受更改:
首先,启动应用。如果该功能已在运行,只需重新加载页面即可。
python3 main.py
重新加载页面,然后查看更改。
实现错误处理,以确保在出现问题时显示错误页面。
Implement error handling to display an error page when issues occur.
请刷新页面以查看更新。
发送负数以确认错误页面。
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.
在对话中查看并接受更改:
向应用提交多个请求,然后查看历史记录页面。
查看转化请求历史记录。
如需使用当前代码库状态更新 README.md 文件,请通过 Gemini CLI 发送以下提示:
analyze README.md file and update it with latest codebase state
查看输出。如果您已启用 Cloud Shell 集成,则可以使用界面控件访问更改,也可以从终端执行此操作。
13. Gemini CLI 内置工具
Gemini CLI 包含内置工具,Gemini 模型可使用这些工具与本地环境互动、访问信息和执行操作。这些工具可增强 CLI 的功能,使其不仅能生成文本,还能协助完成各种任务。
在 Gemini CLI 中发送以下提示,以查看可用的工具:
/tools
查看输出。
Gemini CLI 会根据您提供的任务智能选择最合适的内置工具,从而能够利用其对您的请求和可用功能的理解来执行复杂的操作。详细了解内置工具。
14. Gemini CLI Repo Init 命令
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
查看输出。
如果您想预览图表,请从 Marketplace 安装 Mermaid Chart
扩展程序。
打开文件,然后从上下文菜单中选择“预览”。
用于创建卡组的自定义命令
在 Gemini CLI 中发送此提示,以生成包含 Marp 格式要点的演示文稿。
接受工具调用,例如创建文件夹和保存文件。
/deck:new key points and details for this app
查看输出。
此步骤与 Cloud Shell 不兼容,因为 Marp 扩展程序需要安装 Web 浏览器。
从 Marketplace 安装 Marp for VS Code 扩展程序以保存演示。
否则,您需要在编辑器中打开生成的文件,然后从命令面板中选择“Marp: Export Slide Deck
”。
用于规划新功能实现的自定义命令
在 Gemini CLI 中发送此提示以重构界面。
接受工具调用,例如创建文件夹和保存文件。
/plan:new refactor UI to use Materialize CSS
查看输出。
根据之前生成的计划,通过 Gemini CLI 提交此提示,以启动界面重构流程。
接受工具调用,例如创建文件夹和保存文件。您可以使用“ctrl+y
”启用工具自动批准模式(YOLO mode
)。
/plan:impl implement the plan to refactor the app
启动/重新加载应用并查看输出:
16. Gemini CLI 非交互模式
在 CI/CD 流水线中以非互动模式运行 Gemini CLI 时,您可以直接向 CLI 传递提示和命令,从而自动执行各种任务,而无需手动干预。这样一来,就可以将 Gemini 无缝集成到代码分析、文档生成和其他开发任务的自动化工作流中。
打开新终端或关闭现有的 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 模式
虽然 LLM 可以处理复杂的任务,但对于简单的操作,直接命令更高效。! prefix
可让您在 AI 和传统命令行界面之间无缝切换。
!ls
查看输出。按 Escape
退出 shell 模式。
18. Gemini CLI MCP 支持
Gemini CLI 可通过 Model Context Protocol (MCP) 与 Jira、Confluence 或 GitHub 等第三方系统集成。这是通过 MCP 服务器自定义工具集成实现的,可让 Gemini CLI 创建或更新 JIRA 工单、从 Confluence 页面提取信息、创建拉取请求等。
在终端中运行此命令以创建配置文件或使用 shell 模式。
echo '{
"mcpServers": {
"context7": {
"httpUrl": "https://mcp.context7.com/mcp"
}
}
}' > .gemini/settings.json
启动 Gemini CLI 会话:
gemini
验证已配置的 MCP 服务器:
/mcp
查看输出
发送提示以测试已配置的 MCP 服务器:
use context7 tools to look up how to implement flex grid in react mui library
批准工具并查看输出。
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 在简化各种常见开发任务方面的功能,包括理解复杂的代码库、生成必要的文档和单元测试,以及高效地重构 Python Web 应用的前端和后端组件。借助 Gemini CLI,开发者可以减少上下文切换、自动执行重复性流程,最终以更高的效率交付更高质量的代码。它能够直接在命令行中使用生成式 AI 的强大功能,真正实现了开发工作流的革新。
21. 恭喜!
恭喜,您已完成此 Codelab!
所学内容:
- 使用 Gemini CLI 执行常见开发者任务
后续步骤:
- 我们即将推出更多实操课程!
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除项目
若要避免产生费用,最简单的方法是删除您为本教程创建的项目。
©2024 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名称和产品名称可能是其各自相关公司的商标。