geminicli2api
扫码查看

将谷歌Gemini命令行工具封装为OpenAI兼容的API

geminicli2api

综合介绍

Gemini CLI to API 是一类开源项目的统称。这类项目的主要功能是将Google官方提供的Gemini命令行工具(CLI)封装成一个Web API服务。这样做的核心目的是为了解决一个具体问题:许多开发者和应用程序已经深度集成了OpenAI的API格式,但他们也希望利用Google Gemini Pro模型每天提供的免费查询额度。直接使用Gemini的官方SDK或API需要改动现有代码,并且付费版的定价对某些开发者来说可能较高。

这类转换器项目通过创建一个中间服务来运作。这个服务会接收标准格式的API请求(通常是模仿OpenAI的格式),然后在后台调用Gemini的命令行工具来执行这些请求,最后将命令行工具返回的结果重新包装成API响应格式送回给客户端。通过这种方式,用户无需修改原有的客户端代码,就能将请求无缝切换到Gemini模型,从而在个人项目或应用原型中实现近乎零成本的AI功能集成。

功能列表

  • OpenAI API格式兼容:提供与OpenAI v1/chat/completions 接口几乎一致的API端点,支持流式和非流式响应。
  • 免费使用Gemini Pro:通过调用Gemini CLI,利用个人Google账户的免费额度(每日可达1000次请求)来处理API请求。
  • 支持多模态输入:继承Gemini的能力,部分实现支持处理文本和图像输入。
  • 易于部署和集成:通常作为轻量级的Web应用(如使用Python FastAPI)或部署在serverless平台(如Cloudflare Workers)上,方便快速启动。
  • 生态工具兼容:可以让现有支持OpenAI API的各类应用,例如OpenWeb UILiteLLM等,直接使用Gemini作为后端。

使用帮助

由于无法访问具体的项目,以下内容将基于同类工具的通用工作流程,为您提供一份详细的操作指南。这个指南将引导您理解并搭建一个类似的系统。

第一步:准备核心工具(Gemini CLI)

在使用任何封装工具之前,您必须先在您的系统中成功安装和配置Google官方的Gemini CLI。这是整个系统的基础。

  • 安装环境依赖
    • 根据官方文档,Gemini CLI需要在Node.js** 20或更高版本环境中运行。 请先确保您的系统中已安装了符合要求的Node.js。您可以在终端中运行 node -v 来检查版本。**
  • 安装Gemini CLI
    • 打开您的终端(命令行工具)。
    • 执行官方提供的npx命令来运行或安装Gemini CLI。一个常见的安装命令是:Generated bash
      npm install -g @google/gemini-cli
      
    • 安装完成后,在终端输入 gemini 来启动它。
  • 用户认证
    • 首次运行 gemini 命令时,它会引导您进行配置,包括选择界面主题和进行身份验证。
    • 最重要的步骤是“Authenticate”(认证)。系统会提示您使用个人Google账户登录。
    • 完成登录授权后,您的CLI工具就获得了与您的谷歌账户关联的免费调用额度(例如,每天1000次请求,每分钟60次请求)。这是后续API能够免费使用的关键。
    • 确保您可以在终端中通过 gemini 命令与AI进行正常的对话,这代表核心工具已准备就绪。

第二步:部署API转换器服务

