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 anforderungen.txt
Konfigurationsdatei
einrichten..env
Datei und konfigurieren Sie die folgenden Parameter:
API_KEYS=["your-api-key-1", "your-api-key-2"]
ALLOWED_TOKENS=["ihr-zugriffs-token-1", "ihr-zugriffs-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
- Eine Liste von Modellen erhalten
GET /v1/models
Autorisierung: Überbringer Ihr-Token
- Chat abgeschlossen.
POST /v1/chat/completions
Autorisierung: Bearer your-token
{
"messages": [...] ,
"model": "gemini-1.5-flash-002",
"Temperatur": 0.7,
"stream": false, "tools": [].
"tools": []
}
- Einbettung erhalten
POST /v1/einbettungen
Autorisierung: Überbringer Ihr-Token
{
"input": "Ihr Text hier", "model": "text-embedding-004", "text-embedding-004
"model": "text-embedding-004"
}
- Gesundheitsprüfung
GET /Gesundheit
Code-Struktur
App/
api/
routen.py
API-Routingabhängigkeiten.py
: Dependency InjectionKern/
config.py
Konfigurationsmanagementsicherheit.py
Sicherheit: ZertifizierungDienstleistungen/
chat_service.py
Chat-Dienstkey_manager.py
Schlüsselverwaltungmodel_service.py
: Modellierung von DienstleistungenSchemata/
request_model.py
: Modell anfordernmain.py
: Eintritt zum Hauptprogramm
Dockerdatei
: Docker-KonfigurationAnforderungen.txt
: Projektabhängigkeiten
Sicherheitsmerkmale
- API-Schlüssel-Abruf-Mechanismus
- Bearer Token-Authentifizierung
- Protokollierung anfordern
- Mechanismus für Wiederholungsversuche bei Fehlern
- 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.
- Eine Liste der unterstützten Modelle finden Sie in der Gemini-API-Dokumentation
Addendum: huggingface setzt gemini agent ein, Abfrage von Konten, Aufhebung von Gebietsbeschränkungen
1. kopiert Platz Platz
Gemini Balance - ein umarmender Gesichtsraum von snailyp
2. die Sichtbarkeit ändern inÖffentlich
(achten Sie darauf, dass die Änderung auf öffentlich oder nicht zugänglich), KonfigurationALLOWED_TOKENS
,API_KEYS
,BASE_URL
Standard (Einstellung)
ALLOWED_TOKENS
Format["custom apikey"]
Beachten Sie, dass Klammern, Kommata und Anführungszeichen strikt einzuhalten sind.
API_KEYS
Das Format hat die Form eines einzigen Schlüssels:["gemini_key1"]
Die Form der Mehrfachschlüssel["gemini_key1", "gemini_key2"]
Beachten Sie, dass Klammern, Kommata 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-Dienstesumarmungsgesicht benutzername-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/modelle
im Gesang antworten/hf/v1/chat/erledigungen
6.huggingface Domain-Namen kann nicht in der Lage sein, direkt auf die inländischen, hf.space scheint in der Lage sein, den Zugang, 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/erledigungen
Die Client-Konfiguration erfordert einige Aufmerksamkeit.
7. einige Einschränkungen, derzeit ist es nicht möglich, die Bildverarbeitung und die Struktur der ausgegebenen Wörter durchzuführen