掘金 人工智能 07月28日 00:48
AI - Gemini CLI 摆脱终端限制
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了如何利用 Google Gemini CLI,通过 Cloudflare Workers 将其转换为 OpenAI 兼容的 API 服务。文章首先指导用户安装和配置 Gemini CLI,包括获取 OAuth 凭据和设置环境变量。随后,重点讲解了如何将 gemini-cli-openai 项目部署到 Cloudflare Workers,包括创建 KV 存储、设置环境变量秘密(GCP_SERVICE_ACCOUNT 和 OPENAI_API_KEY)以及最终的部署过程。成功部署后,用户可以获得一个类似 OpenAI API 的访问地址,方便集成到各种支持 OpenAI API 的工具或应用中,例如 Roo Code。

🚀 **Gemini CLI 免费使用 Gemini 2.5 Pro**:Google 推出了开源的 Gemini CLI,为开发者提供了大量免费使用 Gemini 2.5 Pro 的额度,每分钟 60 次,每日最多 1000 次,这为个人开发者带来了极大的便利。

💡 **将 Gemini CLI 转换为 OpenAI 兼容服务**:文章的核心在于指导用户如何通过 Cloudflare Workers 将 Gemini CLI 的功能转变为 OpenAI 兼容的 API。这意味着用户可以利用现有支持 OpenAI API 的工具(如 Roo Code)来调用 Gemini 模型,突破了 Gemini CLI 仅限于终端使用的限制。

🔧 **详细的安装与配置步骤**:文章提供了清晰的安装步骤,包括 Node.js 环境要求、全局安装 gemini-cli。并详细说明了如何进行 OAuth 认证,包括启用 API、获取项目 ID、设置环境变量以及通过 Google 账户登录授权,确保用户能够成功配置 Gemini CLI。

☁️ **Cloudflare Workers 部署详解**:成功将 Gemini CLI 部署到 Cloudflare Workers 是实现 OpenAI 兼容的关键。这包括克隆项目、安装依赖、创建 KV 命名空间、设置 GCP 服务账号和 OpenAI API 密钥作为 Worker 的秘密,最终通过 `wrangler deploy` 命令完成部署,并获得一个可访问的 Worker 域名。

✅ **无缝接入第三方工具**:部署完成后,用户可以获得一个类似 `https://gemini-cli-worker.lxf.workers.dev/v1` 的 API 地址,并将其配置到支持 OpenAI API 的工具中,如 Roo Code。通过设置基础 URL 和 API 密钥,即可调用 Gemini 模型,实现更广泛的应用集成。

欢迎关注微信公众号:FSA全栈行动 👋

一、概述

不久前,谷歌推出了开源的 AI 代理 Gemini CLI,它为个人开发者提供了近乎无上限的免费使用 Gemini 2.5 Pro 的额度,每分钟 60 次,每日最多可达 1,000 次的模型执行额度,且完全免费!

Gemini 2.5 Pro 在编码上的能力,我们可以参考 web.lmarena.ai/leaderboard 上查看排名。

而这么牛的模型,只能运行在终端这个小框框里实属可惜,所以本文将介绍如何使其 OpenAI-compatible 化,从而摆脱终端限制。

注:该方案本人主号已稳定使用一个多月,不过如果你有小号的话还是建议使用小号~

二、安装

环境前提,需要已经安装 Node.js,并且版本 ≥ 20

全局安装 gemini-cli

pnpm install -g @google/gemini-cli

注:我自己使用的包管理工具是 pnpm,你可以使用 Node.js 自带的 npm

三、授权认证

启用 API

使用 OAuth 凭据文件认证的方式,先打开如下链接

cloud.google.com/gemini/docs…

点击写着 前往 Gemini for Google Cloud 的蓝色大按钮。

在跳转至另一个页面后,点击左上角的 选择项目 进行选择。

接着查看地址栏里的链接,如下

console.cloud.google.com/marketplace…

找到 project 参数,即 项目 ID,记下它的值,如这里的 linxunfeng

再点击蓝色按钮 启用

没有项目则自行创建一个

项目名称项目 ID 根据你自己的情况去填写

如果你之前就启用过,则会显示 API已启用,如图所示

配置

打开终端,新增环境变量 GOOGLE_CLOUD_PROJECT,值为 project 的值,如上 linxunfeng

export GOOGLE_CLOUD_PROJECT="linxunfeng"

source 配置文件或重启终端,运行 gemini

# source 你自己的配置文件source ~/.zshrcgemini

会让你选择主题,这里随意,看你喜欢~

接下来是认证方式,选择 Login with Google

会自动打开浏览器页面,按要求登录授权即可

授权成功后的页面会显示如下内容

再回到终端,你会发现已经可以正常使用 gemini

如果你没有执行过上述的 前置操作,终端内会遇到如下提示

Failed to login. Message: This account requires setting the GOOGLE_CLOUD_PROJECT env var. See https://goo.gle/gemini-cli-auth-docs#workspace-gca