这是将CLI能力暴露为网络服务的核心步骤。您需要下载一个类似geminicli2api的开源项目并运行它。

  • 获取项目代码
    • 您需要从GitHub等代码托管平台找到一个合适的转换器项目。
    • 使用git命令将项目克隆到您的本地电脑或服务器上。示例命令如下:Generated bash
      git clone https://github.com/some-developer/gemini-cli-to-api-project.git
      

      IGNORE_WHEN_COPYING_START

      ** content_copy ** download

      Use code with caution. BashIGNORE_WHEN_COPYING_END

  • 安装项目依赖
    • 进入项目目录:cd gemini-cli-to-api-project。
    • 这类项目通常使用Python构建。您需要根据项目提供的requirements.txt文件安装所需的Python库。Generated bash
      pip install -r requirements.txt
      

      IGNORE_WHEN_COPYING_START

      ** content_copy ** download

      Use code with caution. BashIGNORE_WHEN_COPYING_END

  • 配置与运行
    • 根据项目文档,您可能需要进行少量配置,例如指定服务运行的端口号。
    • 启动API服务。如果项目基于FastAPI,启动命令通常如下:Generated bash
      uvicorn main:app --host 0.0.0.0 --port 8000
      

      IGNORE_WHEN_COPYING_START

      ** content_copy ** download

      Use code with caution. BashIGNORE_WHEN_COPYING_END

    • 服务启动后,它会在本地 8000 端口监听API请求。您可以通过浏览器访问 http://localhost:8000/docs 来查看API文档(如果项目提供了Swagger UI)。

第三步:在客户端应用中使用API

现在,您可以将任何支持OpenAI API的客户端指向您刚刚部署的服务。

  • 获取API地址
    • 您的API服务地址是 http://<您的服务器IP地址>:8000。
    • API的端点通常是 /v1/chat/completions,以模仿OpenAI的结构。
  • 修改客户端配置
    • 在您的客户端应用(如一个聊天机器人、翻译工具或代码助手)的设置中,将API的基础URL(base_url)修改为您的服务地址。
    • 将API密钥(api_key)设置为任意字符串,因为这类社区项目通常不对此进行验证。
  • 发送请求示例
    • 您也可以使用curl等工具直接测试API。以下是一个向您的服务发送聊天请求的示例:

    Generated bash

    curl -X POST http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer no-key" \
    -d '{
    "model": "gemini-pro",
    "messages": [
    {
    "role": "user",
    "content": "你好,请介绍一下你自己。"
    }
    ],
    "stream": false
    }'
    

    IGNORE_WHEN_COPYING_START

    ** content_copy ** download

    Use code with caution. BashIGNORE_WHEN_COPYING_END

通过以上三个步骤,您就成功地将一个本地的、命令行的AI工具,转变成了一个网络化的、可供其他程序调用的API服务,并巧妙地利用了其免费额度。

应用场景

  • 个人项目集成对于个人开发者或小型团队,在开发聊天机器人、内容生成工具或智能助手等应用时,可以使用此方法免费集成强大的Gemini模型,无需承担高昂的API费用。
  • 原型快速验证当需要快速验证一个需要大语言模型功能的产品想法时,可以利用此方案搭建一个功能齐全的后端,从而将精力集中在前端和用户体验的开发上。
  • 兼容现有生态许多优秀的开源AI应用(如LobeChatNextChat)默认支持OpenAI API。通过此方案,用户无需等待这些应用官方适配Gemini,即可立即将它们连接到Gemini模型上使用。

QA

  • 这个API是Google官方提供的吗?不是。这类项目是第三方开发者创建的开源工具,它本质上是一个“包装器”或“代理”。它通过在后台自动化调用Google官方的gemini-cli命令行工具来实现功能,并非官方的API服务。
  • 使用这个API真的完全免费吗?有什么限制?是的,在Gemini CLI提供的免费额度内是免费的。 限制主要有两个:首先是请求频率和总量受限于您Google账户的免费额度(例如,每分钟60次,每天1000次);其次,由于增加了一个中间转换层,其稳定性和响应速度理论上会略低于直接调用官方付费API。
  • 这种方法是否稳定?会因为Google的更新而失效吗?这种方法的稳定性依赖于非官方的gemini-cli工具。如果Google更新了CLI的认证方式或命令参数,这个API转换器项目就可能需要同步更新代码才能继续工作。因此,它更适合用于个人项目、学习和功能原型,而不建议直接用于需要高稳定性的商业生产环境。
微信微博Email复制链接