Gemini Balance : l'API du modèle Gemini est compatible avec le format OpenAI, ce qui permet de lever les restrictions régionales et de prendre en charge l'interrogation de clés multi-API.

Introduction générale

Gémeaux Balance est un service proxy d'API OpenAI développé sur la base du cadre FastAPI, visant à fournir une gestion efficace des clés multi-API et des fonctions d'optimisation. Il prend en charge les appels de modèle Gemini, et ses principales fonctionnalités comprennent l'interrogation de clés multi-API, l'authentification forensique, les réponses en continu, le support CORS inter-domaines, et une interface de vérification de la santé. En utilisant des piles technologiques telles que Python 3.9+ et Docker, Gemini Balance fournit aux développeurs une solution de proxy API flexible et efficace pour les scénarios d'application nécessitant une concurrence élevée et une grande fiabilité.

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

 

Liste des fonctions

  • Prise en charge de l'interrogation des clés par plusieurs API
  • Authentification par jeton porteur
  • Prise en charge de la réponse en continu
  • Support CORS inter-domaines
  • Interface du bilan de santé
  • Prise en charge des appels de modèle Gemini
  • Soutenir la fonction de recherche
  • Prise en charge de l'exécution du code

 

Utiliser l'aide

Exigences environnementales

  • Python 3.9+
  • Docker (optionnel)

Installation des dépendances

pip install -r requirements.txt

fichier de configuration

établir.envet configurer les paramètres suivants :

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

Déploiement Docker

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

Interface API

  • Obtenir une liste de modèles
  GET /v1/models
Authorization: Bearer your-token
  • Chat complet.
  POST /v1/chat/completions
Authorization: Bearer your-token
{
"messages": [...],
"model": "gemini-1.5-flash-002",
"temperature": 0.7,
"stream": false,
"tools": []
}
  • Obtenir l'intégration
  POST /v1/embeddings
Authorization: Bearer your-token
{
"input": "Your text here",
"model": "text-embedding-004"
}
  • bilan de santé
  GET /health

structure du code

  • app/
    • api/
    • routes.pyRoutage de l'API : API Routing
    • dependencies.pyL'injection de dépendances : l'injection de dépendances
    • core/
    • config.pyGestion de la configuration
    • security.pyCertification en matière de sécurité
    • services/
    • chat_service.pyService de chat : Service de chat
    • key_manager.pyGestion des clés
    • model_service.pyServices de modélisation
    • schemas/
    • request_model.pyModèle de demande
    • main.pyEntrée au programme principal : Entrée au programme principal
  • DockerfileConfiguration de Docker
  • requirements.txtDépendances du projet : Dépendances du projet

Les dispositifs de sécurité

  • Mécanisme d'interrogation des clés API
  • Authentification par jeton porteur
  • Enregistrement des demandes
  • Mécanisme de réessai en cas d'échec
  • Contrôle de la validité des clés

mise en garde

  • Veillez à conserver vos clés d'API et vos jetons d'accès en toute sécurité !
  • Il est recommandé de configurer les informations sensibles dans les environnements de production à l'aide de variables d'environnement
  • Le port de service par défaut est 8000
  • Le nombre de tentatives d'échec de la clé API est de 10 par défaut.
  • Voir la documentation de l'API Gemini pour une liste des modèles pris en charge.

 

Addendum : huggingface déploie l'agent gemini, les appels d'interrogation des comptes, le déblocage des restrictions régionales

1. copier l'espace l'espace
L'équilibre des Gémeaux - un espace d'étreinte pour le visage par snailyp

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

 

2) Modifier la visibilité enPublic(veillez à faire attention à la modification vers public, ou non accessible), configurationALLOWED_TOKENS,API_KEYS,BASE_URLpar défaut (réglage)

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

ALLOWED_TOKENS format["自定义apikey"]Notez que les parenthèses, les virgules et les guillemets sont strictement respectés.
API_KEYSLe format se présente sous la forme d'une clé unique :["gemini_key1"]La forme des clés multiples["gemini_key1","gemini_key2"]Notez que les parenthèses, les virgules et les guillemets sont strictement respectés.
BASE_URLlaisser les valeurs par défaut telles qu'elles sont

 

3) Attendez que le déploiement réussisse ; une fois le déploiement réussi, les journaux et l'état d'avancement suivants s'affichent

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

 

4. à ce stade, l'hôte par défaut du service huggingface esthuggingface用户名-gemini-balance.hf.spaceComme le mien.snailyp-gemini-balance.hf.space

prendre noteLe service Huggingface entrera en veille s'il n'est pas utilisé pendant 48h, il est recommandé de le maintenir en vie par des tâches temporisées telles que Qinglong panel ou uptime kuma. (Appelé directement par une requête get)https://用户名-gemini-balance.hf.space(possible)

 

5. points d'extrémité pris en charge/hf/v1/modelsrépondre en chantant/hf/v1/chat/completions

 

6.Le nom de domaine huggingface peut ne pas être en mesure d'accéder directement à la maison, hf.space semble être en mesure d'accéder, si vous ne pouvez pas accéder, vous pouvez vous référer à la procédure suivante.

Vous pouvez utiliser cf workers comme un proxy et lier un nom de domaine personnalisé, puis vous pouvez y accéder en Chine, le code proxy cf worker est le suivant.Remplacez url.host par le vôtre.: :

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

prendre noteLe point d'accès mandaté supprime /hf, et le point d'accès devient donc/v1/modelsrépondre en chantant/v1/chat/completionsLa configuration du client demande un peu d'attention.

 

7. certaines limitations, il n'est pas possible actuellement d'effectuer un traitement d'image et de produire des mots structurels.

Gemini Balance:Gemini模型API兼容OpenAI格式,解锁区域限制并支持多API Key轮询
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...