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é.

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.env
et 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.py
Routage de l'API : API Routingdependencies.py
L'injection de dépendances : l'injection de dépendancescore/
config.py
Gestion de la configurationsecurity.py
Certification en matière de sécuritéservices/
chat_service.py
Service de chat : Service de chatkey_manager.py
Gestion des clésmodel_service.py
Services de modélisationschemas/
request_model.py
Modèle de demandemain.py
Entrée au programme principal : Entrée au programme principal
Dockerfile
Configuration de Dockerrequirements.txt
Dé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

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

ALLOWED_TOKENS
format["自定义apikey"]
Notez que les parenthèses, les virgules et les guillemets sont strictement respectés.API_KEYS
Le 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_URL
laisser 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

4. à ce stade, l'hôte par défaut du service huggingface esthuggingface用户名-gemini-balance.hf.space
Comme 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/models
ré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/models
répondre en chantant/v1/chat/completions
La 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.

© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...