はじめに
ジェミニ BalanceはFastAPIフレームワークに基づいて開発されたOpenAI APIプロキシサービスで、効率的なマルチAPI Key管理と最適化機能を提供することを目的としている。Geminiモデルコールをサポートし、主な機能として、マルチAPI Keyポーリング、認証フォレンジック、ストリーミングレスポンス、CORSクロスドメインサポート、ヘルスチェックインタフェースがあります。Python 3.9+やDockerなどの技術スタックを使用することで、Gemini Balanceは、高い同時実行性と高い信頼性を必要とするアプリケーションシナリオのための柔軟で効率的なAPIプロキシソリューションを開発者に提供します。
機能一覧
- マルチAPIキー・ポーリングのサポート
- ベアラ・トークン認証
- ストリーミング対応
- CORSクロスドメイン対応
- ヘルスチェック・インターフェイス
- Geminiモデルコールのサポート
- 検索機能をサポート
- コード実行のサポート
ヘルプの使用
環境要件
- Python 3.9+
- Docker(オプション)
依存関係のインストール
pip install -r requirements.txt
設定ファイル
確立.env
ファイルを作成し、以下のパラメータを設定する:
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のデプロイメント
docker build -t gemini-balance .
docker run -p 8000:8000 -d gemini-balance
APIインターフェース
- モデル一覧の取得
GET /v1/models
Authorization: Bearer your-token
- チャット完了。
POST /v1/chat/completions
Authorization: Bearer your-token
{
"messages": [...],
"model": "gemini-1.5-flash-002",
"temperature": 0.7,
"stream": false,
"tools": []
}
- 埋め込み
POST /v1/embeddings
Authorization: Bearer your-token
{
"input": "Your text here",
"model": "text-embedding-004"
}
- 健康診断
GET /health
コード構造
app/
api/
routes.py
APIルーティングdependencies.py
依存性の注入core/
config.py
構成管理security.py
セキュリティ認証services/
chat_service.py
チャットサービスkey_manager.py
キーマネージメントmodel_service.py
モデリング・サービスschemas/
request_model.py
リクエストモデルmain.py
メインプログラムへの入場
Dockerfile
Dockerの設定requirements.txt
プロジェクトの依存関係
安全機能
- APIキー・ポーリング・メカニズム
- ベアラ・トークン認証
- ロギングのリクエスト
- リトライの失敗
- キーの有効性チェック
ほら
- APIキーとアクセストークンを安全に保管してください!
- 本番環境では、環境変数を使用して機密情報を設定することをお勧めします。
- デフォルトのサービスポートは8000
- APIキーのデフォルトの再試行回数は10回である。
- サポートされているモデルのリストについては、Gemini APIドキュメントを参照してください。
追記: huggingfaceはgeminiエージェントを展開し、アカウントのポーリングコールを行い、地域制限を解除する。
1.コピースペース
双子座のバランス - スネイプによるハグする顔の空間
2.可視性を次のように変更する。Public
(公開、またはアクセス不可への変更に注意してください)、コンフィギュレーションALLOWED_TOKENS
,API_KEYS
,BASE_URL
デフォルト
ALLOWED_TOKENS
フォーマット["自定义apikey"]
括弧、コンマ、逆コンマは厳守すること。
API_KEYS
フォーマットは1つのキーの形式である:["gemini_key1"]
複数のキーの形式["gemini_key1","gemini_key2"]
括弧、コンマ、逆コンマは厳守すること。
BASE_URL
デフォルトのままにしておく
3.デプロイが成功するまで待ちます。デプロイが成功すると、以下のログと実行ステータスが表示されます。
4.この時点で、huggingfaceサービスのデフォルトホストはhuggingface用户名-gemini-balance.hf.space
私のようにね。snailyp-gemini-balance.hf.space
銘記するHuggingfaceサービスは48時間使用されないとスリープ状態に入るので、Qinglong panelやuptime kumaのような定時タスクで生かしておくことをお勧めします。(getリクエストで直接呼び出されます)https://用户名-gemini-balance.hf.space
(できる)。
5.対応エンドポイント/hf/v1/models
歌で応える/hf/v1/chat/completions
6.huggingfaceのドメイン名は、直接国内にアクセスできない場合があります。hf.spaceはアクセスできるようですが、アクセスできない場合は、次のプロセスを参照することができます。
cfワーカーをプロキシとして使い、カスタムドメイン名をバインドすることで、中国からアクセスすることができます。cfワーカーのプロキシコードは以下の通りです。url.hostを自分のものに変更する。::
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)) } }
銘記するプロキシされたエンドポイントは/hfを削除するので、エンドポイントは次のようになる。/v1/models
歌で応える/v1/chat/completions
クライアントのコンフィギュレーションには少し注意が必要だ。
7.現在のところ、画像処理と構造語の出力を実行することはできません。