Gemini-FastAPI

GitHub
583 97 简单 1 次阅读 今天MIT插件
AI 解读 由 AI 自动生成,仅供参考

Gemini-FastAPI 是一款将谷歌 Gemini 网页版模型封装为 OpenAI 兼容接口的开源工具。它巧妙利用网页 Cookie 进行身份验证,让用户无需申请官方 API Key 即可免费调用 Gemini 的强大能力,有效解决了个人开发者因缺乏付费密钥或区域限制而无法便捷使用大模型的痛点。

该项目特别适合希望低成本集成 AI 功能的开发者、需要进行多轮对话实验的研究人员,以及想要搭建私有化 AI 服务的技术爱好者。其核心亮点在于完全兼容 OpenAI 的 API 标准,这意味着现有的基于 OpenAI 开发的应用只需修改接口地址,即可无缝切换至 Gemini 模型。此外,Gemini-FastAPI 原生支持多模态交互(文本、图片及文件上传)、实时联网搜索获取最新信息,并具备基于 LMDB 的对话持久化存储功能。对于高并发场景,它还提供了多账号负载均衡与代理配置支持,确保服务稳定运行。通过简单的 Docker 部署或 Python 环境配置,用户即可快速搭建属于自己的高性能 AI 网关。

使用场景

某初创团队正在开发一款集成实时新闻搜索与多模态分析的智能客服机器人,急需低成本接入具备联网能力的大模型。

没有 Gemini-FastAPI 时

  • 资金压力巨大:团队必须申请并绑定信用卡获取 Google API Key,按 Token 付费的模式让高频调用的测试阶段成本失控。
  • 架构改造繁琐:现有代码库基于 OpenAI 标准接口构建,若要切换至原生 Gemini SDK,需重构大量请求逻辑和参数处理代码。
  • 功能实现受限:原生接口配置复杂,难以快速启用谷歌搜索获取最新资讯,且多轮对话的状态持久化需要自行搭建数据库中间件。
  • 并发瓶颈明显:单账号调用频率受限,缺乏内置的负载均衡机制,一旦流量激增容易导致服务中断或触发风控。

使用 Gemini-FastAPI 后

  • 零成本自由调用:仅需提取网页 Cookie 即可完全免费调用 Gemini 模型,无需 API Key,彻底消除了测试期的资金门槛。
  • 无缝平滑迁移:利用其兼容 OpenAI 的 API 特性,团队无需修改任何业务代码,直接将基址指向本地服务即可复用原有架构。
  • 开箱即用的高级特性:直接通过标准参数开启联网搜索获取实时答案,并自动利用内置 LMDB 存储实现多轮对话记忆,大幅简化开发流程。
  • 弹性负载支撑:通过配置多个 Google 账号凭证及代理设置,轻松实现请求的分发与负载均衡,稳定支撑高并发场景。

Gemini-FastAPI 通过“免密钥 + 协议兼容”的创新模式,让开发者能以零成本、低门槛将 Gemini 强大的联网与多模态能力瞬间融入现有系统。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

不需要 GPU

内存

未说明

依赖
notes该工具无需 API Key,但需要用户提供 Google 账号的 Web Cookie(__Secure-1PSID 和 __Secure-1PSIDTS)进行身份验证。支持 Docker 部署,建议挂载数据卷以持久化对话记录和 Cookie。可通过环境变量覆盖配置文件中的敏感信息。
python3.13+
FastAPI>=0.115
uv
LMDB
Gemini-FastAPI hero image

快速开始

Gemini-FastAPI

Python 3.13 FastAPI License

[ English | 中文 ]

基于Web的Gemini模型,封装成与OpenAI兼容的API。由HanaokaYuzu/Gemini-API提供支持。

✅ 无需API密钥即可通过API调用Gemini的Web模型,完全免费!

特性

  • 🔐 无需Google API密钥:使用Web Cookie即可免费通过API访问Gemini模型。
  • 🔍 内置Google搜索:利用Gemini的网络搜索能力获取最新答案。
  • 💾 对话持久化:基于LMDB的存储,支持多轮对话。
  • 🖼️ 多模态支持:支持文本、图片及文件上传。
  • ⚖️ 多账号负载均衡:可通过每个账号的代理设置,将请求分发到多个账号。

快速开始

关于Docker部署,请参阅下方的[Docker部署]部分。

