Gemini Balance: GeminiモデルAPIはOpenAIフォーマットと互換性があり、リージョン制限を解除し、マルチAPIキーポーリングをサポートする。
はじめに
ジェミニ 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.pyAPIルーティングdependencies.py依存性の注入core/config.py構成管理security.pyセキュリティ認証services/chat_service.pyチャットサービスkey_manager.pyキーマネージメントmodel_service.pyモデリング・サービスschemas/request_model.pyリクエストモデルmain.pyメインプログラムへの入場
DockerfileDockerの設定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.現在のところ、画像処理と構造語の出力を実行することはできません。

© 著作権表示
記事の著作権 AIシェアリングサークル  無断転載はご遠慮ください。
関連記事
コメントはありません