如果遇到了按上述的 前置操作 操作一遍即可~

完成后查看 ~/.gemini/oauth_creds.json

cat ~/.gemini/oauth_creds.json

文件内容如下所示

{  "access_token": "lxf",  "refresh_token": "lxf",  "scope": "lxf",  "token_type": "Bearer",  "id_token": "lxf",  "expiry_date": 1751011026383}

四、OpenAI-compatible

接下来部署项目 github.com/GewoonJaap/…Cloudflare

项目拉取

git clone https://github.com/GewoonJaap/gemini-cli-openai.gitcd gemini-cli-openai

安装依赖

安装项目依赖

pnpm i

全局安装 wrangler

pnpm install -g wrangler

创建 KV 存储

wrangler kv namespace create "GEMINI_CLI_KV"

在执行这行命令时,如果你还没有授权过 Cloudflare,会出现如下提示,并会自动打开浏览器,不要慌,按提示登录授权即可。

Attempting to login via OAuth...Opening a link in your default browser: https://dash.cloudflare.com/oauth2/auth?xxx
Successfully logged in.Resource location: remote🌀 Creating namespace with title "GEMINI_CLI_KV"✨ Success!Add the following to your configuration file in your kv_namespaces array:[[kv_namespaces]]binding = "GEMINI_CLI_KV"id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

将上述最后一行的 id 值,替换掉 wrangler.toml 中的 GEMINI_CLI_KV,如

kv_namespaces = [  { binding = "GEMINI_CLI_KV", id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }]

认证信息

wrangler secret put GCP_SERVICE_ACCOUNT

执行后会让你输入,这里就需要用到 ~/.gemini/oauth_creds.json 里的数据,不过这里面的 JSON 数据是多行的,而命令行只接收单行数据,所以需要我们先将其压缩成一行。

你可以谷歌在线压缩 JSON 的工具去处理,也可以像我一样用 jq

# 安装 jqbrew install jq# 压缩 jsonjq -c . < ~/.gemini/oauth_creds.json > output.json# 或者cat ~/.gemini/oauth_creds.json | jq -c . > output.json

output.json 内已经压缩好的 JSON 复制后粘贴即可~

✔ Enter a secret value: … ***************************** *****************************...🌀 Creating the secret for the Worker "gemini-cli-worker" ✔ There doesn't seem to be a Worker called "gemini-cli-worker". Do you want to create a new Worker with that name and add secrets to it? … yes🌀 Creating new Worker "gemini-cli-worker"...✨ Success! Uploaded secret GCP_SERVICE_ACCOUNT

密钥

访问该服务时所需的密钥,防止别人随意使用你的 Gemini CLI

wrangler secret put OPENAI_API_KEY
✔ Enter a secret value: … ********************🌀 Creating the secret for the Worker "gemini-cli-worker" ✨ Success! Uploaded secret OPENAI_API_KEY

部署

pnpm run deploy

输出如下内容

> gemini-cli-worker@1.0.0 deploy /path/to/gitHub/gemini-cli-openai> wrangler deployCloudflare collects anonymous telemetry about your usage of Wrangler. Learn more at https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler/telemetry.md ⛅️ wrangler 4.22.0───────────────────Total Upload: 102.28 KiB / gzip: 24.22 KiBWorker Startup Time: 13 msYour Worker has access to the following bindings:Binding                                                   Resource          env.GEMINI_CLI_KV (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)      KV Namespace      Uploaded gemini-cli-worker (4.07 sec)Deployed gemini-cli-worker triggers (0.81 sec)  https://gemini-cli-worker.lxf.workers.devCurrent Version ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

五、使用

如上述部署完成后,会输出类似这种域名链接 https://gemini-cli-worker.lxf.workers.dev,访问后页面显示如下内容说明搭建成功。

{"name":"Gemini CLI OpenAI Worker","description":"OpenAI-compatible API for Google Gemini models via OAuth","version":"1.0.0","authentication":{"required":true,"type":"Bearer token in Authorization header"},"endpoints":{"chat_completions":"/v1/chat/completions","models":"/v1/models","debug":{"cache":"/v1/debug/cache","token_test":"/v1/token-test","full_test":"/v1/test"}},"documentation":"https://github.com/gewoonjaap/gemini-cli-openai"}

我们在链接后面拼上 /v1 就可以使用了

如图,这里以 Roo Code 为例,新增一个配置文件,选择 OpenAI Compatible,填写基础 URL 和密钥,然后点击模型,会自动列出所有支持的模型,选择你需要的模型后保存就可以使用了。

如果文章对您有所帮助, 请不吝点击关注一下我的微信公众号:FSA全栈行动, 这将是对我最大的激励. 公众号不仅有 iOS 技术,还有 AndroidFlutterPython 等文章, 可能有你想要了解的技能知识点哦~

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Gemini CLI Cloudflare Workers OpenAI 兼容 AI 服务 Google Gemini
相关文章