gcli2api - Google Gemini CLIをOpenAI API互換にするリバースプロキシ

Web

概要

gcli2apiは、Googleが提供するGemini CLIをラップし、OpenAI APIの互換エンドポイントとして利用可能にするリバースプロキシサービスです。Pythonで実装されており、/v1/chat/completions/v1/modelsといったOpenAI APIの代表的なエンドポイントを提供します。複数のGoogle認証情報を設定でき、リクエストはラウンドロビン方式で各認証情報に振り分けられ、並行処理も制御可能です。これにより、スループットの向上と安定したサービス提供が可能となっています。さらに、OAuth認証のWebページを内蔵し、Googleアカウントの認証情報を簡単に取得・管理できます。Bearerトークンによる簡易認証にも対応し、セキュリティ面も考慮されています。OpenAI API互換のため、既存のクライアントやツールとの連携も容易です。

GitHub

リポジトリの統計情報

  • スター数: 11
  • フォーク数: 9
  • ウォッチャー数: 11
  • コミット数: 19
  • ファイル数: 12
  • メインの言語: Python

主な特徴

  • OpenAI互換のREST APIエンドポイント /v1/chat/completions/v1/models を提供
  • 複数Google認証情報のラウンドロビン方式による負荷分散と並行リクエスト制御
  • 簡単なBearer Token認証とGoogle OAuth認証による認証管理
  • OAuth認証を支援するWebページを内蔵し、認証情報取得を容易に

技術的なポイント

gcli2apiは、Google Gemini CLIを単なるCLIツールからAPIサービスとして利用可能に変換するためのリバースプロキシをPythonで実装しています。本プロジェクトの最大の技術的特徴は「OpenAI API互換エンドポイントの実現」と「複数認証情報を用いた負荷分散・並行処理制御」です。

まず、OpenAIのチャット補完API(/v1/chat/completions)やモデル取得API(/v1/models)と同じインターフェースをREST APIとして提供します。これにより、既存のOpenAI APIクライアントやツールをほぼそのまま利用でき、Google Geminiの能力を活用したい開発者にとって非常に親和性が高い設計です。Gemini CLIの呼び出し部分は内部でラップされており、ユーザーはAPIとして認識できます。

次に、GoogleのOAuth認証情報を複数用意することが可能で、これらをラウンドロビン(循環)方式で順番に使い分けることでリクエストの負荷分散を実現します。これにより、単一認証情報によるAPI制限を回避し、スケーラブルな運用ができます。さらに、複数のリクエストを同時に処理できるよう並行制御機構も備え、APIのスループットを向上させています。

認証面では、簡易なBearer Token認証(環境変数PASSWORDで管理)が用意されており、不正アクセスを防止します。また、Google OAuthを利用する場合はWeb UIを通じて認証情報を取得・保存できるため、ユーザーの利便性を高めています。このWebページは内部でOAuthフローを完結させ、トークン管理も自動化しています。

さらに、Dockerfileが用意されており、Python 3.13以上環境でのコンテナ展開にも対応。セットアップ手順もREADMEに明記されているため、初心者でも比較的簡単に環境構築が可能です。

これらの技術的施策により、gcli2apiはGoogle Geminiの能力を活用しつつ、OpenAI互換APIクライアントとのスムーズな連携、高い可用性と拡張性を両立したAPIサービスとして完成しています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: Git管理対象外のファイルを指定
  • .python-version: 使用Pythonバージョン指定(3.13以上)
  • Dockerfile: Dockerコンテナ構築用定義ファイル
  • README.md: プロジェクト概要、セットアップ、使用方法の説明
  • geminicli/: Gemini CLI関連のコードやラッパーを格納するディレクトリ
  • app.py (想定): メインのAPIサーバー実装ファイル
  • auth.py (想定): 認証関連の処理をまとめたファイル
  • config.py (想定): 設定情報管理用ファイル
  • requirements.txt (想定): Python依存パッケージ一覧
  • ほか設定ファイルやユーティリティスクリプトなど計12ファイル

まとめ

Google Gemini CLIをOpenAI互換APIとして簡単に利用可能にし、複数認証情報の負荷分散とOAuth認証も備えた実用的なリバースプロキシ。

リポジトリ情報: