AI个人学习
和实操指南

Gemini Balance:Gemini模型API兼容OpenAI格式,解锁区域限制并支持多API Key轮询

综合介绍

Gemini Balance是一个基于FastAPI框架开发的OpenAI API代理服务,旨在提供高效的多API Key管理和优化功能。该项目支持Gemini模型调用,主要功能包括多API Key轮询、认证鉴权、流式响应、CORS跨域支持和健康检查接口。通过使用Python 3.9+和Docker等技术栈,Gemini Balance为开发者提供了一个灵活且高效的API代理解决方案,适用于需要高并发和高可靠性的应用场景。

 

功能列表

  • 多API Key轮询支持
  • Bearer Token认证
  • 支持流式响应
  • CORS跨域支持
  • 健康检查接口
  • 支持Gemini模型调用
  • 支持搜索功能
  • 支持代码执行

 

使用帮助

环境要求

  • Python 3.9+
  • Docker(可选)

安装依赖

pip install -r requirements.txt

配置文件

创建.env文件并配置以下参数:

API_KEYS=["your-api-key-1","your-api-key-2"]
ALLOWED_TOKENS=["your-access-token-1","your-access-token-2"]
BASE_URL="https://generativelanguage.googleapis.com/v1beta"
TOOLS_CODE_EXECUTION_ENABLED=true
MODEL_SEARCH=["gemini-2.0-flash-exp"]

Docker部署

docker build -t gemini-balance .
docker run -p 8000:8000 -d gemini-balance

API接口

  • 获取模型列表
  GET /v1/models
Authorization: Bearer your-token
  • 聊天完成
  POST /v1/chat/completions
Authorization: Bearer your-token
{
"messages": [...],
"model": "gemini-1.5-flash-002",
"temperature": 0.7,
"stream": false,
"tools": []
}
  • 获取Embedding
  POST /v1/embeddings
Authorization: Bearer your-token
{
"input": "Your text here",
"model": "text-embedding-004"
}
  • 健康检查
  GET /health

代码结构

  • app/
    • api/
    • routes.py:API路由
    • dependencies.py:依赖注入
    • core/
    • config.py:配置管理
    • security.py:安全认证
    • services/
    • chat_service.py:聊天服务
    • key_manager.py:Key管理
    • model_service.py:模型服务
    • schemas/
    • request_model.py:请求模型
    • main.py:主程序入口
  • Dockerfile:Docker配置
  • requirements.txt:项目依赖

安全特性

  • API Key轮询机制
  • Bearer Token认证
  • 请求日志记录
  • 失败重试机制
  • Key有效性检查

注意事项

  • 请确保妥善保管API Keys和访问令牌
  • 建议在生产环境中使用环境变量配置敏感信息
  • 默认服务端口为8000
  • API Key失败重试次数默认为10次
  • 支持的模型列表请参考Gemini API文档

 

补充:huggingface部署gemini代理,账号轮询调用,解锁区域限制

1.复制space空间
Gemini Balance - a Hugging Face Space by snailyp


Gemini Balance:Gemini模型API兼容OpenAI格式,解锁区域限制并支持多API Key轮询-1

 

2.修改visibility为Public(一定注意修改成public,不然访问不到),配置ALLOWED_TOKENS,API_KEYS,BASE_URL默认

Gemini Balance:Gemini模型API兼容OpenAI格式,解锁区域限制并支持多API Key轮询-1

ALLOWED_TOKENS 格式为["自定义apikey"],注意中括号,逗号,引号都有严格遵循。
API_KEYS格式为单个key的形式:["gemini_key1"],多个key的形式["gemini_key1","gemini_key2"],注意中括号,逗号,引号都有严格遵循。
BASE_URL保持默认

 

3.等待部署成功,部署成功后,会出现如下的日志和running状态

Gemini Balance:Gemini模型API兼容OpenAI格式,解锁区域限制并支持多API Key轮询-1

 

4.这时该huggingface服务的默认host为huggingface用户名-gemini-balance.hf.space,比如我的就是snailyp-gemini-balance.hf.space

注意:huggingface服务48h不使用会进入sleeping,建议通过青龙面板或者uptime kuma等定时任务进行保活。(直接用get请求调用https://用户名-gemini-balance.hf.space即可)

 

5.支持的端点/hf/v1/models/hf/v1/chat/completions

 

6.huggingface域名国内可能无法直接访问,hf.space 好像可以访问,如果不能访问,可以参考下面的流程。

可以通过cf workers代理一下,并且绑定自定义域名,便可在国内访问了,cf worker代理代码如下,url.host修改成自己的

export default { async fetch(request, env) { const url = new URL(request.url); url.host = 'xxx-gemini-balance.hf.space'; url.pathname = "/hf" + url.pathname; return fetch(new Request(url, request)) } }

注意:经过代理后的端点去掉了/hf,因此现在的端点变成了/v1/models/v1/chat/completions,客户端的配置需要注意一下

 

7.一些限制,目前还无法进行图片处理和结构话输出

Gemini Balance:Gemini模型API兼容OpenAI格式,解锁区域限制并支持多API Key轮询-1

未经允许不得转载:首席AI分享圈 » Gemini Balance:Gemini模型API兼容OpenAI格式,解锁区域限制并支持多API Key轮询

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文