AI Personal Learning
und praktische Anleitung
Sitzsack Marscode1

Gemini Balance: Die Gemini-Modell-API ist mit dem OpenAI-Format kompatibel, hebt regionale Beschränkungen auf und unterstützt die Abfrage von Multi-API-Schlüsseln.

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.

Gemini Balance: Die Gemini-Modell-API ist mit dem OpenAI-Format kompatibel, hebt regionale Beschränkungen auf und unterstützt die Abfrage mehrerer API-Schlüssel-1


 

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..envDatei 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.pyAPI-Routing
    • dependencies.py: Dependency Injection
    • core/
    • config.pyKonfigurationsmanagement
    • security.pySicherheit: Zertifizierung
    • services/
    • chat_service.pyChat-Dienst
    • key_manager.pySchlüsselverwaltung
    • model_service.py: Modellierung von Dienstleistungen
    • schemas/
    • request_model.py: Modell anfordern
    • main.pyEintritt zum Hauptprogramm
  • Dockerfile: Docker-Konfiguration
  • requirements.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

Gemini Balance: Die Gemini-Modell-API ist mit dem OpenAI-Format kompatibel, hebt regionale Beschränkungen auf und unterstützt die Abfrage mehrerer API-Schlüssel-1

 

2. die Sichtbarkeit ändern inPublic(achten Sie darauf, dass die Änderung auf öffentlich oder nicht zugänglich), KonfigurationALLOWED_TOKENS,API_KEYS,BASE_URLStandard (Einstellung)

Gemini Balance: Die Gemini-Modell-API ist mit dem OpenAI-Format kompatibel, hebt regionale Beschränkungen auf und unterstützt die Abfrage mehrerer API-Schlüssel-1

ALLOWED_TOKENS Format["自定义apikey"]Beachten Sie, dass Klammern, Kommas und Anführungszeichen strikt einzuhalten sind.
API_KEYSDas 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_URLdie 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

Gemini Balance: Die Gemini-Modell-API ist mit dem OpenAI-Format kompatibel, hebt regionale Beschränkungen auf und unterstützt die Abfrage mehrerer API-Schlüssel-1

 

4 Zu diesem Zeitpunkt ist der Standard-Host des Huggingface-Diensteshuggingface用户名-gemini-balance.hf.spaceSo 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/modelsim 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/modelsim Gesang antworten/v1/chat/completionsDie Client-Konfiguration erfordert einige Aufmerksamkeit.

 

7. einige Einschränkungen, derzeit ist es nicht möglich, die Bildverarbeitung und strukturelle Wörter Ausgabe durchführen

Gemini Balance: Die Gemini-Modell-API ist mit dem OpenAI-Format kompatibel, hebt regionale Beschränkungen auf und unterstützt die Abfrage mehrerer API-Schlüssel-1

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Gemini Balance: Die Gemini-Modell-API ist mit dem OpenAI-Format kompatibel, hebt regionale Beschränkungen auf und unterstützt die Abfrage von Multi-API-Schlüsseln.
de_DEDeutsch