geminicli2api ist ein quelloffener FastAPI-basierter Proxy-Server, der auf GitHub gehostet wird. Er konvertiert die Funktionalität der Google Gemini CLI in eine OpenAI-kompatible API-Schnittstelle und unterstützt gleichzeitig native Gemini-API-Endpunkte. Entwickler können Google Gemini-Modelle über das vertraute OpenAI-API-Format oder die direkte Gemini-API aufrufen, kostenlos unter Verwendung des von Google bereitgestellten API-Kontingents. Das Projekt unterstützt Textgenerierung, multimodale Eingaben (z. B. Text und Bilder), Echtzeit-Streaming-Antworten und mehr. Es bietet eine Vielzahl von Authentifizierungsmethoden, die sich für den schnellen Einsatz in lokalen oder Cloud-Umgebungen eignen und in Entwicklungs-, Test- und Produktionsumgebungen weit verbreitet sind. geminicli2api ist leichtgewichtig und einfach zu konfigurieren und eignet sich besonders für Entwickler, die Gemini-Funktionen in ihre bestehenden Arbeitsabläufe integrieren müssen.
Funktionsliste
- Bietet OpenAI-kompatible
/v1/chat/completions
im Gesang antworten/v1/models
Endpunkte, wobei bestehende OpenAI-Tools angepasst werden. - Unterstützung für native Gemini-API-Endpunkte wie
/v1beta/models/{model}:generateContent
Das Gemini-Modell kann direkt aus dem Gemini-Modell aufgerufen werden. - Unterstützt Echtzeit-Streaming-Antworten, geeignet für interaktive Dialoge oder die Erstellung langer Texte.
- Unterstützt multimodale Eingaben und verarbeitet gemischte Inhalte wie Text und Bilder.
- Bietet Google-Suchverbesserungen durch
-search
Modellvarianten liefern genauere Antworten. - Unterstützung für die Steuerung des Gemini-Schlussfolgernden Prozesses mit dem
-nothinking
im Gesang antworten-maxthinking
Modellvarianten passen die Tiefe der Argumentation an. - Unterstützt eine Vielzahl von Authentifizierungsmethoden, einschließlich Bearer-Tokens, Basic-Authentifizierung, API-Schlüssel usw.
- Unterstützt Docker-Container-Bereitstellungen und ist mit Hugging Face Spaces kompatibel.
Hilfe verwenden
Einbauverfahren
geminicli2api ist einfach zu installieren und zu konfigurieren und unterstützt sowohl lokal laufende als auch containerisierte Implementierungen. Nachfolgend finden Sie die detaillierten Schritte:
- Klon-Lager
Klonen Sie das geminicli2api-Repository lokal mit dem folgenden Befehl:git clone https://github.com/gzzhongqi/geminicli2api cd geminicli2api
- Installation von Abhängigkeiten
Das Projekt basiert auf Python und FastAPI, wobei die Abhängigkeiten in derrequirements.txt
ein. Führen Sie den folgenden Befehl zur Installation aus:pip install -r requirements.txt
- Umgebungsvariablen konfigurieren
geminicli2api muss mit authentifizierungsbezogenen Umgebungsvariablen konfiguriert werden. Erstellen Sie eine.env
fügen Sie Folgendes hinzu:GEMINI_AUTH_PASSWORD=你的认证密码 GEMINI_CREDENTIALS={"client_id":"你的客户端ID","client_secret":"你的客户端密钥","token":"你的访问令牌","refresh_token":"你的刷新令牌","scopes":["https://www.googleapis.com/auth/cloud-platform"],"token_uri":"https://oauth2.googleapis.com/token"} PORT=8888
GEMINI_AUTH_PASSWORD
Authentifizierungspasswort für den API-Zugang, erforderlich.GEMINI_CREDENTIALS
JSON-String mit Google OAuth-Anmeldeinformationen, die dieclient_id
undclient_secret
usw. Felder.- Optionale Variablen:
GOOGLE_APPLICATION_CREDENTIALS
Pfad zur Datei mit den Google OAuth-Anmeldeinformationen.GOOGLE_CLOUD_PROJECT
vielleichtGEMINI_PROJECT_ID
Google Cloud Projekt-ID.
- Wenn Sie eine Datei mit Anmeldeinformationen verwenden, erstellen Sie
credentials
Verzeichnis in Ihrem Google Cloud Services-Konto.json
Datei und setzen Sie dieGOOGLE_APPLICATION_CREDENTIALS
Zeigt auf den Dateipfad.
- lokaler Betrieb
Nachdem die Konfiguration abgeschlossen ist, führen Sie den folgenden Befehl aus, um den Dienst zu starten:python -m uvicorn app.main:app --host 0.0.0.0 --port 8888
Dienst Standard Mithören
http://localhost:8888
. - Docker-Bereitstellung
geminicli2api unterstützt die Bereitstellung in Docker-Containern und vereinfacht die Konfiguration der Umgebung.- Bauen Sie das Spiegelbild:
docker build -t geminicli2api .
- Starten Sie den Container (Standardport 8888):
docker run -p 8888:8888 \ -e GEMINI_AUTH_PASSWORD=your_password \ -e GEMINI_CREDENTIALS='{"client_id":"...","token":"..."}' \ -e PORT=8888 \ geminicli2api
- Verwenden Sie Docker Compose:
docker-compose up -d
Für die Bereitstellung von Hugging Face Spaces verwenden Sie Port 7860:
docker-compose --profile hf up -d geminicli2api-hf
- Bauen Sie das Spiegelbild:
- Umarmung Gesicht Räume Entfaltung
- Melden Sie sich bei Hugging Face an und erstellen Sie einen neuen Docker Space.
- Laden Sie den Inhalt des Repositorys auf Space hoch.
- Fügen Sie eine Umgebungsvariable zu den Space-Einstellungen hinzu:
GEMINI_AUTH_PASSWORD
im Gesang antwortenGEMINI_CREDENTIALS
(oder eine andere Quelle für Referenzen). - Space baut den Dienst automatisch auf und stellt ihn bereit, wartet auf
http://<space-url>:7860
.
Verwendung der API
geminicli2api bietet OpenAI-kompatible und native Gemini-API-Endpunkte, aus denen Entwickler je nach Bedarf wählen können.
OpenAI-kompatible API
Rufen Sie geminicli2api unter Verwendung der OpenAI-Client-Bibliothek auf, mit Endpunkten, die mit der OpenAI-API übereinstimmen.
typisches Beispiel(Python):
import openai
client = openai.OpenAI(
base_url="http://localhost:8888/v1",
api_key="your_password" # GEMINI_AUTH_PASSWORD
)
response = client.chat.completions.create(
model="gemini-2.5-pro-maxthinking",
messages=[{"role": "user", "content": "用简单语言解释相对论"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.reasoning_content:
print(f"推理过程: {chunk.choices[0].delta.reasoning_content}")
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Native Gemini-API
Direkte Aufrufe an Gemini-API-Endpunkte unterstützen flexiblere Konfigurationen.
typisches Beispiel(Python):
import requests
headers = {
"Authorization": "Bearer your_password",
"Content-Type": "application/json"
}
data = {
"contents": [
{"role": "user", "parts": [{"text": "用简单语言解释相对论"}]}
],
"thinkingConfig": {"thinkingBudget": 32768, "includeThoughts": True}
}
response = requests.post(
"http://localhost:8888/v1beta/models/gemini-2.5-pro:generateContent",
headers=headers,
json=data
)
print(response.json())
Multimodale Eingänge
Unterstützt das Hochladen von Text und Bildern zum Versenden an /v1/chat/completions
vielleicht /v1beta/models/{model}:generateContent
.
typisches Beispiel(Bilder und Text hochladen):
curl -X POST http://localhost:8888/v1/chat/completions \
-H "Authorization: Bearer your_password" \
-H "Content-Type: application/json" \
-d '{"model": "gemini-2.5-pro", "messages": [{"role": "user", "content": "分析这张图片并描述内容"}], "files": ["./image.jpg"]}'
Verfahren zur Authentifizierung
Die folgenden Authentifizierungsmethoden werden unterstützt:
- Inhaber-Marke::
Authorization: Bearer your_password
- Grundlegende Zertifizierung::
Authorization: Basic base64(username:your_password)
- Parameter der Anfrage::
?key=your_password
- Google Kopf::
x-goog-api-key: your_password
Unterstützte Modelle
- Basismodell:
gemini-2.5-pro
undgemini-2.5-flash
undgemini-1.5-pro
undgemini-1.5-flash
undgemini-1.0-pro
- Varianten:
-search
Aktivieren Sie Google-Suchverbesserungen (z. B.gemini-2.5-pro-search
).-nothinking
Reduzierung der Anzahl von Argumentationsschritten (z.B.gemini-2.5-flash-nothinking
).-maxthinking
Aufstockung des Budgets für Argumentation (z.B.gemini-2.5-pro-maxthinking
).
caveat
- sicher
GEMINI_AUTH_PASSWORD
gesetzt ist, andernfalls schlägt die API-Anfrage fehl. - Die Google OAuth-Anmeldeinformationen müssen gültig sein und sollten über die Google Cloud-Konsole bezogen werden.
- Streaming-Antworten erfordern eine Client-Unterstützung für die Verarbeitung von Chunked-Daten.
- Überprüfen Sie die Quoten für Google Cloud-Projekte, um zu vermeiden, dass die Grenzen für API-Aufrufe überschritten werden.
Anwendungsszenario
- Integration mit bestehenden OpenAI-Tools
Entwickler verwenden geminicli2api, um Gemini-Modelle in Tools einzubinden, die auf der OpenAI-API basieren (z. B. LangChain), und schnell zu Geminis freier Quote zu wechseln, ohne den Code zu ändern. - Erzeugung multimodaler Inhalte
Inhaltsersteller laden Bilder und Texte hoch, um Beschreibungen, Analysen oder kreative Inhalte zu erstellen, die sich für die Gestaltung von Werbung oder die Produktion von Lehrmaterial eignen. - Automatisierte Arbeitsabläufe
Unternehmen automatisieren die Verarbeitung von Dokumenten, die Erstellung von Berichten oder die Beantwortung von Kundenanfragen durch geminicli2api und verbessern so die betriebliche Effizienz.
QA
- Welche Authentifizierungsmethoden werden von geminicli2api unterstützt?
Unterstützt Bearer-Tokens, Basic-Authentifizierung, Abfrageparameter und Google-Header-Authentifizierung, was die Einrichtung desGEMINI_AUTH_PASSWORD
. - Wie erhalte ich Google OAuth-Anmeldeinformationen?
Erstellen Sie ein Dienstkonto in der Google Cloud-Konsole, laden Sie die JSON-Schlüsseldatei herunter, geben Sie dieGEMINI_CREDENTIALS
oder setzenGOOGLE_APPLICATION_CREDENTIALS
Pfad. - Welche Modellvarianten werden unterstützt?
etw. unterstützen-search
(Google Search Enhanced),-nothinking
(Reduzierte Argumentation),-maxthinking
(Erhöhte Argumentation) Variante für diegemini-2.5-pro
im Gesang antwortengemini-2.5-flash
. - Wie kann man sich in Hugging Face Spaces entfalten?
Forken Sie das Repository, erstellen Sie einen Docker Space, richten Sie dieGEMINI_AUTH_PASSWORD
im Gesang antwortenGEMINI_CREDENTIALS
Der Platz wird automatisch bereitgestellt.