前提条件

  • Python 3.13
  • 拥有Gemini网页版访问权限的Google账号
  • 来自Gemini网页界面的secure_1psidsecure_1psidts Cookie

安装

使用uv(推荐)

git clone https://github.com/Nativu5/Gemini-FastAPI.git
cd Gemini-FastAPI
uv sync

使用pip

git clone https://github.com/Nativu5/Gemini-FastAPI.git
cd Gemini-FastAPI
pip install -e .

配置

编辑config/config.yaml文件,并至少提供一组凭证:

gemini:
  clients:
    - id: "client-a"
      secure_1psid: "YOUR_SECURE_1PSID_HERE"
      secure_1psidts: "YOUR_SECURE_1PSIDTS_HERE"
      proxy: null # 可选代理URL(null/空则保持直连)

[!NOTE] 更多详情请参阅下方的[配置]部分。

启动服务器

# 使用uv
uv run python run.py

# 直接使用Python
python run.py

服务器默认将在http://localhost:8000启动。

API端点

服务器提供了多个端点,其中包括与OpenAI兼容的端点。

OpenAI兼容端点

这些端点设计为与OpenAI的API结构兼容,允许您将Gemini作为直接替代品使用。

  • GET /v1/models:列出所有支持的Gemini模型。
  • POST /v1/chat/completions:统一的聊天接口。
    • 流式传输:设置stream: true以实时接收增量内容。
    • 多模态:支持文本、图片和文件上传。
    • 工具调用:通过tools参数支持函数调用。
    • 结构化输出:支持response_format以强制执行JSON模式。

高级端点

  • POST /v1/responses:用于复杂交互模式的替代端点,支持丰富的输出内容,包括生成的图片和工具调用。

工具端点

  • GET /health:健康检查端点。返回服务器状态、已配置的Gemini客户端以及对话存储情况。
  • GET /images/{filename}:用于服务生成图片的内部端点。需要有效的令牌(自动包含在API返回的图片URL中)。

Docker部署

带选项运行

docker run -p 8000:8000 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/cache:/app/cache \
  -e CONFIG_SERVER__API_KEY="your-api-key-here" \
  -e CONFIG_GEMINI__CLIENTS__0__ID="client-a" \
  -e CONFIG_GEMINI__CLIENTS__0__SECURE_1PSID="your-secure-1psid" \
  -e CONFIG_GEMINI__CLIENTS__0__SECURE_1PSIDTS="your-secure-1psidts" \
  -e GEMINI_COOKIE_PATH="/app/cache" \
  ghcr.io/nativu5/gemini-fastapi

[!TIP] 仅当需要代理时才添加CONFIG_GEMINI__CLIENTS__N__PROXY;省略该变量则保持直连。

GEMINI_COOKIE_PATH指向容器内存储刷新后Cookie的目录。将其绑定挂载(例如-v $(pwd)/cache:/app/cache)可在容器重建或重新创建时保留这些Cookie,从而减少重新认证的需求。

使用Docker Compose运行

创建一个docker-compose.yml文件:

services:
  gemini-fastapi:
    image: ghcr.io/nativu5/gemini-fastapi:latest
    ports:
      - "8000:8000"
    volumes:
      # - ./config:/app/config      # 如需使用自定义配置文件,请取消注释
      # - ./certs:/app/certs        # 如需启用HTTPS并使用您的证书,请取消注释
      - ./data:/app/data
      - ./cache:/app/cache
    environment:
      - CONFIG_SERVER__HOST=0.0.0.0
      - CONFIG_SERVER__PORT=8000
      - CONFIG_SERVER__API_KEY=${API_KEY}
      - CONFIG_GEMINI__CLIENTS__0__ID=client-a
      - CONFIG_GEMINI__CLIENTS__0__SECURE_1PSID=${SECURE_1PSID}
      - CONFIG_GEMINI__CLIENTS__0__SECURE_1PSIDTS=${SECURE_1PSIDTS}
      - GEMINI_COOKIE_PATH=/app/cache # 必须与上述缓存卷挂载一致
    restart: on-failure:3 # 避免过多重试

然后运行:

docker compose up -d

[!IMPORTANT] 务必挂载/app/data卷,以在容器重启时持久化对话数据。 同时挂载/app/cache,以便刷新后的Cookie(包括轮换的1PSIDTS值)能够在容器重建或重新创建时保留,而无需再次认证。

配置

服务器会读取位于config/config.yaml的YAML配置文件。

