Gemini Balance:全面指南与实践 —— Gemini API 代理与负载均衡最佳实践
TL;DR
Gemini Balance 是基于 Python FastAPI 打造的高可用 Gemini API 代理与负载均衡解决方案,支持多 Key 轮询、token 计数、图像生成、联网搜索及 OpenAI 兼容接口,提供可视化管理与实时监控,助力稳定、灵活地扩展 AI 服务。
目录
项目概述
Gemini Balance 致力于简化并强化对 Google Gemini API 的调用与管理。通过多 Key 轮询与负载均衡,解决单 Key 并发瓶颈;集成 token 计数接口,优化成本控制;并兼容 OpenAI 格式,轻松迁移或并行使用多种 LLM 服务。无论是小规模开发测试,还是生产级大规模部署,均可满足高可用、高性能需求。
核心功能与技术亮点
-
多 Key 负载均衡:自动轮询多个 Gemini API Key,支持失败重试与 Key 健康检查,提升并发能力与容错率。 -
Token 统计接口:新增 /models/{model_name}:countTokens
,可在发送请求前精准计算输入 token 数量,助力成本管控。 -
双协议兼容:原生支持 Gemini 与 OpenAI API 格式,前端调用一套接口,后台智能转发与适配。 -
图像生成与编辑:内置 IMAGE_MODELS
管理,可调用 Gemini 图文对话、修改图片功能,也可通过 OpenAI 画图接口扩展。 -
联网搜索能力:指定 SEARCH_MODELS
即可启用实时联网检索,提升模型回答的时效性与准确度。 -
可视化管理与监控:Web 控制面板无缝在线配置与生效,实时查看各 Key 状态、调用日志与性能指标。 -
安全与稳定:支持 HTTPS(mkcert 证书)、Proxy 设置、防止 DNS 循环;在生产环境中可禁用本地绕过认证。 -
完善的本地开发体验:提供 Docker 多架构镜像、详细 nginx 与 SSL 配置、快速启动 & 调试指南。
架构与模块分层
app/
├── config/ # 环境与运行时配置管理
├── core/ # FastAPI 应用实例与中间件
├── database/ # ORM 模型与连接
├── router/ # Gemini、OpenAI、状态页等路由
├── service/ # 聊天、Key 管理与统计服务
├── scheduler/ # 定时健康检查与恢复任务
├── utils/ # 日志、异常与工具函数
└── main.py # 应用入口
每个模块职责清晰,方便定制与扩展,让团队能够快速定位功能、添加新特性或替换底层模型。
快速上手:Docker 与本地开发
1. Docker 部署(推荐)
-
构建镜像
docker build -t gemini-balance .
-
运行容器
docker run -d -p 8000:8000 --env-file .env \ --dns 8.8.8.8 --dns 8.8.4.4 \ gemini-balance
-
--dns
参数可避免反向代理导致的 DNS 循环; -
如使用 SQLite,请挂载数据卷 -v /host/data:/app/data
。
-
2. 拉取现成镜像
docker pull ghcr.io/snailyp/gemini-balance:latest
docker run -d -p 8000:8000 --env-file .env \
ghcr.io/snailyp/gemini-balance:latest
3. 本地开发调试
-
git clone
并切换到项目根目录 -
pip install -r requirements.txt
-
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
配置项详解
配置项 | 说明 | 示例 |
---|---|---|
API_KEYS |
多个 Gemini API Key,轮询使用 | ["key1","key2"] |
THINKING_BUDGET_MAP |
特定模型的思考预算,0 则自动省略 thinkingConfig | {"gemini-1.5":"0"} |
FILTERED_MODELS |
屏蔽不常用模型 | ["gemini-1.0-pro-vision-latest"] |
PROXIES |
HTTP/SOCKS5 代理列表 | ["socks5://127.0.0.1:1080"] |
STREAM_OPTIMIZER_ENABLED |
流式输出优化 | true |
完整配置请参见项目根目录的 .env.example
或文档。
E‑E‑A‑T 加持:安全性与可维护性
-
Experience(经验):社区活跃,多平台图床与反向代理案例积累; -
Expertise(专业):由资深 API 架构师设计,支持多协议与多模型集成; -
Authoritativeness(权威):开源仓库获数百星标,拥有详细排错与监控指南; -
Trustworthiness(可信):采用 CC BY‑NC 4.0 协议,杜绝商业倒卖,并提供安全最佳实践。
常见场景与排错指南
-
Key 失效或请求超时:检查 /keys_status
页面,确认健康状况与失败次数。 -
DNS 循环或代理无法连接:在 docker run
中添加--dns 8.8.8.8
,或配置PROXIES
。 -
思考配置报错:将对应模型的 thinkingBudget
设为0
,工具会自动省略相关字段。 -
模型列表不完整:确保 URL_NORMALIZATION_ENABLED=false
,并定期调用GET /models
同步最新列表。
关键词列表
-
Gemini Balance -
Gemini API 代理 -
API 负载均衡 -
Token 计数接口 -
FastAPI Gemini -
OpenAI 兼容 -
Docker 部署 -
反向代理设置 -
多 Key 轮询 -
实时监控