geminicli2apiは、GitHubでホストされているオープンソースのFastAPIベースのプロキシサーバです。ネイティブのGemini APIエンドポイントをサポートしながら、Google Gemini CLIの機能をOpenAI互換のAPIインターフェースに変換します。開発者は、使い慣れたOpenAI APIフォーマットまたは直接のGemini APIを介してGoogle Geminiモデルを呼び出すことができる。このプロジェクトは、テキスト生成、マルチモーダル入力(テキストや画像など)、リアルタイムストリーミング応答などをサポートしている。geminicli2apiは、軽量で設定が簡単なように設計されており、Geminiの機能を既存のワークフローに統合する必要がある開発者に特に適している。
機能一覧
- OpenAIと互換性がある
/v1/chat/completions
歌で応える/v1/models
エンドポイントに、既存のOpenAIツールを適応させる。 - 以下のようなネイティブGemini APIエンドポイントのサポート
/v1beta/models/{model}:generateContent
ジェミニ・モデルは、ジェミニ・モデルから直接呼び出すことができる。 - リアルタイムのストリーミング応答をサポートし、インタラクティブな対話や長いテキスト生成に適しています。
- マルチモーダル入力をサポートし、テキストと画像のような混合コンテンツを扱う。
- グーグル検索の強化
-search
モデルのバリエーションは、より正確な回答を提供する。 - を使ったジェミニの推論プロセスの制御をサポートする。
-nothinking
歌で応える-maxthinking
モデルのバリエーションは、推論の深さを調整する。 - ベアラートークン、ベーシック認証、APIキーなど、さまざまな認証方式に対応。
- Dockerコンテナによるデプロイをサポートし、Hugging Face Spacesと互換性があります。
ヘルプの使用
設置プロセス
geminicli2apiはインストールと設定が簡単で、ローカルでの実行とコンテナでのデプロイの両方をサポートする。以下はその詳細な手順である:
- クローン倉庫
以下のコマンドを使用して、geminicli2apiリポジトリをローカルにクローンする:git clone https://github.com/gzzhongqi/geminicli2api cd geminicli2api
- 依存関係のインストール
プロジェクトはPythonとFastAPIをベースにしており、依存関係はrequirements.txt
でインストールします。以下のコマンドを実行してインストールする:pip install -r requirements.txt
- 環境変数の設定
geminicli2apiは認証関連の環境変数を設定する必要があります。環境変数を作成する.env
ファイルに以下を追加する: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
APIアクセス用の認証パスワード。GEMINI_CREDENTIALS
Google OAuth 認証情報の JSON 文字列。client_id
そしてclient_secret
などのフィールドがある。- オプションの変数:
GOOGLE_APPLICATION_CREDENTIALS
Google OAuth認証情報ファイルへのパス。GOOGLE_CLOUD_PROJECT
もしかしたらGEMINI_PROJECT_ID
Google Cloud プロジェクト ID.
- クレデンシャルファイルを使用する場合は、次のように作成します。
credentials
ディレクトリにある。.json
ファイルを作成しGOOGLE_APPLICATION_CREDENTIALS
ファイルパスを指す。
- ローカルオペレーション
設定が完了したら、以下のコマンドを実行してサービスを開始する:python -m uvicorn app.main:app --host 0.0.0.0 --port 8888
サービス・デフォルト・リスニング
http://localhost:8888
. - Dockerのデプロイメント
geminicli2apiはDockerコンテナによるデプロイをサポートし、環境設定を簡素化する。- 鏡像を作る:
docker build -t geminicli2api .
- コンテナを実行する(デフォルトポート8888):
docker run -p 8888:8888 \ -e GEMINI_AUTH_PASSWORD=your_password \ -e GEMINI_CREDENTIALS='{"client_id":"...","token":"..."}' \ -e PORT=8888 \ geminicli2api
- Docker Composeを使う:
docker-compose up -d
Hugging Face Spacesを導入する場合は、ポート7860を使用する:
docker-compose --profile hf up -d geminicli2api-hf
- 鏡像を作る:
- ハグフェイス・スペース展開
- Hugging Faceにログインし、新しいDocker Spaceを作成する。
- リポジトリの内容をSpaceにアップロードする。
- スペースの設定に環境変数を追加する:
GEMINI_AUTH_PASSWORD
歌で応えるGEMINI_CREDENTIALS
(またはその他の資格情報源)。 - Spaceは自動的にサービスをビルドし、デプロイし、次のサービスをリッスンする。
http://<space-url>:7860
.
APIの使用
geminicli2apiは、OpenAI互換およびネイティブのGemini APIエンドポイントを提供し、開発者はニーズに応じて選択することができる。
OpenAI互換API
OpenAIクライアントライブラリを使用して、OpenAI APIと一致するエンドポイントでgeminicli2apiを呼び出す。
典型例(パイソン):
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="")
ネイティブGemini API
Gemini APIエンドポイントへの直接呼び出しは、より柔軟な設定をサポートします。
典型例(パイソン):
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())
マルチモーダル入力
テキストや画像のアップロードに対応。 /v1/chat/completions
もしかしたら /v1beta/models/{model}:generateContent
.
典型例(画像とテキストのアップロード):
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"]}'
認証方法
以下の認証方法がサポートされている:
- ベアラートークン::
Authorization: Bearer your_password
- ベーシック認証::
Authorization: Basic base64(username:your_password)
- お問い合わせパラメーター::
?key=your_password
- グーグルヘッド::
x-goog-api-key: your_password
対応モデル
- ベースモデル:
gemini-2.5-pro
そしてgemini-2.5-flash
そしてgemini-1.5-pro
そしてgemini-1.5-flash
そしてgemini-1.0-pro
- バリエーション:
-search
Google検索の拡張機能を有効にする。gemini-2.5-pro-search
).-nothinking
推論のステップ数を減らす。gemini-2.5-flash-nothinking
).-maxthinking
推論のための予算を増やす(例)。gemini-2.5-pro-maxthinking
).
ほら
- セキュア
GEMINI_AUTH_PASSWORD
がセットされていなければ、APIリクエストは失敗する。 - Google OAuth認証情報は有効である必要があり、Google Cloudコンソールから取得することを推奨します。
- ストリーミング・レスポンスには、チャンク化されたデータ処理に対するクライアントのサポートが必要である。
- Google Cloudプロジェクトのクォータを確認し、APIコールの上限を超えないようにします。
アプリケーションシナリオ
- 既存のOpenAIツールとの統合
開発者は、geminicli2apiを使用して、OpenAI APIベースのツール(LangChainなど)にGeminiモデルをプラグインし、コードを修正することなく、Geminiのフリークォータに素早く切り替えることができる。 - マルチモーダルなコンテンツ生成
コンテンツ制作者は、画像やテキストをアップロードして、広告デザインや教材制作に適した説明や分析、クリエイティブなコンテンツを生成します。 - 自動化されたワークフロー
組織は、geminicli2apiを通じて、文書の処理、レポートの生成、または顧客からの問い合わせへの回答を自動化し、業務効率を向上させます。
品質保証
- geminicli2apiはどのような認証方法をサポートしていますか?
ベアラートークン、Basic認証、クエリパラメータ、Googleヘッダ認証をサポートしています。GEMINI_AUTH_PASSWORD
. - Google OAuth認証情報はどのように入手できますか?
Google Cloudコンソールでサービスアカウントを作成し、JSONキーファイルをダウンロードし、以下のように入力します。GEMINI_CREDENTIALS
またはGOOGLE_APPLICATION_CREDENTIALS
パス - 対応するモデルバリエーションは?
アジュバント-search
(グーグル検索強化)、-nothinking
(推論を減らす)、-maxthinking
(推論の増加)のバリアントgemini-2.5-pro
歌で応えるgemini-2.5-flash
. - ハギング・フェイス・スペースで展開するには?
リポジトリをフォークし、Docker Spaceを作成し、Docker Spaceを設定する。GEMINI_AUTH_PASSWORD
歌で応えるGEMINI_CREDENTIALS
スペースは自動的に展開される。