Transcription
我们正在看一个 5,000 股的订单。大家好,我是 Stephanie Wong,谷歌云开发者项目全球负责人。我和 Greg 将每周担任你们的主持人。欢迎收看 Google Cloud Live 的首播。这是一个全新的每周系列节目,我们将与专家嘉宾一起讨论谷歌云的方方面面。从最新的产品发布到技术深度解析。>> 嗨,我是 Greg Boggas。我负责谷歌云的开发者社区项目。我非常激动能开启这个节目。嗯,节目的目标是让大家动手实践,帮助你们利用这些新的人工智能工具进行开发,最重要的是,与大家一起交流。嗯,我们是直播,我们希望这是一场对话。所以,请在聊天中打个招呼。让我们知道你们是从哪里收看的,并准备好你们的问题。>> 是的。我们已经有很多人在聊天中加入了。我们有 YouTube。嗯,大家好。我看到人们从尼日利亚、巴西、喀麦隆、圣地亚哥加入。我说,真的遍布全球。还有领英。非常感谢你们的加入。我看到人们在这里 Twitch 上。所以,再次感谢你们加入直播。我们每周都会在这里为大家解析复杂的主题。今天,第一集,我们将从我知道大家现在都在关注的事情开始。当然是生成式人工智能,但特别针对命令行。>> 没错。我们将使用 Gemini CLI 进行开发,而且你不需要成为一名开发者也能掌握 Gemini CLI 的强大功能。嗯,我们希望今天节目结束后,任何人都可以开始使用。嗯,我们将看看如何设置、如何安装以及如何开始使用 Gemini CLI。>> 没错。嗯,没有一位出色的专家来指导我们,我们就无法启动这个系列节目。她在这里将指导我们如何开始使用 Gemini CLI。所以,大家,请欢迎我们的第一位嘉宾,Denise Quan。嗨,Denise。嗨。我是 Denise Quan。我是谷歌的高级开发者关系工程师。我非常激动能与大家谈论 Gemini CLI,如何安装它,以及所有的小技巧和窍门,以便大家都能开始使用。我们非常期待学习这些技巧和窍门。嗯,你从 Gemini CLI 的第一天起就在这里了,对吗?那是什么样的体验?>> 哦,这真是一段疯狂的过山车,嗯,发布以及大家的热情高涨,都想去使用这些工具,看着 Gemini CLI 一路成长。嗯,这一切不到一年,我认为每个人都应该加入进来,看看他们能做出的很棒的工具。>> 是的。Greg,你也加入了,而且你好像也直接上手了 Gemini CLI。你对它的第一印象是什么?>> 嗯,我觉得它非常强大。它就像,作为一名开发者,它是一种在我习惯的工作环境中掌握这些强大模型能力的方式,对吧?对。我喜欢的是,人们有很多不同的方式来使用这些模型,而 Gemini CLI,比如直接从终端使用它,感觉是一种非常强大、直接的开发方式。>> 是的。我觉得在终端中使用它是一种超能力,我认为更多人可以真正学会它的强大之处。所以今天你将向大家展示如何真正看到直接在终端中使用模型的价值。>> 是的。嗯,所以,嗯,终端,很多人害怕它,因为他们认为终端只为开发者而设。但是,嗯,如果你仔细想想,它安装在每一台笔记本电脑上,而且它就在那里等着你。但是,人们有时会觉得,哦,我最好不要碰它,否则我会搞砸的。而它的好处是,你不需要太担心。你,尤其是现在,你不会搞砸的。嗯,除非你真的深入了一个兔子洞,但是有了 Gemini CLI,有很多东西可以防止你真的搞砸你的电脑。>> 是的。今天我们会看到很多这样的控制。但是,Denise,我有一个非常严肃的问题要开始。你的终端设置是什么样的?比如你是暗黑模式还是亮色模式?你有什么终端偏好?>> 我可能,嗯,很多开发者可能会想,“这是什么鬼?”但大多数开发者喜欢暗黑模式,但也许只是我的眼睛或者什么的。但我把我的电脑设置为亮色模式。但是我的 VS Code,我的终端,我把所有的背景都改成了暗色。我喜欢它的这一点。但是当我查看 Finder 和我所有的文件时,我不想眯着眼睛说,“在哪里?我在看哪个文件?”所以,对于某些东西,我不是暗黑模式的爱好者,但对于编码,我是暗黑模式的爱好者。我想,当我进入开发状态时。>> 很好。是的,我觉得我们会在聊天中听到很多强烈的意见。>> 是的,我也这么认为。嗯,也许对于不熟悉的人来说,你能谈谈 CLI 吗?那是什么意思,它与在其他地方使用 Gemini 有什么不同?>> 是的,CLI 是命令行界面,它是一种,至少从开发者的角度来看,一种直接与你的电脑和操作系统通信的轻量级方式。嗯,从生产力和速度的角度来看,没有什么比这更接近了,如果你在 gemini.google.com 上操作的话,因为那有一个应用程序,一个更重的应用程序,它建立在它之上,而且你必须通过浏览器,还有更多的层级。所以,对于很多开发者来说,我们倾向于使用终端,因为它能更快地完成工作。有些人会喜欢它,好吧,我去打开我的 Finder,点击所有文件。但是如果你处理多个文件,那需要很多点击。需要很多右键点击或打开。所以,有时输入命令会更简单。而且,实际上使用终端本身,而不是这个工具。嗯,有时人们需要更长的时间来记住如何做,但我觉得这适用于一切,对吧?当你改变手机操作系统时,你就会想,“哦,等等。为什么看起来不一样?”你必须习惯它。一旦你习惯了,它真的不像人们想象的那么可怕。>> 是的。你今天就要向我们展示这一点,对吧?它有多容易。人们如何开始设置它?嗯,我们可以详细介绍,我可以向大家展示如何从头开始安装它。嗯,我使用的是 Mac,我知道人们在使用其他操作系统,我们可能会尝试制作这些操作系统的视频,但让大家知道的是,我使用的是 Mac,而对大家来说,最好的地方是 gemini.com,你现在可以看到我屏幕上的这个。而最推荐的安装方式是使用 npm。嗯,就在屏幕上。但是 npm 默认不可用,你需要去安装一些东西才能使用它。所以,我将展示这一点。所以,你会看到的一件事是,在 Mac 和其他系统上,你可以看到一个终端,你可以点击它来打开它。嗯,如果你在下面的 Dock 中没有它,你总是可以去 Spotlight 搜索终端。一旦你打开了终端,嗯,就像我说的,我使用的是暗黑模式,你会看到一个纯粹的界面,真的没什么。所以,这就是我们将要进行所有操作的地方。这就是我们将要进行 Gemini CLI 操作的地方。所以,回到 npm 未安装的说法。让我们打开它并进行安装。为了使用 npm,你需要使用 Node.js。所以,如果我搜索安装 Node.js,第一个链接就是下载 Node.js。让我把它放大一点,这样你就能看到。而他们的网页很棒的一点是,你可以选择你想要的操作系统以及你想要的方式。所以,这将提供所有你需要做的信息,你只需要复制这个剪贴板。如果你是第一次安装,或者没有使用过任何开发工具,你实际上在 Mac 上需要安装 Xcode。嗯,当你进行安装时,让我展示一下,我确实有一个小备忘单,里面有我将要使用的所有东西,因为我记不住。但是,嗯,这将是你需要复制并粘贴到终端的命令行。所以我不会真的去执行它,因为我已经安装好了。但是,嗯,如果你只是复制并粘贴在那里,如果你不知道是否安装了,就去复制它,它会给你一个错误,它会给你一个你需要在它工作之前运行的命令行。所以,请注意那里的响应。所以我复制了这个到剪贴板。回到我的终端。我将去粘贴它。所以,这里你看到它正在下载它需要的包,并且正在进行检查,以确保一切正常,然后让我们通过输入 npm 来双重检查我们是否可以使用 npm。所以,现在你看到我已经安装了 npm。所以,回到 Gemini CLI 网页,我将复制安装命令,回到我的终端,我将安装它。通常我喜欢把东西放在旁边,但为了这次直播,我把它全屏了,这样每个人都能看到。所以,通常你不需要像这样翻页。嗯,这就是安装过程。要运行 Gemini,我只需要输入 Gemini,它就会加载。所以,从现在开始,因为我已经安装好了,我只需要去我的终端输入 Gemini 来启动 Gemini CLI。很好。很简单。我们实际上有一个问题,我想强调一下,因为它是个好问题。所以,来自领英的 Sarah 正在问,“在全新的 Mac OS 机器上设置环境时,是使用 Homebrew 这样的包管理器安装 Gemini CLI 更好,还是直接通过 Python 的 pip 安装?”这完全取决于你的个人偏好。嗯,在 Gemini CLI 上,我可以展示一下,如果你点击到,我会打开一个新的标签页。嗯,有多种安装方式,甚至可以通过 NPX 运行它,它实际上并没有安装在你的系统上。嗯,你有几种选择,但正如你所见,我们强调了 npm。所以,我想那将是我们的首选方式,但无论哪种方式都可以。它们都可以,无论你觉得哪种方式最适合你的系统。你知道,如果你不想安装 npm,只想使用 brew,那完全取决于你。>> 很好。>> 嗯,我们有一个来自 YouTube 的 Peter 的问题,这可能会引出你正在看的这个屏幕,但是有几种不同的方式来访问 Gemini CLI。嗯,你能给我们讲讲这些,以及为什么有人可能想,你知道,用谷歌登录而不是获取 API 密钥?>> 是的,所以第一个,正如你所看到的,它说用谷歌登录。嗯,Gemini CLI 有一个免费套餐,所以你在你的普通 Gmail 账户中,你可以直接用谷歌登录。如果你选择它,它会弹出那个 OAUTH 提示,说,你能用你的谷歌账户登录吗?嗯,也有一些人使用一些付费程序,付费谷歌程序和订阅,他们可以在那里进行。但是也有很多人使用 Gemini API 密钥,无论是付费还是免费套餐,技术上来说,你可以去生成一个密钥,那就是使用 Gemini API 密钥以及第三个选项 Vertex AI。>> 说有些区别在于订阅计费和按量计费,对吗?嗯,我们有一些不同的订阅计划。>> 是的。所以有不同的订阅计划,所有这些订阅都让你能够访问 Gemini CLI,而且我们还想让它变得可用,就像不同的选项一样,即使是我,我也会使用 Gemini API 密钥,但我也可以用我其他的几种方式登录。>> 太棒了。>> 很好。所以,如果你使用 Gemini API 密钥,嗯,你需要设置的环境变量是 Gemini API_key。你实际上也可以在这里粘贴它。嗯,但显然对于直播来说,我已经把它设置到我的环境变量中了,因为我不想每次都粘贴它。所以,我将选择使用 Gemini API 密钥,并且我已经提前设置好了。>> 很好。嗯,关于 Gemini API 密钥,我们有一个来自领英的 Marcus 的问题。嗯,他问,为了确保我的脚本保持安全和可移植,我必须在我的 shell 配置文件中导出的环境变量的确切名称是什么,以存储 Gemini API。>> 所以,是的,那就是 Gemini。所以我在这里输入它,以便清楚。Key。所以,这就是你存储它的环境变量,你会把它放在你的 bashrc 中,或者,嗯,即使你不想把它放在你的 bashrc 中,你想让它基于项目,你可以在你的项目中有一个 .env 文件,并将它存储在你的嗯,在这个文件中。>> 我看到来自 Keith 的一个问题,嗯,在领英上。我每次启动 Gemini CLI 都必须这样做,还是只第一次?>> 关于环境变量还是?>> 认证和所有东西?>> 哦,所以,一旦你选择了一个认证,是的,>> 它会一直保留。如果你想改变认证,这是一个很好的问题,你实际上可以执行 /auth,它会给你认证回来,你可以选择一个不同的,如果你愿意的话。但是,如果你使用登录或密钥,如果你把密钥放在环境变量中,那么是的,它总是会拾取它。如果你不这样做,我想它会把它存储在一个全局变量中。但是对于谷歌登录,你不需要每次都点击它,除非你进去改变它。那么显然你需要再次进去做。>> 我有一个问题。嗯,你能同时有两个会话,使用不同的认证选项吗?目前不能。嗯,你不能。所以,你可以有多个会话,但不能同时有两个不同的认证。>> 好的。是的。>> 好的。>> 太棒了。到目前为止我们所做的一切都是设置。这些都是你第一次使用它之前需要做的。>> 从现在开始,任何人都可以进来,输入 Gemini,然后开始。>> 现在他们已经设置好了,>> 是的,>> 他们能做什么?他们可以做很多事情,但让我们来看看,我只是想移除顶部部分。所以,我只是输入 /clear。/clear 可以清理你的屏幕,让它更容易阅读。Clear 可以清理你的屏幕,让它更容易阅读,这样你就可以摆脱所有其他正在发生的事情。嗯,看看这个屏幕,嗯,你可以看到右边你正在使用的模型。如果你想改变模型,你可以输入 /model 然后选择。所以,假设你实际上不想使用 Gemini 3,你想使用 Gemini 2.5,你可以选择它。或者你可以手动选择一个模型,然后说我只想使用这个模型。使用自动模型很好,因为它会根据你的提示自动选择要使用的模型。所以,假设你正在做一些基本的问题。它会选择使用一个闪电版本来节省你的 token。所以,这很好,因为你只需要做一个基本问题时,你就不必耗尽所有的 token 了。嗯,它还告诉你你正在哪个项目。我们有很多设置,你可以根据你的喜好选择不同的设置。你可以改变主题。嗯,是否想要页脚。有很多事情你可以做。嗯,然后我想,让我看看还有什么,就像我说的那样,有一个 clear 命令非常方便,而且,如果你输入了,我输入了一个提示,我不再想要这个提示了,而不是点击删除按钮,你可以按两次 escape,然后它就会消失。>> 我喜欢那个。另外,我觉得这一点很重要,很多人我认为都明白你需要输入终端命令才能与终端交互。我认为这里的关键区别在于,你现在可以使用自然语言进行交互,但也有这些开箱即用的功能,比如 init 或 auth,或者你可以快速开始使用的东西。>> 是的。这是一个很好的观点,就像现在我们进入了 Gemini CLI,你不再需要做整个命令行终端的事情了。我们正在使用自然语言。而 Gemini CLI 的好处是,因为它在终端中,你可以用自然语言做很多你在终端中会做的事情,因为它足够智能,能够调用很多这些工具,而你实际上不必记住语法。>> 对,没错。>> 所以,现在我们已经安装好了一切,让我们做一个小例子。我想我总是说,我认为我们之前提到过,这不仅仅是为了开发,Gemini CLI 可以供任何人使用。所以,让我们举一个例子,回到我的备忘单。嗯,我将粘贴的第一个提示,你知道,很多人使用 gemini.google.com,他们把它看作一个聊天界面。Gemini CLI 也是一个聊天界面。它可能没有相同的外观和感觉,但它有相同的功能。所以,我们要做的是,我们正在计划一个生日派对,我们想弄清楚我们要为我们的朋友买什么。我想让它找出最高评分或最受欢迎的降噪耳机、植物主题积木套装和即时成像相机。然后一旦你确定了,就去搜索价格并为我进行比较。所以我将复制我的提示并粘贴到这里。你会看到它将开始为我进行搜索。通常,你知道,当你必须做这些事情时,需要花费很长时间,因为首先你必须搜索最好的耳机是什么。你可能会得到各种各样的页面。你必须点击多个页面,因为你不能只相信你找到的第一个,对吧?你想确保这是重复的那个。然后你必须去搜索下一个,以此类推。所以,你会注意到的是,Gemini CLI 实际上可以并行进行谷歌搜索,并一次性完成所有工作。所以,而不是一个接一个地顺序搜索。嗯,它可以一次性完成所有工作,而且看起来它实际上正在搜索多年。嗯,一旦它找到了,看起来这个索尼似乎是最好的耳机。它现在继续进行谷歌搜索。所以,这绝对节省了你的时间。虽然我们在屏幕上看着它,但你可以去喝杯咖啡,或者你可以切换到另一个屏幕开始做你其他需要做的事情。所以,你可以让很多事情在后台运行,这很好,因为现在你不用坐在屏幕前做所有这些事情,你在节省时间。这可能只是一个有趣的例子,但从工作角度来看,如果我们想做一些营销,想做一些营销研究,我们可以让它为我们做搜索。我们想知道现在最流行的技术是什么。因为我知道很多人认为,哦,训练数据就是它所知道的一切。但是因为我们可以访问谷歌搜索,它可以查找最新最好的信息。>> 是的。嗯,首先,我想成为这个朋友。>> 耳机和即时成像相机。嗯,不,但这太棒了。我觉得并行处理是关键。而且,嗯,我想你可以在 Gemini 聊天中做到这一点,但这里重要的是你可以同时执行很多不同的操作。走开,我们即将看到 Gemini CLI 更多的功能。>> 是的。所以,关于聊天的一件事,我知道至少对于 gemini.google.com,你可以点击复制按钮。但是在这里,因为它在终端和你的笔记本电脑上,所以你可以将东西保存到你的文件系统中。所以,我现在看到这个比较。它说索尼是最好的耳机,还有一些玫瑰花束和这个即时成像相机。所以,你觉得很棒,但让我们实际保存下来供以后使用,因为我太忙了,要做其他事情,对吧?所以,我可以把它保存为 markdown 文件,所以它可以实际保存到我的文件系统中。所以,这是它的一大优点,因为在 gemini.google.com 上,你不能这样做并直接保存到你的系统。嗯,我之前提到的一件事是,除非你给了它权限,否则它不会随心所欲地做任何事情。但是在这里,如果你注意到,它实际上在问我是否有权限写入我的文件系统。嗯,我可以允许它,并说这次一次性允许。或者下一个选项是允许我这次整个会话。或者,嗯,我实际上可以在我的外部编辑器中修改这个文件,如果我已经设置好了。或者我说不,我不想让你做我做的事情,你可以说不。但是目前,我将允许这次会话。所以,基本上这次会话我将说你可以写入我的文件系统。>> 所以,请继续。我觉得这一点非常重要,因为我认为很多开发者或很多人第一次使用这些工具时会想,等等,我只是给一个 LLM 完全访问我的文件系统的权限,而那个权限系统我认为非常重要。你能谈谈这一点吗?并给那些担心让 LLM 访问他们文件系统的人一些指导。是的,我认为对我来说,我的意思是,我们有一个叫做 YOLO 模式的东西,正如名字所示,你给了它完全的权限,有些人很勇敢,喜欢这样做。我个人喜欢看看它在做什么,它在接触哪些文件,以确保它没有访问我不想它访问的东西。但是,它启动的地方,对我来说是项目文件夹,它在那里拥有访问权限。所以,它没有访问其他东西的权限,除非你明确给了它访问权限。所以,对我个人来说,我只是想确保这里的项目文件夹里的东西是好的。我们也有检查点,所以你可以有一个检查点,并总是回滚到它。嗯,这会给你更多的安全,至少是安心,我可以回滚,而且,嗯,对于开发者来说,他们的大部分东西都在某种仓库上,你可以随时进行提交,并在某些点给你回滚的能力。但是是的,它确实会问你想要做什么。你是否给予它权限,而且,嗯,>> 你知道,它给了你,让你在控制之中。>> 很好。这实际上回答了来自 Dev 2 的 Hermare Hammer 的一个问题,我不确定我是否说对了,但是构建这样一个 CLI 的安全原则是什么?所以,听起来我们给了整个体验很多细粒度的控制,以确保你可以进行检查和平衡,回滚,重新开始,只是,是的。>> 是的,只是为了确保,如果你想仔细检查一下,你知道,这是一个开源应用程序,我展示的 GitHub 是这个 Gemini CLI 工具的来源,你可以看到它到底在做什么,所以如果你真的不确定,你绝对可以去看看代码。是的,我们还有一个关于本地文件访问的问题。嗯,Ryu Ker Kurama,我想来自 YouTube,他问,这个 CLI 能否与本地文件一起工作,或者能够与你的本地网络交互?是的。嗯,它可以。所以,现在我把它保存到了一个叫做 birthday gift deals 的文件中。如果我打开我的 Visual Studio,你会看到我一直在这个 projects 文件夹下工作。你可以看到它把那个文件保存到了这里。嗯,至于网络方面,是的,你也可以做到。嗯,我不会在这里详细介绍,但我做过,你可以在 YouTube 上搜索,我做过一个关于网络工程的会议,我们去访问不同的网络和网络服务器等等。所以,你确实可以访问。>> 好的。非常酷。所以,这里我们有了这个,我们把它保存到一个文件中。但大多数人,就像我们所有人一样,工作时都会在 Google Docs 和 Google Sheets 上进行。默认情况下,Gemini CLI 没有访问权限。我们从未给它任何权限。但是,这些代理工具的好处是,取决于哪个,嗯,你可以实际连接它们并扩展它们的功能,并将它们与 MCP 和扩展连接起来。这允许你扩大 Gemini CLI 的默认工具的功能。>> 我们经常听到 MCP。你能为可能不理解它的人解释一下吗?MCP 是什么?扩展又是什么?是的。所以 MCP 是模型上下文协议。这是一个,我猜是 anthropic 提出的一个规范。所以,基本上对于所有这些 AI 代理,AI 工具,它们想要开放连接到外部工具的能力,无论是,你知道,数据库,其他服务,云上的东西,甚至是你的本地文件系统。嗯,它们与其他工具通信的能力,而所有这些工具,无论是 REST API 还是,你知道,CRUD 操作,它们都不同,但是问题总是,这个 AI 代理如何知道如何与之通信?然后我们就会去为每一个创建一个集成。所以,每一个 AI 工具都必须去进行这个集成。但是有了 MCP,它变得更加通用。所以,这个 MCP 工具,希望由服务本身创建,可以插入到多个 AI 代理和工具中。这有点像,我想很多人说,电源适配器。嗯,不是为所有不同的国家,但让我们说它是一个美国的电源适配器。美国的插头插进去,然后你有一个适配器可以插入到不同的其他国家,并能够进行单向通信,然后就能与所有其他东西通信。所以,这就是 MCP,它只是让你能够进行双向通信,无论是从某个东西获取信息,还是对某个服务进行更改更新。与扩展的不同之处在于,Gemini CLI 扩展是 Gemini CLI 特有的。我称它为更强大的 MCP,因为你可以将多个 MCP 服务器组合在一起,你还可以创建自定义命令。所以,正如你所看到的,我有一个非常大的提示。假设这是我每天都在做的事情,对吧?所以,如果我创建一个自定义命令,我就可以只用一个斜杠命令,而不必一直复制粘贴。但这也可以让你,我们知道所有这些 AI 工具,给它足够的信息,并具体说明有时你说我是一名工程师。我正在做这个,仅仅这一点就能帮助你获得更好的结果。所以,这样你就不必一遍又一遍地输入,或者我可以与其他人分享这些自定义命令。所以,自定义命令包含在这个扩展中,以获得更好的结果。如何更好地使用它?以及上下文。所以,提供上下文。所有这些组合在一起,使得 Gemini CLI 能够更高效、更快地使用这些工具,试图真正做到你要求它做的事情。>> 很好。你将向我们展示一些扩展,对吧?>> 我会。>> 很好。>> 是的,当然。所以,我之前提到的一件事是上下文,对吧?所以,很多人会问,“什么是上下文?”老实说,这也是我刚开始时问的问题,因为大多数人只是打开笔记本电脑,或者安装它,然后就开始使用它。但是上下文是真正给代理它需要的信息,就像我们谈论 LLM 获取训练数据一样,但你也有点需要训练你的代理。我总是喜欢用的例子是,假设你有一个新的私人助理,你说,“给我拿杯咖啡。”他们不会知道你喜欢什么类型的咖啡,直到你告诉他们你喜欢什么类型的咖啡。一旦你告诉他们你喜欢什么类型的咖啡,他们就会一直知道你喜欢什么,他们就能以那种方式给你。所以,Gemini CLI 也是如此。你可以去提供一些上下文,提供你的期望以及你希望事情如何完成的信息,因为它基本上是在个性化你的私人助理。让我来展示一些 Gemini 上下文的例子。所以,当然,当你提问时,你会得到回应,那就是上下文,那是它开始记住的一些信息。但是,默认情况下,你可以创建一个 gemini.markdown 文件并提供信息。所以,这是一个开发者的例子,我告诉它堆栈是什么,我的先决条件是什么,我如何构建它们,项目结构是什么,这样它就知道这些信息。然后这是一个试图制作内容的人的例子,说我希望它使用这些特定的工具。这是语音指南。我希望你在生成文本时有这种语气。嗯,只使用美式英语。你一定要检查语法。所以,这些是你告诉它的事情,这样它就不会做你不想做的事情,然后不得不纠正它。当然,所有的 token 都会计算,对吧?所以,这有助于你节省 token。嗯,在 Gemini CLI 上,你可以通过查看内存来实际看到你的上下文中有哪些内容。所以,你可以说 show,它会显示所有可用的内容。我想这个是我从我的工作空间保存的,我们稍后会展示。>> Gemini CLI 何时使用那个 Gemini markdown 文件?>> 所以,当它加载时,它会加载 markdown 文件,而我展示的是,它说这是我的内存中的内容,你绝对可以添加它。嗯,如果你在这里看到,有很多选项。你也可以列出路径,所以哪些文件实际上被加载了。你可以随时将上下文添加到内存或刷新它。所以,假设你修改了文件,而这个窗口之外,你可以去刷新它,说这是我将要使用的。所以,它从一开始就加载它,然后它会一直保留在上下文中。嗯,然后那个 Gemini.markdown 文件会在我所有的项目中工作,还是只在这个特定的项目中?>> 所以,这取决于你把它放在哪里。你可以把它放在你的全局,也就是在你的最高级别的点 Gemini 文件夹中,或者你可以把它放在项目特定的位置。所以,这真的取决于你把它放在哪里。所以,假设你有一个文件夹,里面只有你的开发东西,你可以把它放在那里。如果你有创建内容的东西,你可以把它放在那里。>> 太棒了。>> 我喜欢 Gemini markdown 文件,因为它就像一个秘密武器,你可以用它来真正定制你的体验。但是,我可以看到有些人看着 markdown 文件会想,“哇,这真的很详细。我不知道我是否真的有能力写出所有东西,让它变成我想要的样子。”而且,我认为有一个技巧,你可以使用 Gemini 来分析你的项目文件结构,并告诉你它理解了什么。>> 所以,我在这里的这个特定文件夹里没有太多东西,但假设这是一个代码,代码库,里面有任何东西,实际上不一定是代码。所以,如果你输入 /init,你可以分析它。它会自动进去,查看我所有的文件,然后根据你文件夹里的内容生成一个 gemini.markdown 文件。>> 是的,又一个节省时间的方法。>> 又一个节省时间的方法。也许它不能完全按照你的意愿去做,但至少它给了你一个基础,然后你可以去添加它。很多人没有意识到的是,你实际上可以让 Gemini CLI,这个代理写入那个文件。所以,很多时候会发生一些事情,然后说,“哦,不太对。你能确保在我的 gemini.markdown 文件里加个备注,这样下次就不会发生这种情况了吗?”你实际上可以让它直接写入文件本身。>> 太棒了。>> 酷。>> 是的。所以,让我们回到我之前谈到的将东西保存到 Google Docs 的事情。嗯,我们可以通过扩展它来实现,使用 Gemini CLI 扩展。回到 Gemini CLI 网页,你会注意到有一个扩展和扩展库。你会看到我们有超过 300 个,或者确切地说 364 个扩展,你可以搜索所有东西。其中一些是由公司自己构建的。一些是谷歌构建的,一些是社区构建的,我们也有一些很棒的社区构建的扩展。我们将要使用的是 Workspace 扩展,就是这个。所以,当我点击它时,它会给我执行它的命令,我可以点击复制并回到我的终端。所以,不幸的是,它不是直接在 Gemini CLI 中完成的。我必须退出。所以我可以通过输入 /exit 来退出。我回到了我的终端,我只需要粘贴它,它就会为我安装。嗯,看起来我已经安装好了。所以,如果我回去启动 Gemini,我将回到那里。让我清理一下,让它更容易阅读。如果我输入 /extensions,我可以看到已安装列表。如果我输入 /MCP,它会告诉我这个特定扩展可用的所有工具。嗯,因为我忘了卸载这个扩展。当你第一次启动时,它会启动那个 OAUTH,你需要给它权限才能访问你的 Google Workspace。所以,就像你看到的那样,当你进行 SSO 时,它会启动并说登录你的 G 谷歌账户。就是这样。嗯,所以你确实需要给予权限,你可以选择其中一个。所以,你看到有很多。有些人可能会说,我只想让它访问我的文档,你可以选择你想要的。所以,这里如果我说,你注意到现在我之前做的那个报告不见了。但是,好处是我们有一个 /restore,你可以选择所有你曾经聊过的不同聊天记录,我可以点击并说我想恢复它。所以,还记得我们最后谈论的是什么?哦,上下文,那就是上下文。这里你可以看到,我现在恢复了我的整个历史,我可以从我之前的地方开始。>> 很好。>> 所以,假设说,嗯,生日报告以一个格式精美的 Google 文档。所以,如果我已经安装了扩展,我猜我不小心安装了,嗯,我本可以直接说把它保存到 Google 文档中。我们不必在屏幕上展示它,也不必在 markdown 中展示它,也不必经历所有这些过程。所以,它会进行,我说,还记得我们说它总是问我是否想给它权限吗?我将给它权限来执行所有服务器工具,在这个特定的会话中。嗯,>> 不完全是 YOLO,但是>> 不,不完全是 YOLO。它只是说,对于这个特定的 MCP 或扩展,我将给它权限。所以,现在它给了我文档。让我们打开它。它给了我这个。链接是可点击的。它让事情变得很方便。所以,就像我说的,通常如果你已经安装了扩展,你就可以直接做到这一点。它给你无缝的体验,因为现在你不需要复制粘贴到文档中或其他什么。它直接进入这个。>> 太棒了。>> 所以,现在我们有了这个,嗯,让我们看看我们可以做什么。我们想进行一些代码编码。>> 是的,我们开始吧。>> 好的。所以,让我们做一个非常简单的代码编码。嗯,通常作为开发者,很多时候你必须去创建一个设计规范,我创建了一个关于井字棋游戏的规范,我把它放在了一个 Google 文档上。你不必把它放在 Google 文档上。你可以把它全部输入到你的提示中。你可以把它放在你的 gemini.markdown 的上下文中。但是我知道很多人会和他们的团队分享,并且进行协作。所以,为什么不把它放在文档上,我们可以直接从这个文档中拉取所有这些规范到 Gemini CLI 中,并进行代码编码。嗯,这里,让我回到这里。我还创建了,你知道我们如何去创建一些 UI 的模型,我们想要什么样的外观。所以,我有一个这个井字棋游戏的模型图像。我想要的。我可以问一下,你从哪里得到那张图片?>> 我从哪里得到这张图片?是的。所以,技术上来说,很多时候你会有一个用户体验设计师来做。我实际上是去使用了 AI Studio 并首先构建了这个,因为我没有,我没有用户体验设计师来设计这个。嗯,但在最典型的方式下,你会让你的用户体验设计师来做。大多数时候他们会给你一个 Figma,然后你就可以去获取这些图片。>> 我觉得这对独立工作的人或者没有,你知道,你可以让 AI 为你创建模型,然后将模型输入到模型中来创建软件。这太不可思议了。>> 我们在谈论代码编码。所以,对于那些,再次,对于非开发者的用例,你只是想构建一些东西,比如,这是使用 AI 帮助你的一个好方法。>> 是的。对于非开发者来说,你可能不会想,哦,我想构建代码,但假设你想做一个仪表板。>> 是的,>> 你处理很多不同的数字。你处理 CSV 文件。你想看到这些图表。你可以说,“去,给我做一个仪表板。”你可能不会认为你在进行代码编码,但你知道,代码可以做到这一点。而且你真的不需要完全理解发生了什么才能做到这一点。所以,它可以帮助很多非开发者,因为他们可以去构建一些对他们的日常生活有用的东西。>> 没错。>> 太棒了。>> 所以,这里,让我们进去。嗯,所以这个 URL 是那个 Google 文档的 URL。我已经预先复制了它,我将把这个提示复制到我的终端。然后我想提供你。糟糕。让我回去我的终端。我处于全屏模式。所以我需要快速出去一下,因为我需要进去并放入我想要的文件。所以,这是同一个井字棋图像。我将拖动,如果你注意到,我直接拖放进去。我需要在 UI 之前有一个空格。哦,我到底在做什么?嗯,我直接拖放了文件。所以,正如你所注意到的,你可以进行多模态,文本和文件输入。所以,不一定是只有图像,还有所有其他类型的。嗯,确保我的前端看起来和模型一模一样。所以,这里来了。嗯,它正在读取它现在文件夹里的内容,它真的只是在思考,对吧?这是人们通常做的第一件事。让我看看我文件夹里有什么。我个人在这里没有太多东西。然后,正如你所注意到的,因为我之前给了它权限,你知道我说过给它权限。
整个呃扩展,它进去抓取了文档。如果我没有给它,如果我说这次就够了,它会问我,提示我是否要授予该权限。所以,它读取了整个文档,并创建了这个计划,这就是他们将要做的事情。现在,它在问我是否允许它开始创建这个。如果我说不,我不喜欢你的计划,我总是有选择第三项并说不的选项。然后我们可以与 Gemini CI 代理合作,并根据我的意愿进行微调。所以,我将允许它在本会话中使用。请注意,它实际上在问我一些问题,并且它就坐在这里等待。Gemini CLI 的好处在于它有一个交互式 shell。交互式 shell 正在做你在终端中通常会做的事情,每个人都害怕的事情,并且实际上在 Gemini CLI 中拥有它。但如果它在问我一个问题,它就在等我回答。嗯,它有能力进去。所以,如果你注意到这里,它说“tab to focus”(按 Tab 键聚焦)。所以,如果我点击 Tab,我现在就在这里面了。我不会使用这个。我现在不想开始。所以,我说不。所以,现在它正在进行。所以,好处是你可以直接在 Gemini CLI 中与 shell 进行交互。你只需按 Tab 键就可以进出它。>> 好。所以,>> 所以你不需要完全退出 Gemini CLI 就可以做到这一点。>> 是的。而且对于这种情况,它实际上尝试为我做了,并且进行了提示,但我自己也有能力这样做。当你在提示中时,如果你点击感叹号,你可以输入你想要的任何内容,比如你想要的任何 shell 命令。>> 嗯,所以我将允许它。它正在读取,哦,它正在读取我的生日列表。我想知道它是否会将其用作上下文,并且我们会看到一些关于它的生日信息。所以,它正在进行,你可能会注意到它正在做的所有步骤。你知道,我现在一行代码都没写。它只是在进行并理解它在做什么。它显然正在验证一些嗯,一些安装。同样,如果我们愿意,我们可以让它继续。尽管如此,我们确实有一些提示。所以,这就是为什么有些人选择说“现在我要进去,让它一次性完成所有事情”。嗯,但这就是为什么有些人选择进入“yolo 模式”,只是因为他们想离开。是的。如果你在一个容器中这样做,并且像确保你的代码只在某个边界内,那么这是完全可以的,因为如果你在一个小的独立项目文件夹中,最坏的情况会发生什么?嗯,所以它正在进行并实现它,你看到它确实看起来像你的 IDE,并且它告诉它正在添加哪些文件,或者正在添加哪些行,正在删除什么,并且它可能实际上,由于它自己创建这些文件,它可能遇到了一些问题。而好处是它会自我纠正。所以,当它看到,“哦,等等,我做错了,我要进去纠正它”。所以,有时你可能会看到它改变,如果你真的从开发者的角度去想,我认为我们第一次写代码时不会写出完美的。所以,我们也不能真正期望很多这些 LLM 第一次就能写出完美的 कोड。所以,我认为最终的事情是确保它确实认识到有些事情不对劲。我要去修复它。>> 除非你是格雷格。>> 除非你绝对,我是说这太不可思议了。就像,你能想象回到三年前,然后说,“嘿,我们将拥有能够编写代码、找出错误然后像人类一样迭代的 AI”?>> 就像人类一样,对吧?我是说,这简直是魔法。>> 是的,而且很多,你知道,显然我们看社区说了什么,以及所有的一切,而且很多时候,并不是特别是指 Gemini CLI,而是指能够开发的人工智能工具,我认为我们需要选择我们使用它的目的,对吧?你不能,如果有你坐下来,你必须真正思考,反复思考,反复思考很长时间的事情,你怎么能期望 LLM 也能做到呢?现在,如果你知道如何做,并且很快就能做到,那么好的,如果有很多,这都基于训练数据。所以,如果有很多数据它训练过,那么它可能会做得很好。很多关于创建 REST API 的基本事情,只要 REST API 的文档在那里,它就能做到这些事情。而且在你的上下文中,你可以喂给它。我只是在我们说话的时候让一切都进行下去。嗯,看起来它可能正在发现一些错误。这是一个现场演示,所以我不知道它最终会生成什么。希望它会做得很好。嗯,但这确实需要一点时间。我们不能指望它瞬间完成。嗯,所有这些事情都在发生。但是的,我认为很多时候我喜欢强调,这最终是我经常用于概念验证的东西,确保它会起作用,因为很多时候你的概念验证,他们会说,“你能在一两天内完成吗?”>> 嗯,我不确定。我需要去研究一下我应该使用什么技术。所以,它提供了一个很好的起点。而且很多时候,即使是对于这个演示,我也问了 Gemini CLI 我想让它做什么。而且你可以问它很多这样的问题来帮助你完成日常任务。所以,看起来它完成了。嗯,它告诉我如何运行它。技术上我可以在这里运行它,但我将打开一个新的终端窗口并按照它所说的去做。所以,这里它启动了。让我们看看它生成了什么。让我们看看。我们不知道。>> 所以,看那个。哇。>> 所以,这看起来确实很接近。让我们进去看看>> 它看起来怎么样。哦,哇。它做得很好。>> 嗯,你可以玩井字棋>> 在这个上。让我们>> 我想我应该有 um 这里。>> 好了。它奏效了。而且它是一个工作的>> 工作应用程序。>> 不可思议。>> 太棒了。而且它相当快。我是说,你在整个过程中确实需要在某些点上与它互动,但总的来说,如果你选择走开,你可以喝杯咖啡,回来看到那个原型。>> 是的。或者你总可以让它在后台运行,而你正在做其他事情。而且我认为很多这些工具,我看待很多这些工具的方式是,我如何才能让我的日常任务>> 更快?是的。这样我就可以做所有其他事情。你知道,我们都有太多事情要做。无论你担任什么角色,我们的清单总是很长。所以,如果我能让它总结信息,我知道我们谈论过总结,因为我们有工作区扩展,总结我所有的聊天,总结我的日历,告诉我我什么时候有空,所有这些东西。它可能与编码无关,但它可以帮助你,而不是你需要坐下来处理所有这些。所以,现在你可能节省了 30 分钟,一个小时,然后你又节省了 30 分钟,一个小时。所以,仅仅是把所有这些结合起来,就能帮助我们,是的。>> 在我们的日常生活中。>> 嗯,而且我认为像这样的工具很重要的一点是,我认为我们任何人都可以构建一个井字棋应用程序,对吧?但它可能需要几个小时的专注时间,对吧?来编码。而且我们的很多日子都充满了会议和无数的打断。是的,就像它可能在后台运行一样,但这使得任何人都可以构建应用程序,而无需专注的时间,对吧?而且你现在可以在不间断的时间表上开发软件,我认为这非常非常强大。>> 是的。回到我说的,很多,很多不同的工作角色都会构建仪表板,对吧?所以,你能想象,我一直在和你聊天,而我实际上只是点击“继续,继续,继续”,然后它就为我构建了它,最终,假设这不是我想要的,然后说,“哦,或者它确实,它做得很好,构建了完全是我想要的,但哦,我改变了主意,我想要别的东西”,你可以回到>> Gemini CLI,然后说,“好吧,开玩笑,我想要这个”,它就会为你做出改变。>> 假设它没有奏效,>> 而且这些是现场演示,所以这发生在我身上过,我认为这发生在我们做其他演示的时候,而好处是,我可以说,“嘿,它没有启动”,然后问 Gemini CLI,“你能帮我调试一下吗?”>> 那通常是最令人沮丧的部分,当你试图加载你的 Web 应用程序,但它只是“未找到”。>> 对。>> 而且它能够去调试它,插入调试语句,并实际帮助你回过头来修复它。所以,即使它可能不是第一次,我们很幸运,它确实奏效了。实际上,我不会说幸运。我认为有时会有一些情况,它不会吐出正确的代码或正确的东西,但你可以回去,它可以帮助你解决这个问题。>> 是的。说到调试,>> dev2 的人有一个问题,与上下文窗口和调试过程有关。他问,“Gemini CLI 如何处理更长的调试会话的上下文窗口管理?特别是,有没有办法固定某些文件或项目上下文,以便在您深入研究这个多文件问题时,它不会在中途丢失跟踪?”>> 是的,随着它的进行,嗯,你知道,我们确实说过有一个 100 万个 token 的上下文窗口,假设它开始像“churn”。所以,当你处于一个长会话中时,你正在失去上下文,对吧?因为每一次你都在添加添加添加,然后大脑就会满。嗯,我们确实有一个压缩的选项。所以,基本上它会总结它已经做过的所有事情。嗯,所有的上下文,它只会总结它,使其更短。但同样,如果你想要某个特定的文件,你绝对可以在事后将其放入你的 Gemini.Markdown 文件中,我之前展示过,你可以进去刷新它。所以,如果你进去并且实际上自己输入了它,或者你实际上可以告诉 Gemini CLI,“将这个添加到我的记忆中”,然后就可以做到。嗯,你可以在那里添加部分,你知道,对特定文件的引用。>> 好的,太好了。所以,有一些事情你可以做来帮助管理上下文。>> 是的。>> 好的。太棒了。>> 你有没有用 Gemini CLI 教你编码概念?>> 我有。嗯,当我刚加入 Google 时,有很多东西要学,我确定你也在这个过程中。我仍然在这个过程中。>> 是的,我们有很多代码实验室。我们有很多工具可以教它,但有时如果你需要找到合适的工具,有时它感觉不像一个完整的流程,因为我们想要个性化的,对吧?就像我拥有这个小片段,那个小片段很棒,但有时你没有它们之间的联系。所以,我确实一直使用“教我关于这个”。我想了解某个特定事物。如何我正在为一个 Google Next 的演示做一个演示,嗯,我需要创建一个概念验证,我说这是我想要做的想法,你能告诉我这是否可能吗?当然,这是一个 Gemini CLI 的演示,我正在做一个,所以感觉有点元,有点奇怪,但我实际上让 Gemini CLI 告诉我很多这些事情,因为我没有,你知道,我们可以构建整个概念验证,结果发现它不起作用。现在,你花了所有的时间,所以让我去问一下,看看并做所有这些。它给了我连接我正在工作的设备的步骤说明。我甚至不需要去打开那个的手册或文档。它只是告诉我确切的,我跟着做了,它就起作用了,帮助我构建了代码和所有东西。所以,我确实用它来学习。我学习了,嗯,GCP,使用 Gemini CLI,因为我想,“有什么命令可以部署到,部署到,嗯,云运行?”>> 你不记得这些事情了,如果你有 G-Cloud CLI 安装在你的系统上,它可以自动运行它,你甚至不必担心。所以,用自然语言,“部署这个到云运行”。>> 是的。哦,我的天哪。是的,我回想起我刚开始的时候,大概是 2017 年,我想,“我希望我拥有这个”。这太棒了。而且你也可以在你正在构建演示的环境中应用它,而不是像从聊天复制,你知道,应用它。所以,它就在你的工作流程中,这很棒。>> 嗯,我们的时间有限。我想强调的一点是,格雷格,你有一些很酷的 Gemini CLI 的日常生产力用例。你想快速谈谈吗?>> 是的,当然。所以,我最近加入了 Google Cloud。嗯,我有一个理论,大多数从事知识工作的人都会遇到比我们大脑设计所能处理的信息更多的信息,在聊天、文档、电子邮件之间,而且它可能令人不知所措,会议记录现在,我们都有 Gemini 在所有会议中做记录,我们得到那些转录稿,嗯,我发现 Gemini CLI 加上工作区扩展在处理所有这些信息方面非常有帮助。所以,我有一个自定义命令叫做“晨报”,它只是说,“嘿,看看我昨天做的一切,我所有的会议,找出所有的会议记录,看看所有的电子邮件,我在任何会议中是否说过我承诺过要做某事但还没有做?看看所有的 ping,所有的聊天。嗯,提醒我昨天发生了什么。然后现在看看我今天的日历。有没有什么冲突我需要解决?我需要做任何准备吗?嗯,有什么是我待办事项列表上的(它用纯文本文件管理我的待办事项),今天有什么要来的吗?嗯,这非常有帮助。我们经常在上下文中谈论这些事情,就像人类的上下文也有限一样,对我来说,加载我今天需要做的事情到我的个人上下文中来提醒我,并让我回顾一下我们每天遇到的所有信息,以帮助确保我正在处理最高优先级的任务,这非常有帮助。>> 我喜欢它,我也采用了和你一样的流程。所以,好的,我们得结束了。所以,丹尼斯,人们如何开始?他们可以免费开始吗?>> 是的,正如我之前提到的,Gemini CLI 有一个免费套餐,我知道很多人总是担心他们是否在窃取我的数据?你知道,所有这些东西,看看服务条款,你可以自己阅读,因为虽然我会说,无论我想说什么,如果它是安全的,它不是,没有人会相信。所以,自己阅读,然后你就会确切地知道,看看你是否对服务条款感到满意。当然,如果你想获得更多的 token,也有付费套餐。所以,当然,你进去,嗯,我之前展示过。只需前往 Gemini CLI,像我之前那样安装它,然后开始玩。对于那些可能不太习惯担心他们数据的人,如果你去使用免费套餐,去 Gemini CLI,你可以做我之前做过的生日派对的事情,对吧?那里真的没有个人信息,然后自己玩玩,看看它对你来说怎么样。>> 好的。对于那些想深入了解的人,我们刚刚推出了一个新的深度学习课程,对吧?你能分享一点吗?>> 是的,我们与深度学习合作,创建了一个短期课程。所以,我相信它不到一个半小时,只是通过 Gemini CLI 的各种东西来让你入门。我们确实深入研究了几个用例,比如开发人员、内容,嗯,制作内容,数据分析,我认为是另一个,还有作为学生,你之前问过关于学习的问题,所以我们确实深入研究了其中一些非开发者的用例,向你展示了你可以做很多事情的案例。所以,一定要看看深度学习课程。它是免费的,嗯,你可以学到更多关于 Gemini CLI 的知识。>> 好的。我们将在你观看的任何地方的描述中提供这些链接。我将在这里结束。我想说非常感谢丹尼斯来这里向大家展示如何开始使用 Gemini CLI。非常感谢所有观看直播的人。嗯,我们有一个重大的更新,实际上我想提一下。我们有一个新的倡议。这是一个新的学习计划,叫做 Gemini Enterprise Agent Ready。它叫做 Gear。嗯,你知道,AI 代理是过去十年中最大的转变。而 Gear 是你构建和扩展它们的新的主基地。所以,从“hello world”到生产,你将获得精选的学习路径、官方徽章,并与庞大的开发者社区联系。所以,一定要在线查看 Gear。然后说到连接,Google Cloud Next 即将到来。所以,它将于 4 月 22 日至 24 日在拉斯维加斯举行,注册现已开放,但你必须抓紧时间。早鸟价将在 3 天后结束,我们为你精心策划了一个令人难以置信的阵容,旨在在你旅程的任何阶段与你相遇。所以,请务必查看描述中的注册链接,在价格上涨之前抢购你的门票。好的,所以请查看描述中的所有链接,并继续关注下周关于 Gemini CLI 的更多信息。并确保在 YouTube、LinkedIn X、Dev2、Twitch 上关注我们,以获取更多关于我们直播的更新。我们下周见。