Gemini Balance: la API del modelo Gemini es compatible con el formato OpenAI, desbloquea las restricciones regionales y admite el sondeo de claves multiAPI.

Introducción general

Géminis Balance es un servicio proxy de API OpenAI desarrollado en base al framework FastAPI, con el objetivo de proporcionar una gestión eficiente de claves multi-API y características de optimización. Es compatible con las llamadas al modelo Gemini, y entre sus principales características se incluyen el sondeo de claves multiAPI, la autenticación forense, la transmisión de respuestas, la compatibilidad con CORS entre dominios y una interfaz de comprobación de estado. Mediante el uso de pilas tecnológicas como Python 3.9+ y Docker, Gemini Balance proporciona a los desarrolladores una solución proxy API flexible y eficiente para escenarios de aplicación que requieren alta concurrencia y alta fiabilidad.

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

 

Lista de funciones

  • Soporte de sondeo de claves Multi-API
  • Autenticación por token portador
  • Soporte de respuesta de streaming
  • Soporte CORS entre dominios
  • Interfaz del chequeo médico
  • Compatibilidad con las llamadas al modelo Gemini
  • Función de búsqueda
  • Soporte para la ejecución de código

 

Utilizar la ayuda

Requisitos medioambientales

  • Python 3.9+
  • Docker (opcional)

Instalación de dependencias

pip install -r requirements.txt

archivo de configuración

establecer.envy configure los siguientes parámetros:

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"]

Despliegue de Docker

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

Interfaz API

  • Obtener una lista de modelos
  GET /v1/models
Authorization: Bearer your-token
  • Chat completo.
  POST /v1/chat/completions
Authorization: Bearer your-token
{
"messages": [...],
"model": "gemini-1.5-flash-002",
"temperature": 0.7,
"stream": false,
"tools": []
}
  • Obtener incrustación
  POST /v1/embeddings
Authorization: Bearer your-token
{
"input": "Your text here",
"model": "text-embedding-004"
}
  • chequeo médico
  GET /health

estructura del código

  • app/
    • api/
    • routes.py: Enrutamiento API
    • dependencies.py: Inyección de dependencia
    • core/
    • config.py: Gestión de la configuración
    • security.py: Certificación de seguridad
    • services/
    • chat_service.py: Servicio de chat
    • key_manager.py: Gestión de claves
    • model_service.py: Servicios de modelización
    • schemas/
    • request_model.pyModelo de solicitud
    • main.pyEntrada al programa principal
  • DockerfileConfiguración de Docker
  • requirements.txt: Dependencias del proyecto

Características de seguridad

  • Mecanismo de sondeo de claves API
  • Autenticación por token portador
  • Solicitar registro
  • Fallo del mecanismo de reintento
  • Comprobación de la validez de la clave

advertencia

  • Asegúrese de mantener a salvo sus claves API y tokens de acceso.
  • Se recomienda configurar la información sensible en entornos de producción utilizando variables de entorno
  • El puerto de servicio por defecto es 8000
  • El número por defecto de reintentos de fallo de Clave API es 10.
  • Consulte la documentación de la API Gemini para obtener una lista de los modelos compatibles

 

Addendum: huggingface despliega el agente gemini, llamadas de sondeo de cuentas, desbloqueo de restricciones regionales

1. Copiar espacio espacio
Gemini Balance - un espacio para abrazar la cara by snailyp

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

 

2. Modificar la visibilidad aPublic(asegúrese de que el cambio a público, o no accesible), configuraciónALLOWED_TOKENS,API_KEYS,BASE_URLpor defecto (ajuste)

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

ALLOWED_TOKENS formato["自定义apikey"]Tenga en cuenta que se respetan estrictamente los paréntesis, las comas y las comillas.
API_KEYSEl formato es en forma de clave única:["gemini_key1"]La forma de las llaves múltiples["gemini_key1","gemini_key2"]Tenga en cuenta que se respetan estrictamente los paréntesis, las comas y las comillas.
BASE_URLdejar los valores por defecto como están

 

3. Espere a que el despliegue se realice correctamente; una vez realizado, aparecerán los siguientes registros y el estado de ejecución

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

 

4. En este punto, el host por defecto del servicio huggingface eshuggingface用户名-gemini-balance.hf.spaceComo el mío.snailyp-gemini-balance.hf.space

tenga en cuentaHuggingface : El servicio Huggingface entrará en reposo si no se utiliza durante 48h, se recomienda mantenerlo vivo mediante tareas temporizadas como Qinglong panel o uptime kuma. (Llamado directamente por petición get)https://用户名-gemini-balance.hf.space(se puede hacer)

 

5. Puntos finales compatibles/hf/v1/modelsresponder cantando/hf/v1/chat/completions

 

6.huggingface nombre de dominio no puede ser capaz de acceder directamente a la doméstica, hf.space parece ser accesible, si no puede acceder, puede hacer referencia al siguiente proceso.

Puede utilizar cf workers como proxy y vincular un nombre de dominio personalizado, entonces puede acceder a él en China, cf worker proxy código es el siguiente.Cambia url.host por el tuyo.::

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)) } }

tenga en cuentaEl punto final proxy elimina /hf, por lo que el punto final se convierte ahora en/v1/modelsresponder cantando/v1/chat/completionsLa configuración del cliente requiere cierta atención.

 

7. Algunas limitaciones, en la actualidad no es posible llevar a cabo el procesamiento de imágenes y la estructura de las palabras de salida

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

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...