有关每个配置选项的详细信息,请参阅config/config.yaml文件中的注释。

环境变量覆盖

[!TIP] 此功能对于Docker部署和生产环境特别有用,在这些环境中您希望将敏感凭据与配置文件分开存放。

您可以使用带有CONFIG_前缀的环境变量来覆盖任何配置选项。使用双下划线(__)表示嵌套键,例如:

# 覆盖服务器设置
export CONFIG_SERVER__API_KEY="your-secure-api-key"

# 覆盖Gemini客户端0的凭据
export CONFIG_GEMINI__CLIENTS__0__ID="client-a"
export CONFIG_GEMINI__CLIENTS__0__SECURE_1PSID="your-secure-1psid"
export CONFIG_GEMINI__CLIENTS__0__SECURE_1PSIDTS="your-secure-1psidts"

# 覆盖客户端0的可选代理设置
export CONFIG_GEMINI__CLIENTS__0__PROXY="socks5://127.0.0.1:1080"

# 覆盖对话存储大小限制
export CONFIG_STORAGE__MAX_SIZE=268435456  # 256 MB

客户端ID与对话复用

对话会根据生成它们的客户端ID进行存储。 请在配置中保持这些标识符稳定,以便在更新Cookie列表时会话仍能有效。

Gemini 凭证

[!WARNING] 请妥善保管这些凭证,切勿将其提交到版本控制系统中。这些 Cookie 可用于访问您的 Google 帐户。

要使用 Gemini-FastAPI,您需要提取 Gemini 会话的 Cookie:

  1. 在浏览器的隐私/无痕窗口中打开 Gemini 并登录。
  2. 打开开发者工具(F12)。
  3. 导航至 ApplicationStorageCookies
  4. 找到并复制以下值:
    • __Secure-1PSID
    • __Secure-1PSIDTS

[!TIP] 如需详细说明,请参阅 HanaokaYuzu/Gemini-API 身份验证指南

代理设置

每个客户端条目都可以配置不同的代理,以绕过速率限制。如果省略 proxy 字段,或将该字段设置为 null 或空字符串,则保持直接连接。

聊天会话模式

您可以控制请求是使用常规 Google 聊天,还是使用 Google 的临时聊天模式:

gemini:
  chat_mode: "normal" # "normal"(复用元数据)或 "temporary"(Google 临时聊天,不会保存到帐户)
  max_chars_per_request: 1000000
  oversized_context_strategy: "compaction" # "compaction" 或 "file"

chat_mode 设置为 temporary 时,服务器会应用一个内部有效输入限制,即 max_chars_per_request 的 90%。当上下文超出有效预算时,处理方式由 oversized_context_strategy 控制:

  • compaction:总结较早的对话轮次,并原样保留最近的对话轮次。
  • file:将过大的上下文作为 message.txt 文件附加,并从文件中进行处理。

环境变量等效项:

export CONFIG_GEMINI__CHAT_MODE="temporary"
export CONFIG_GEMINI__MAX_CHARS_PER_REQUEST=1000000
export CONFIG_GEMINI__OVERSIZED_CONTEXT_STRATEGY="compaction"

自定义模型

您可以在 config/config.yaml 中或通过环境变量定义自定义模型。

YAML 配置

gemini:
  model_strategy: "append" # "append"(默认 + 自定义)或 "overwrite"(仅自定义)
  models:
    - model_name: "gemini-3.0-pro"
      model_header:
        x-goog-ext-525001261-jspb: '[1,null,null,null,"9d8ca3786ebdfbea",null,null,0,[4],null,null,1]'

环境变量

您可以通过 CONFIG_GEMINI__MODELS 以 JSON 字符串或列表结构提供模型。这种方式提供了灵活的方法,允许通过 Shell 或自动化环境(例如 Docker)覆盖设置,而无需修改配置文件。

export CONFIG_GEMINI__MODEL_STRATEGY="overwrite"
export CONFIG_GEMINI__MODELS='[{"model_name": "gemini-3.0-pro", "model_header": {"x-goog-ext-525001261-jspb": "[1,null,null,null,\"9d8ca3786ebdfbea\",null,null,0,[4],null,null,1]"}}]'

致谢

  • HanaokaYuzu/Gemini-API - 底层的 Gemini Web API 客户端。
  • zhiyu1998/Gemi2Api-Server - 本项目最初源自该仓库。经过大量重构和工程改进后,它已发展成为一个独立项目,具备多轮对话复用等增强功能。特别感谢其提供的灵感和基础工作。

