Allgemeine Einführung
Zwillinge Balance ist ein OpenAI-API-Proxy-Dienst, der auf der Grundlage des FastAPI-Frameworks entwickelt wurde und eine effiziente Multi-API-Schlüsselverwaltung und Optimierungsfunktionen bieten soll. Er unterstützt Gemini-Modellaufrufe und zu seinen Hauptfunktionen gehören Multi-API-Schlüsselabfrage, Authentifizierungsforensik, Streaming-Antworten, CORS-Cross-Domain-Unterstützung und eine Schnittstelle für Gesundheitsprüfungen. Durch die Verwendung von Technologiestacks wie Python 3.9+ und Docker bietet Gemini Balance Entwicklern eine flexible und effiziente API-Proxy-Lösung für Anwendungsszenarien, die hohe Gleichzeitigkeit und hohe Zuverlässigkeit erfordern.
Funktionsliste
- Unterstützung für Multi-API Key Polling
- Bearer Token-Authentifizierung
- Unterstützung von Streaming-Antworten
- CORS Cross-Domain-Unterstützung
- Schnittstelle zur Gesundheitsprüfung
- Unterstützung für Gemini-Modellaufrufe
- Unterstützung der Suchfunktion
- Unterstützung für die Codeausführung
Hilfe verwenden
Anforderungen an die Umwelt
- Python 3.9+
- Docker (optional)
Installation von Abhängigkeiten
pip install -r requirements.txt
Konfigurationsdatei
einrichten..env
Datei und konfigurieren Sie die folgenden Parameter:
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-Bereitstellung
docker build -t gemini-balance .
docker run -p 8000:8000 -d gemini-balance
API-Schnittstelle
- Abrufen einer Liste von Modellen
GET /v1/models
Authorization: Bearer your-token
- Chat abgeschlossen.
POST /v1/chat/completions
Authorization: Bearer your-token
{
"messages": [...],
"model": "gemini-1.5-flash-002",
"temperature": 0.7,
"stream": false,
"tools": []
}
- Einbettung erhalten
POST /v1/embeddings
Authorization: Bearer your-token
{
"input": "Your text here",
"model": "text-embedding-004"
}
- Gesundheitsprüfung
GET /health
Code-Struktur
app/
api/
routes.py
API-Routingdependencies.py
: Dependency Injectioncore/
config.py
Konfigurationsmanagementsecurity.py
Sicherheit: Zertifizierungservices/
chat_service.py
Chat-Dienstkey_manager.py
Schlüsselverwaltungmodel_service.py
: Modellierung von Dienstleistungenschemas/
request_model.py
: Modell anfordernmain.py
Eintritt zum Hauptprogramm
Dockerfile
: Docker-Konfigurationrequirements.txt
: Projektabhängigkeiten
Sicherheitsmerkmale
- API-Schlüssel-Abruf-Mechanismus
- Bearer Token-Authentifizierung
- Protokollierung anfordern
- Mechanismus für fehlgeschlagene Wiederholungsversuche
- Prüfung der Schlüsselgültigkeit
caveat
- Achten Sie darauf, dass Sie Ihre API-Schlüssel und Zugangstokens sicher aufbewahren!
- Es wird empfohlen, sensible Informationen in Produktionsumgebungen mit Hilfe von Umgebungsvariablen zu konfigurieren
- Der Standard-Service-Port ist 8000
- Die Standardanzahl der Wiederholungsversuche für API-Schlüssel ist 10.
- In der Gemini-API-Dokumentation finden Sie eine Liste der unterstützten Modelle
Addendum: huggingface setzt gemini agent ein, Abfrage von Konten, Aufhebung von regionalen Beschränkungen
1. kopieren Sie den Speicherplatz
Gemini Balance - ein umarmender Gesichtsraum von snailyp
2. die Sichtbarkeit ändern inPublic
(achten Sie darauf, dass die Änderung auf öffentlich oder nicht zugänglich), KonfigurationALLOWED_TOKENS
,API_KEYS
,BASE_URL
Standard (Einstellung)
ALLOWED_TOKENS
Format["自定义apikey"]
Beachten Sie, dass Klammern, Kommas und Anführungszeichen strikt einzuhalten sind.
API_KEYS
Das Format hat die Form eines einzigen Schlüssels:["gemini_key1"]
in Form von Mehrfachschlüsseln["gemini_key1","gemini_key2"]
Beachten Sie, dass Klammern, Kommas und Anführungszeichen strikt einzuhalten sind.
BASE_URL
die Standardeinstellungen so belassen wie sie sind
3. warten Sie, bis die Bereitstellung erfolgreich war; nach erfolgreicher Bereitstellung werden die folgenden Protokolle und der Betriebsstatus angezeigt
4 Zu diesem Zeitpunkt ist der Standard-Host des Huggingface-Diensteshuggingface用户名-gemini-balance.hf.space
So wie meine auch.snailyp-gemini-balance.hf.space
zur Kenntnis nehmenDer Huggingface-Dienst geht in den Ruhezustand über, wenn er 48 Stunden lang nicht benutzt wird. Es wird empfohlen, ihn durch zeitgesteuerte Aufgaben wie Qinglong-Panel oder Uptime-Kuma am Leben zu erhalten. (Wird direkt durch eine get-Anfrage aufgerufen)https://用户名-gemini-balance.hf.space
(kann gemacht werden)
5. unterstützte Endpunkte/hf/v1/models
im Gesang antworten/hf/v1/chat/completions
6.huggingface Domain-Namen kann nicht in der Lage sein, direkt auf die inländischen, hf.space scheint zugänglich zu sein, wenn Sie nicht zugreifen können, können Sie sich auf den folgenden Prozess.
Sie können cf worker als Proxy verwenden und einen benutzerdefinierten Domänennamen binden, dann können Sie in China darauf zugreifen, cf worker proxy code ist wie folgt.Ändern Sie url.host in Ihren eigenen Namen.::
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)) } }
zur Kenntnis nehmenDer vermittelte Endpunkt entfernt /hf, so dass der Endpunkt nun zu/v1/models
im Gesang antworten/v1/chat/completions
Die Client-Konfiguration erfordert einige Aufmerksamkeit.
7. einige Einschränkungen, derzeit ist es nicht möglich, die Bildverarbeitung und strukturelle Wörter Ausgabe durchführen