当前位置: 首页 > news >正文

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 CLIGemini 网页版
客户端类型‌命令行界面工具,需通过终端运行基于浏览器的 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 ThemeApply 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)。

http://www.dtcms.com/a/266342.html

相关文章:

  • [代码学习] c++ 通过H矩阵快速生成图像对应的mask
  • trae设置插件市场url
  • 力扣 hot100 Day34
  • Flink Oracle CDC 环境配置与验证
  • Flink OceanBase CDC 环境配置与验证
  • PHP接单涨薪系列(九)之计算机视觉实战:PHP+Stable Diffusion接单指南(2025高溢价秘籍)
  • 技术与情感交织的一生 (九)
  • 因果语言模型、自回归语言模型、仅解码器语言模型都是同一类模型
  • shell编程之awk命令详解
  • 【CHNS】预后/随访 记录
  • 京东和蚂蚁集团寻求人民币稳定币的批准
  • Mac软件打开提示:已损坏,无法打开。您应该将它移到废纸娄 怎么解决?
  • 全星 QMS:制造业全面质量管理的数字化全能平台
  • 【1】确认安装 Node.js 和 npm版本号
  • vue create 和npm init 创建项目对比
  • OneCode图生代码技术深度解析:从可视化设计到注解驱动实现的全链路架构
  • 【效率提升教程】飞书自动化上传图片和文字
  • oltp系统中的数据库的设计严格遵守第三范式,具体怎么理解呢
  • 建设工程长期停工,停工损失如何计算,谁来承担。
  • 【JAVA】类和对象(一)
  • 实战精准压缩打包,通过 Sharp4ArchiveZip过滤指定支持目录与文件类型
  • 蚁群算法的原理及实现示例
  • 【C++详解】STL-list使用(三大特性之一封装详解、cpu高速缓存命中率)
  • 时序数据库TDEngine安装和使用
  • Docker拉取bladex 、 sentinel-dashboard
  • 永洪科技荣获商业智能品牌影响力奖,全力打造”AI+决策”引擎
  • Echarts3D柱状图-圆柱体-文字在柱体上垂直显示的实现方法
  • Spring Boot + 本地部署大模型实现:优化与性能提升
  • js请求避免缓存的三种方式
  • LiteHub中间件之限流实现