Gemini CLI安装及使用
一、Gemini CLI 概述
Gemini CLI 是一个开源的 AI 代理工具,由 Google 开发,旨在将 Gemini 模型的强大功能直接集成到开发者的终端中。它支持多种任务,包括代码生成、调试、测试用例生成等,特别适合处理复杂的编程需求。
个人开发者想要免费使用 Gemini CLI,只需使用个人 Google 账户登录即可获得免费的 Gemini Code Assist 许可证。该免费许可证允许您访问 Gemini 2.5 Pro 及其庞大的 100 万个token 上下文窗口,同时提供了业界最高的限额:每分钟 60 个模型请求,每天 1000 个请求。
二、Gemini CLI 与 网页版 的区别
Gemini-cli 是谷歌推出的终端版 AI 工具,与网页版 Gemini 主要区别在于使用场景和交互方式:
区别 | Gemini CLI | Gemini 网页版 |
---|---|---|
客户端类型 | 命令行界面工具,需通过终端运行 | 基于浏览器的 AI 服务,通过网页直接使用 |
功能定位 | 强调代码编写、调试及自动化开发流程,支持自然语言命令直接调用代码工具 | 暂未明确功能范围,但可能侧重问答、内容生成等场景 |
三、Gemini CLI 安装
3.1 GitHub地址
https://Github.com/google-gemini/gemini-cli
3.2 NodeJS下载及安装
确保已安装Node.js 18或更高版本。
下载完毕后,进行安装,建议不要安装到系统盘。笔者安装路径:D:\Program Files\nodejs
可通过 node -v
判断Node.js
是否正确安装。
注意:
要下载最新版本,否则会遇到版本问题
3.3 修改npm默认下载位置
修改 npm 的全局安装路径可以通过以下步骤完成,确保全局包(使用-g
安装的模块)和缓存文件存储到自定义路径。
3.3.1 自定义目录
在目标路径(D:\Program Files\nodejs
)下创建两个文件夹,分别用于存储全局模块和缓存文件:
3.3.2 配置npm的全局路径和缓存路径
# 设置全局路径
npm config set prefix "D:\Program Files\nodejs\npm_global"
# 设置缓存路径
npm config set cache "D:\Program Files\nodejs\npm_cache"
3.3.3 确认npm配置是否生效
# 查看全局路径
npm config get prefix
# 查看缓存路径
npm config get cache
3.4 下载Gemini-CLI
在终端中执行以下命令:
npx https://github.com/google-gemini/gemini-cli
或者使用以下命令安装:
npm install -g @google/gemini-cli
如果出现以下这种情况,则说明已经安装成功。
3.5 主题设置
在控制窗口(cmd
)中,输入:gemini
使用Tab
键对Select Theme
、Apply To
进行切换,使用上下(↑↓
)键进行选择,按Enter键,则设置选中。
3.6 生成 Gemini API 密钥
再次点击Enter后,出现Select Auth Method
,授权方式分为Login with Google
,Gemini API Key (AI Studio)
,Vertex AI
三种,笔者使用Gemini API Key (AI Studio)
。使用上下键选择“Gemini API Key(Ai Studio)”,点击Enter键。
操作此步骤,需要使用Google账号,从Google AI Studio创建密钥,否则,无法进行下一步。
3.7 设置环境变量
3.7.1 配置环境变量GEMINI_API_KEY
用于身份验证和授权调用 Google Gemini 模型服务。该密钥是申请 API 访问权限的凭证,通过 Google Cloud 平台创建后用于配置环境变量,确保 API 调用的合法性。
GEMINI_API_KEY='[API密钥]'
Windows电脑可通过环境变量进行配置。
3.7.2 配置环境变量GOOGLE_CLOUD_PROJECT
项目身份标识,代表用户在 Google Cloud 平台上的项目配置,需在 Google Cloud 控制台创建项目并启用 Vertex AI 服务。该参数关联项目权限、支付方式(如信用卡)及 API 调用配额分配。
GOOGLE_CLOUD_PROJECT='[项目ID]'
项目ID获取方式:
3.7.3 配置代理
由于地区限制,无法访问Google Gemini API,可通过配置代理解决此问题。
HTTP_PROXY=http://127.0.0.1:[代理端口]
HTTPS_PROXY=http://127.0.0.1:[代理端口]
代理需要配置的用户变量中。
代理端口获取方式:
代理端口的获取方式根据软件而定。
配置代理的原因:
如果不配置代码,将会出现:connect ETIMEDOUT(网络连接超时错误)
Error flushing log events: AggregateError[ETIMEDOUT]:at internalConnectMultiple(node: net: 1134: 18)
at afterConnectMultiple(node: net: 1715: 7) {code: 'ETIMEDOUT',[errors]: [Error: connect ETIMEDOUT 216.239 .36 .223: 443at createConnectionError(node: net: 1678: 14)at Timeout.internalConnectMultipleTimeout(node: net: 1737: 38)at listOnTimeout(node: internal / timers: 610: 11)at process.processTimers(node: internal / timers: 543: 7) {errno: -4039,code: 'ETIMEDOUT',syscall: 'connect',address: '216.239.36.223',port: 443},Error: connect ETIMEDOUT 216.239 .32 .223: 443at createConnectionError(node: net: 1678: 14)at Timeout.internalConnectMultipleTimeout(node: net: 1737: 38)at listOnTimeout(node: internal / timers: 610: 11)at process.processTimers(node: internal / timers: 543: 7) {errno: -4039,code: 'ETIMEDOUT',syscall: 'connect',address: '216.239.32.223',port: 443},Error: connect ETIMEDOUT 216.239 .38 .223: 443at createConnectionError(node: net: 1678: 14)at Timeout.internalConnectMultipleTimeout(node: net: 1737: 38)at listOnTimeout(node: internal / timers: 610: 11)at process.processTimers(node: internal / timers: 543: 7) {errno: -4039,code: 'ETIMEDOUT',syscall: 'connect',address: '216.239.38.223',port: 443},Error: connect ETIMEDOUT 216.239 .34 .223: 443at createConnectionError(node: net: 1678: 14)at afterConnectMultiple(node: net: 1708: 16) {errno: -4039,code: 'ETIMEDOUT',syscall: 'connect',address: '216.239.34.223',port: 443}]
}
macOS解决方式
注意:分环境
Base 需要写到.bash xxx文件
zsh 需要写到.zshrc 文件也可以直接写成环境变量:
# 代理设置
export HTTP_PROXY="http://127.0.0.1:[代理端口]"
export HTTPS_PROXY="http://127.0.0.1:[代理端口]"
export ALL_PROXY="http://127.0.0.1:[代理端口]"
四、Gemini CLI 使用
4.1 代码生成方式
Gemini CLI 可以通过自然语言提示(prompt)生成代码,支持以下主要方式:
1.直接生成代码
用户可以在终端输入自然语言描述,Gemini CLI 会根据描述生成相应的代码片段。
2.基于上下文的生成
Gemini CLI 可以利用当前项目目录中的代码文件作为上下文,生成更符合项目需求的代码。例如,切换到项目目录后运行:
cd my-project/
gemini
CLI 会分析项目中的相关文件(如.py
或.js
文件),生成与项目风格一致的代码。
3.多模态生成
Gemini CLI 支持多模态输入(例如PDF
或草图
),可以根据非代码输入生成代码。
4.2 代码生成步骤
1.进入项目目录(可选):如果需要基于现有代码库生成代码,切换到项目目录:
cd D:\Software\AIs\CasRel_RE\data
目录结构如下:
2.输入提示:在终端中输入自然语言提示,描述所需的代码。
请分析当前目录中的数据文件,并使用casrel算法,完成关系的抽取模型,包括数据处理、模型、模型训练、模型评估以及模型预测。
Gemini CLI 将返回生成的过程片段,例如:
3.接受或编辑代码:生成的代码会以文本形式显示在终端中。用户可以手动将其复制到代码文件中,或者使用 CLI 的文件操作功能直接插入(需要配置)。
4.上下文管理:如果需要更精确的代码生成,可以通过以下方式提供更多上下文:
在项目根目录中创建.gemini/styleguide.md
文件,指定代码风格(如命名规范、文档格式)。
使用.aiexclude
或.gitignore
文件排除不相关的文件,以优化上下文。
5.生成代码结果:生成的代码质量非常高。
五、与 IDE 集成的代码生成
Gemini CLI 的功能也可以通过 Gemini Code Assist 在支持的 IDE(如 VS Code、JetBrains IDE、Android Studio)中使用。
六、限制与注意事项
非确定性:AI 生成的代码可能不完全符合预期,可能需要多次提示或手动调整。
上下文限制:尽管支持 100 万 token 上下文窗口,但大型代码库可能需要通过 .aiexclude
文件优化上下文。
仅限 Python 执行:Gemini CLI 的代码执行功能(例如运行生成的代码以验证结果)仅支持 Python,且不支持文件 I/O 或非文本输出(如数据图)。
依赖外部工具:某些功能(如多模态生成)可能需要额外的工具或服务(如 Imagen、Veo)。
免费额度限制:免费用户每天有 1000 次请求限制,超出后需升级到付费计划(如 Google AI Studio 或 Vertex AI)。