免责声明

本项目与 Google 或 OpenAI 无关,仅用于教育和研究目的。该项目使用逆向工程的 API,可能不符合 Google 的服务条款。请自行承担使用风险。

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.7k|★★★☆☆|今天
语言模型Agent开发框架

gpt4free

gpt4free 是一个由社区驱动的开源项目,旨在聚合多种可访问的大型语言模型(LLM)和媒体生成接口,让用户能更灵活、便捷地使用前沿 AI 能力。它解决了直接调用各类模型时面临的接口分散、门槛高或成本昂贵等痛点,通过统一的标准将不同提供商的资源整合在一起。 无论是希望快速集成 AI 功能的开发者、需要多模型对比测试的研究人员,还是想免费体验最新技术的普通用户,都能从中受益。gpt4free 提供了丰富的使用方式:既包含易于上手的 Python 和 JavaScript 客户端库,也支持部署本地图形界面(GUI),更提供了兼容 OpenAI 标准的 REST API,方便无缝替换现有应用后端。 其技术亮点在于强大的多提供商支持架构,能够动态调度包括 Opus、Gemini、DeepSeek 等多种主流模型资源,并支持 Docker 一键部署及本地推理。项目秉持社区优先原则,在降低使用门槛的同时,也为贡献者提供了扩展新接口的便利框架,是探索和利用多样化 AI 资源的实用工具。

66k|★★☆☆☆|2天前
插件语言模型Agent

gstack

gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置,旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战,gstack 提供了一套标准化解决方案,帮助开发者实现堪比二十人团队的高效产出。 这套配置特别适合希望提升交付效率的创始人、技术负责人,以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具,涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令(如 `/review` 进行代码审查、`/qa` 执行测试、`/plan-ceo-review` 规划功能),即可自动化处理从需求分析到部署上线的全链路任务。 所有操作基于 Markdown 和斜杠命令,无需复杂配置,完全免费且遵循 MIT 协议。gstack 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。

65k|★★☆☆☆|今天
Agent插件

meilisearch

Meilisearch 是一个开源的极速搜索服务,专为现代应用和网站打造,开箱即用。它能帮助开发者快速集成高质量的搜索功能,无需复杂的配置或额外的数据预处理。传统搜索方案往往需要大量调优才能实现准确结果,而 Meilisearch 内置了拼写容错、同义词识别、即时响应等实用特性,并支持 AI 驱动的混合搜索(结合关键词与语义理解),显著提升用户查找信息的体验。 Meilisearch 特别适合 Web 开发者、产品团队或初创公司使用,尤其适用于需要快速上线搜索功能的场景,如电商网站、内容平台或 SaaS 应用。它提供简洁的 RESTful API 和多种语言 SDK,部署简单,资源占用低,本地开发或生产环境均可轻松运行。对于希望在不依赖大型云服务的前提下,为用户提供流畅、智能搜索体验的团队来说,Meilisearch 是一个高效且友好的选择。

57k|★★☆☆☆|今天
图像Agent数据工具

awesome-claude-skills

awesome-claude-skills 是一个精心整理的开源资源库,旨在帮助用户挖掘和扩展 Claude AI 的潜力。它不仅仅是一份列表,更提供了实用的“技能(Skills)”模块,让 Claude 从单纯的文本生成助手,进化为能执行复杂工作流的智能代理。 许多用户在使用 AI 时,常受限于其无法直接操作外部软件或处理特定格式文件的痛点。awesome-claude-skills 通过预设的工作流解决了这一问题:它不仅能教会 Claude 专业地处理 Word、PDF 等文档,进行代码开发与数据分析,还能借助 Composio 插件连接 Slack、邮箱及数百种常用应用,实现发送邮件、创建任务等自动化操作。这使得重复性任务变得标准化且可复用,极大提升了工作效率。 无论是希望优化日常办公流程的普通用户、需要处理复杂文档的研究人员,还是寻求将 AI 深度集成到开发管线中的开发者,都能从中找到适合的解决方案。其独特的技术亮点在于“技能”的可定制性与强大的应用连接能力,让用户无需编写复杂代码,即可通过简单的配置让 Claude 具备跨平台执行真实任务的能力。如果你希望让 Claude

51.3k|★★☆☆☆|昨天
Agent插件