はじめに
ジェミニ 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
設定ファイル
確立環境
ファイルを作成し、以下のパラメータを設定する:
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
認証:ベアラyour-token
- チャット完了。
POST /v1/chat/completions
認証:ベアラyour-token
{
「メッセージ": [...],
"model": "gemini-1.5-flash-002",
"temperature": 0.7、
「stream": false, "tools": []。
「tools": [].
}
- 埋め込み
POST /v1/embeddings
認可:ベアラyour-token
{
"input": "ここにあなたのテキスト", "model": "text-embedding-004", "text-embedding-004
"model": "text-embedding-004"
}
- 健康診断
健康
コード構造
アプリ
api/
routes.py
APIルーティング依存関係.py
依存性の注入コア/
config.py
構成管理セキュリティ.py
セキュリティ認証サービス
chat_service.py
チャットサービスkey_manager.py
キーマネージメントmodel_service.py
モデリング・サービススキーマ
request_model.py
リクエストモデルmain.py
メインプログラムへの入場
ドッカーファイル
Dockerの設定要件.txt
プロジェクトの依存関係
安全機能
- APIキー・ポーリング・メカニズム
- ベアラ・トークン認証
- ロギングのリクエスト
- リトライの失敗
- キーの有効性チェック
ほら
- APIキーとアクセストークンを安全に保管してください!
- 本番環境では、環境変数を使用して機密情報を設定することをお勧めします。
- デフォルトのサービスポートは8000
- APIキーのデフォルトの再試行回数は10回である。
- サポートされているモデルのリストについては、Gemini APIドキュメントを参照してください。
追記: huggingfaceはgeminiエージェントを展開し、アカウントのポーリングコールを行い、地域制限を解除する。
1.コピースペース
双子座のバランス - スネイプによるハグする顔の空間
2.可視性を次のように変更する。パブリック
(公開、またはアクセス不可への変更に注意してください)、コンフィギュレーション許可されたトークン
,API_KEYS
,ベースURL
デフォルト
許可されたトークン
フォーマット[カスタム・アピキー]
括弧、コンマ、逆コンマは厳守すること。
API_KEYS
フォーマットは1つのキーの形式である:["gemini_key1"]。
複数のキーの形式["gemini_key1"、"gemini_key2"]]。
括弧、コンマ、逆コンマは厳守すること。
ベースURL
デフォルトのままにしておく
3.デプロイが成功するまで待ちます。デプロイが成功すると、以下のログと実行ステータスが表示されます。
4.この時点で、huggingfaceサービスのデフォルトホストはhuggingface ユーザー名-gemini-balance.hf.space
私のようにね。snailyp-gemini-balance.hf.スペース
銘記するHuggingfaceサービスは48時間使用されないとスリープ状態に入るので、Qinglong panelやuptime kumaのような定時タスクで生かしておくことをお勧めします。(getリクエストで直接呼び出されます)https://用户名-gemini-balance.hf.space
(できる)。
5.対応エンドポイント/hf/v1/モデル
歌で応える/hf/v1/チャット/コンプリーション
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/モデル
歌で応える/v1/chat/completions
クライアントのコンフィギュレーションには少し注意が必要だ。
7.現在のところ、画像処理と構造語の出力を実行することはできません。