Amm1rr/WebAI-to-API

Webchat to API

何であるか

WebAI‑to‑API は、あなたのマシン(またはDockerコンテナ)内で実行される小さな自己ホスト型サービスであり、Google Geminiモデルへのリクエストを転送します。/v1/chat/completions という、OpenAI風のエンドポイントを提供するため、OpenAIと通信する任意のクライアントをこのサービスに接続できます。

コア機能

  • ストリーミング(SSE)対応のOpenAI互換チャットエンドポイント(/v1/chat/completions)
  • プロバイダベースアーキテクチャ — 現在は、公式WebAPIまたはPlaywright駆動のブラウザランタイムのどちらかでGeminiと通信できるGeminiプロバイダを搭載
  • クライアントが会話履歴を完全に管理する「Hermes」モード(サーバー側のSQLiteスナップショットなし)
  • ヘルスチェック(/health)とリーダビリティプローブ(/ready)に加え、実行時診断(/v1/runtime/status)
  • 状態、認証、モデル発見、プレイグラウンドを提供するシンプルなWebダッシュボード(/ui)
  • Docker最適化デプロイメント;Poetryで直接実行も可能
  • 組み込みの呼び出し認証なし — ローカルホストまたは自前のファイアウォールの背後を想定

クイックスタート(Linux/macOS)

# 1. クローン & インストール
git clone https://github.com/Amm1rr/WebAI-to-API.git
cd WebAI-to-API
./install.sh   # 依存関係、Poetry、Playwright Chromium、設定ファイルの作成をインストール

# 2. Geminiへの認証(ブラウザログインまたはクッキーキャッシュ)
poetry run python verify_login.py

# 3. サーバーの起動
poetry run python src/run.py

APIは http://localhost:6969 で、ダッシュボードは http://localhost:6969/ui で利用可能になります。

Dockerデプロイメント

git pull
APP_UID=$(id -u) APP_GID=$(id -g) docker compose up -d --build

Dockerイメージは同じエンドポイントを公開し、同じ認証ヘルパーを含んでいます。

リクエストの送信

curl -X POST http://localhost:6969/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
        "model": "gemini-3-flash",
        "messages": [{"role": "user", "content": "Hello!"}]
      }'

応答はOpenAIチャットスキーマに従い、Server-Sent Events(SSE)でストリーミングが可能です。

プロバイダおよびモデルルーティング

  • gemini-3-flash — 設定されたGeminiバックエンド(webapi または playwright)を使用
  • playwright/gemini-3-flash — Playwrightベースのブラウザランタイムを強制的に使用
  • エンドポイント /v1/models はライブモデルカタログを返す(例:gemini-3-flash および playwright/gemini-3-flash)

設定の基本

設定は config.conf(INI形式)に記述されています。主なセクション:

[Gemini]
backend = webapi          # または "playwright"
default_model = gemini-3-flash
extended_thinking = false

プロキシ、ログ、および追加プロバイダオプションも設定可能。環境変数は .env から読み込まれます。

セキュリティに関する注意

このサービスはAPIキーの強制は行いません。外部公開する場合は、localhost に限定するか、認証を追加するリバースプロキシの背後に配置してください。

ドキュメントとヘルプ

  • インストール、設定、アップデートガイドは docs/ ディレクトリにあります
  • サーバー起動後、Swagger UI(/docs)でインタラクティブなAPIドキュメントを利用可能
  • ダッシュボード(/ui)は実行時ヘルス、認証ステータスを表示し、リクエストのテストも可能

ライセンス

MIT — 無償で使用、変更、再配布可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト