概述
Gemini Balance 是一个基于 Python FastAPI 构建的强大应用程序,旨在为您提供 Google Gemini API 的代理和负载均衡功能。🚀 它可以帮助您轻松管理多个 Gemini API Key,并通过简单的配置实现 Key 的智能轮询、安全认证、灵活模型过滤和实时状态监控。此外,我们还集成了便捷的图像生成和多种图床上传功能,并贴心地支持 OpenAI API 格式的代理,让您的开发更加顺畅!
主要功能
- 多 Key 负载均衡: 轻松配置多个 Gemini API Key,实现智能轮询,提高可用性。🔄
- 可视化配置即时生效: 在管理后台修改配置,无需重启服务,即刻生效!⚡
- 双协议API 兼容: 同时支持 Gemini 和 OpenAI 格式的 CHAT API 请求转发,兼容性更强。🤝
- 支持图文对话和修改图片: 特定模型支持图文对话和强大的修图功能。🖼️
- 支持联网搜索: 特定模型支持联网搜索,获取实时信息。🌐
- Key 状态监控: 提供直观的可视化页面,实时监控各 Key 的状态和使用情况。📊
- 详细的日志记录: 提供详细的错误日志,助您快速定位和解决问题。📜
- 支持自定义Gemini代理: 灵活配置自定义的 Gemini API 代理地址。🔗
- OpenAI画图接口兼容: 兼容 OpenAI 的图像生成接口,扩展您的创意空间。🎨
- 灵活的密钥添加方式: 支持通过正则表达式批量添加密钥,并自动去重,省时省力。🔑
- 兼容OpenAI格式Embeddings接口: 完美适配 OpenAI 格式的 embeddings 接口。🧠
- 流式响应优化: 可选的流式输出优化器,带来更流畅的交互体验。💨
- 失败重试与 Key 管理: 智能处理 API 请求失败,自动重试并管理失效 Key。🛡️
- Docker 支持: 提供 AMD 和 ARM 架构的 Docker 镜像,部署更便捷。🐳
- 模型列表自动维护: 自动获取并兼容 OpenAI/Gemini 模型列表,始终保持最新。📋
- 支持移除不使用的模型: 通过配置轻松过滤掉不需要的模型。🗑️
技术栈
- 后端: Python, FastAPI, Uvicorn 🐍
- 数据库: MySQL (根据配置项推断) 💾
- 部署: Docker 📦 以及白嫖方案
安装教程
今天,我们主要讲的是白嫖的docker和流量。
前置条件
GITHUB账号(注册时间半年以上的github账号)、gemini key(如果你的谷歌账号多,可以自己搞,如果没账号,可以小黄鱼,便宜的几毛钱一个)
从零部署 Gemini Balance 手册之clawcloud上部署sqlite版本
官方的教程写的乱七八糟的,特别不好使
平台地址:
clawcloud:https://run.claw.cloud/
注册账号IMPORTANT
免费使用前提条件。需通过 Github 账户登录,且 Github 账户注册时间超过 180 天。可在登录前自行前往github.com 个人资料界面确认。否则,可能导致一个月后本项目无法运行。
没有符合条件的 Github 账户怎么办?(1)更换部署方式;(2)购买,价格约 10 元左右/个。
点击“Get started for free”,点击 Github 登录
部署项目
进入主界面后,点击左上角 Region,选择服务器地址。推荐选择 Japan(这里官方推荐的选择是新加坡,但是实测新加坡不好使,我选择的日本)。选择完成后,网页会刷新,并在服务器地址前。
进入页面后,点击页面右上角 Create App,进入配置页面。
进入配置页面后,按顺序填写信息(不熟悉项目名称的,请打开在线翻译)。
- Application Name:为方便识别管理,建议填写本项目名字geminibalance(这里,我写的是funk36d)
- Image: Public
- Image Name:ghcr.io/snailyp/gemini-balance:latest
- Usage:Fixed;
- Replicas:1
- CPU:1
- Memory:512
说明:1. 若登录账号只选择部署 1 个项目,则推荐上述最高免费配置。2.目前免费用户每月流量为 10g,超出部分 0.05 美元/g。可根据流量使用情况选择服务器配置。
Network
- Container Port:8000
- Enable Internet:点选为Access状态
Advanced Configura
Environment Variables:点击 Add,随后粘贴以下变量。填写完成后点击 Add 完成配置。
DATABASE_TYPE=sqlite
SQLITE_DATABASE=default_db(这里最好自己手动改一下,比如,我用的也是项目名称funk36d_db)
API_KEYS=["(这里需要填写你的key,当然,现在可以不写)"]
ALLOWED_TOKENS=["(这里需要填写你的调用密码,最好现在就写上)"]
AUTH_TOKEN=(这里填写你的面板管理密码,现在必须写上)
TZ=Asia/Shanghai
这一步,官方的教程就跟狗屎一样,不注意的,真的就直接过去了。
添加玩环境变量后,再按照下图设置storage
当然,我选择的是5G,因为我的免费额度是10G
返回页面最上方,点击 Deploy Application。弹窗提示Are you sure you want to deploy the application?
选择 Yes。
等待几秒后,跳转至状态界面。此时,请确认页面左上角显示 running。若显示为其他状态,请稍后片刻;仍未显示 running,请确认你配置选项是否正确。需要修改的,可点击页面右下角 Manage Network 选项修改参数,或删除该项目重新部署。
将页面滚动到最下方,在 Network 选项卡中,查看右侧公网地址配置情况。一般情况下,显示 pending 表明还在处理当中,需要等待 2~5 分钟,直至pending 状态变为Available。 实际情况下, 2 分钟后即使公网地址前显示pending,亦可尝试在新的浏览器标签中打开该地址。若网页能正常显示本项目登录界面,则正常使用即可。若公网地址前的pending状态超过 10 分钟,且无法打开登录界面,原因可能是服务器过载,需要更长等待时间。建议换区或换服务商重新部署。
这里本屌自己测试了,他妈的,新加坡准备好了也不能用,鬼子的需要准备好久,约等于20分钟
官方的自定义域名就不推荐了,没什么鸡儿用,反正前端也无法访问,直接用官方给的地址就好了。
监控页面配置
复制项目公网访问地址后,在浏览器中打开。随后进入登录界面,输入密码即可进入。(所以这里要求你们自己设置管理面板密码了,如果你没设置,那么,这里即便是输入了官方所谓的默认密码,也鸡儿进不去。)
接入工具以 cherry studio 为例
添加提供商。
提供商名称:任意填写(这里本屌选的是gemini)
配置
API 密钥:填写监控面板“API 密钥”选项卡中的“允许的令牌列表”。
API 地址:填写 ClawCloud 中的公网访问地址。注意结尾不要出现“/”。
添加模型
点击“管理”,添加模型。
至此,部署完成。