{"id":30578807,"url":"https://github.com/justlovemaki/aiclient-2-api","last_synced_at":"2026-04-08T17:01:59.091Z","repository":{"id":305459484,"uuid":"1022937426","full_name":"justlovemaki/AIClient-2-API","owner":"justlovemaki","description":"Simulates Gemini CLI, Antigravity, Qwen Code, and Kiro client requests, compatible with the OpenAI API. It supports thousands of Gemini model requests per day and offers free use of the built-in Claude model in Kiro. Easily connect to any client via the API, making AI development more efficient!","archived":false,"fork":false,"pushed_at":"2026-03-08T14:56:57.000Z","size":3607,"stargazers_count":5054,"open_issues_count":3,"forks_count":761,"subscribers_count":23,"default_branch":"main","last_synced_at":"2026-03-08T17:50:50.971Z","etag":null,"topics":["aicoding","free"],"latest_commit_sha":null,"homepage":"https://aiproxy.justlikemaki.vip","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/justlovemaki.png","metadata":{"files":{"readme":"README-JA.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-20T07:05:56.000Z","updated_at":"2026-03-08T17:42:05.000Z","dependencies_parsed_at":"2026-02-15T05:06:08.700Z","dependency_job_id":null,"html_url":"https://github.com/justlovemaki/AIClient-2-API","commit_stats":null,"previous_names":["justlovemaki/geminicli2api","justlovemaki/aiclient-2-api"],"tags_count":148,"template":false,"template_full_name":null,"purl":"pkg:github/justlovemaki/AIClient-2-API","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlovemaki%2FAIClient-2-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlovemaki%2FAIClient-2-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlovemaki%2FAIClient-2-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlovemaki%2FAIClient-2-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justlovemaki","download_url":"https://codeload.github.com/justlovemaki/AIClient-2-API/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlovemaki%2FAIClient-2-API/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30459766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T03:55:51.346Z","status":"ssl_error","status_checked_at":"2026-03-13T03:55:33.055Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aicoding","free"],"created_at":"2025-08-29T04:01:22.856Z","updated_at":"2026-04-05T11:03:17.121Z","avatar_url":"https://github.com/justlovemaki.png","language":"JavaScript","funding_links":[],"categories":["CLIs"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"src/img/logo-mid.webp\" alt=\"logo\"  style=\"width: 128px; height: 128px;margin-bottom: 3px;\"\u003e\n\n# AIClient-2-API 🚀\n\n**複数のクライアント専用大規模言語モデルAPI（Gemini CLI、Antigravity、Codex, Grok、Kiro ...）を模擬リクエストし、ローカルのOpenAI互換インターフェースに統一的にラッピングする強力なプロキシ。**\n\n\u003ca href=\"https://trendshift.io/repositories/15832\" target=\"_blank\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/15832\" alt=\"justlovemaki%2FAIClient-2-API | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ca href=\"https://deepwiki.com/justlovemaki/AIClient-2-API\"\u003e\u003cimg src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\"  style=\"width: 134px; height: 23px;margin-bottom: 3px;\"\u003e\u003c/a\u003e\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Node.js](https://img.shields.io/badge/Node.js-≥20.0.0-green.svg)](https://nodejs.org/)\n[![Docker](https://img.shields.io/badge/docker-≥20.0.0-blue.svg)](https://hub.docker.com/r/justlikemaki/aiclient-2-api)\n[![GitHub stars](https://img.shields.io/github/stars/justlovemaki/AIClient-2-API.svg?style=flat\u0026label=Star)](https://github.com/justlovemaki/AIClient-2-API/stargazers)\n[![GitHub issues](https://img.shields.io/github/issues/justlovemaki/AIClient-2-API.svg)](https://github.com/justlovemaki/AIClient-2-API/issues)\n\n[**🔧 OpenClaw 設定**](./docs/OPENCLAW_CONFIG_GUIDE-JA.md) | [中文](./README-ZH.md) | [English](./README.md) | [**👉 日本語**](./README-JA.md) | [**📚 完全ドキュメント**](https://aiproxy.justlikemaki.vip/ja/)\n\n\u003c/div\u003e\n\n## 💎 スポンサー\n\n\u003ctable width=\"100%\"\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://www.packyapi.com/register?aff=AIClient2API\"\u003e\n        \u003cimg src=\"static/packycode.png\" alt=\"PackyCode Sponsor\" width=\"180\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"75%\" align=\"left\" valign=\"middle\"\u003e\n      PackyCode は信頼性が高く効率的な API リレーサービスプロバイダーであり、Claude Code、Codex、Gemini などのリレーサービス提供しています。PackyCode は当ソフトウェアユーザーに特别割引を提供しています：\u003ca href=\"https://www.packyapi.com/register?aff=AIClient2API\"\u003eこのリンクから登録\u003c/a\u003eし、チャージ時に \u003cstrong\u003eAIClient2API\u003c/strong\u003e プロモーションコードを入力すると \u003cstrong\u003e10% オフ\u003c/strong\u003eになります。\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://www.aicodemirror.com/register?invitecode=5BUE62\"\u003e\n        \u003cimg src=\"static/aicodemirror.jpg\" alt=\"AICodeMirror Sponsor\" width=\"180\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"75%\" align=\"left\" valign=\"middle\"\u003e\n      AICodeMirror の本プロジェクトへのスポンサーシップに感謝します！AICodeMirror は、Claude Code / Codex / Gemini CLI 向けに公式の高安定性リレーサービスを提供しており、企業レベルの同時実行性、迅速な請求書発行、24時間365日の専用技術サポートを備えています。Claude Code / Codex / Gemini の公式チャンネルを、元の価格の 38% / 2% / 9% で利用でき、チャージ時にはさらなる割引もあります！AICodeMirror は AIClient-2-API ユーザーに特別な特典を提供しています：\u003ca href=\"https://www.aicodemirror.com/register?invitecode=5BUE62\"\u003eこのリンクから登録\u003c/a\u003eすると、初回チャージが \u003cstrong\u003e20% オフ\u003c/strong\u003eになり、法人のお客様は最大 25% オフになります！\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://www.lingtrue.com/register?aff=MP34\"\u003e\n        \u003cimg src=\"static/lingtrueapi.png\" alt=\"LingtrueAPI Sponsor\" width=\"180\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"75%\" align=\"left\" valign=\"middle\"\u003e\n      LingtrueAPIによる本プロジェクトへのスポンサーに感謝します！LingtrueAPIは世界的な大規模言語モデルAPI中継プラットフォームであり、Claude opus 4.6、GPT 5.4、Gemini 3.1 proなど各種モデルのAPI呼び出しサービスを提供しています。低コスト、高安定性で世界中のAI機能に接続し、生産性を最大化することを目指しています。LingtrueAPIは本ソフトウェアユーザー向けに特別優遇を提供しています。\u003ca href=\"https://www.lingtrue.com/register?aff=MP34\"\u003eこのリンクから登録\u003c/a\u003eし、初回チャージ時に「\u003cstrong\u003eLingtrueAPI\u003c/strong\u003e」のクーポンコードを入力すると、\u003cstrong\u003e10%オフ\u003c/strong\u003eで利用できます。\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003ca href=\"https://poixe.com/i/ebmvga\"\u003e\n        \u003cimg src=\"static/poixeai.png\" alt=\"Poixe AI Sponsor\" width=\"180\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"75%\" align=\"left\" valign=\"middle\"\u003e\n      Poixe AI は信頼性の高い LLM API サービスを提供しています。プラットフォームが提供する API エンドポイントを活用して、AI 製品をシームレスに構築できます。また、AI API リソースをプラットフォームに提供するベンダーになり、収益を得ることも可能です。\u003ca href=\"https://poixe.com/i/ebmvga\"\u003eAIClient-2-API 専用リンクから登録\u003c/a\u003eすると、初回チャージ時に \u003cstrong\u003e$5 USD\u003c/strong\u003e のボーナスを受け取れます。\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"25%\" align=\"center\" valign=\"middle\"\u003e\n      \u003cimg src=\"static/wechat.png\" alt=\"Sponsor Contact\" width=\"150\"\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"75%\" align=\"left\" valign=\"middle\"\u003e\n      \u003cstrong\u003eスポンサーになる\u003c/strong\u003e\u003cbr\u003e\n      このプロジェクトのスポンサーになりたい場合は、左側の WeChat QR コードをスキャンしてください（追加の際に来意：\u003cstrong\u003eスポンサーシップ\u003c/strong\u003eと明记してください）。\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## 🚀 概要\n\n`AIClient2API` はクライアント制限を突破するAPIプロキシサービスで、Gemini、Antigravity、Codex, Grok、Kiroなど、元々クライアント内でのみ使用可能な無料大規模モデルを、あらゆるアプリケーションから呼び出せる標準OpenAI互換インターフェースに変換します。Node.jsをベースに構築され、OpenAI、Claude、Geminiの3大プロトコル間のインテリジェント変換をサポートし、Cherry-Studio、NextChat、Clineなどのツールで、Claude Opus 4.5、Gemini 3.0 Pro、Qwen3 Coder Plusなどの高度なモデルを大規模に無料で使用できるようにします。プロジェクトはストラテジーパターンとアダプターパターンに基づくモジュラーアーキテクチャを採用し、アカウントプール管理、インテリジェントポーリング、自動フェイルオーバー、ヘルスチェック機構を内蔵し、99.9%のサービス可用性を保証します。\n\n\u003e [!NOTE]\n\u003e **🎉 重要なマイルストーン**\n\u003e\n\u003e - Ruan Yifeng先生による[週刊359号](https://www.ruanyifeng.com/blog/2025/08/weekly-issue-359.html)での推薦に感謝します\n\u003e\n\u003e **📅 バージョン更新ログ**\n\u003e \n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003eクリックして詳細なバージョン履歴を展開\u003c/summary\u003e\n\u003e \n\u003e - **2026.03.02** - Grokプロトコルサポートを追加：Cookie/SSO方式でxAI Grokシリーズモデル（Grok 3/4）へのアクセスに対応し、マルチモーダル入力、画像/動画生成、自動トークンリフレッシュ、ストリーミング出力をサポート\n\u003e - **2026.01.26** - Codexプロトコルサポートを追加：OpenAI Codex OAuth認証での接続に対応\n\u003e - **2026.01.25** - AI 監視プラグインの強化：AI プロトコル変換前後のリクエストパラメータとレスポンスの監視をサポート。ログ管理の最適化：統一されたログ形式、ビジュアル設定\n\u003e - **2026.01.15** - プロバイダープールマネージャーの最適化：非同期リフレッシュキューメカニズム、バッファキュー重複排除、グローバル並行制御、ノードウォームアップと自動期限切れ検出を追加\n\u003e \u003e - **2026.01.03** - テーマ切替機能を追加し、プロバイダープール初期化を最適化、プロバイダーのデフォルト設定を使用するフォールバック戦略を削除\n\u003e - **2025.12.30** - メインプロセス管理と自動更新機能を追加\n\u003e - **2025.12.25** - 設定ファイル統一管理：すべての設定を `configs/` ディレクトリに集約。Dockerユーザーはマウントパスを `-v \"ローカルパス:/app/configs\"` に更新が必要\n\u003e - **2025.12.11** - Dockerイメージが自動的にビルドされ、Docker Hubで公開されました: [justlikemaki/aiclient-2-api](https://hub.docker.com/r/justlikemaki/aiclient-2-api)\n\u003e - **2025.11.30** - Antigravityプロトコルサポートの追加、Google内部インターフェース経由でGemini 3 Pro、Claude Sonnet 4.5などのモデルへのアクセスをサポート\n\u003e - **2025.11.11** - Web UI管理コントロールコンソールの追加、リアルタイム設定管理と健康状態モニタリングをサポート\n\u003e - **2025.11.06** - Gemini 3 プレビュー版のサポートを追加、モデル互換性とパフォーマンス最適化を向上\n\u003e - **2025.10.18** - Kiroオープン登録、新規アカウントに500クレジット付与、Claude Sonnet 4.5を完全サポート\n\u003e - **2025.09.01** - Qwen Code CLIを統合、`qwen3-coder-plus`モデルサポートを追加\n\u003e - **2025.08.29** - アカウントプール管理機能をリリース、マルチアカウントポーリング、自動フェイルオーバー、自動ダウングレード戦略をサポート\n\u003e   - 設定方法：config.jsonに`PROVIDER_POOLS_FILE_PATH`パラメータを追加\n\u003e   - 参考設定：[provider_pools.json](./configs/provider_pools.json.example)\n\u003e - **開発済み履歴**\n\u003e   - Gemini CLI、Kiroなどのクライアント2APIをサポート\n\u003e   - OpenAI、Claude、Geminiの3つのプロトコル相互変換、自動インテリジェント切り替え\n\u003e \u003c/details\u003e\n\n---\n\n## 💡 コアアドバンテージ\n\n### 🎯 統一アクセス、ワンストップ管理\n*   **マルチモデル統一インターフェース**：標準OpenAI互換プロトコルを通じて、一度の設定でGemini、Claude、Grok、Codex、 K2、MiniMax M2などの主流大規模モデルにアクセス\n*   **柔軟な切り替えメカニズム**：Pathルーティング、起動パラメータ、環境変数の3つの方法で動的にモデルを切り替え、異なるシナリオのニーズに対応\n*   **ゼロコスト移行**：OpenAI API仕様と完全互換、Cherry-Studio、NextChat、Clineなどのツールを変更なしで使用可能\n*   **マルチプロトコルインテリジェント変換**：OpenAI、Claude、Geminiの3大プロトコル間のインテリジェント変換をサポートし、クロスプロトコルモデル呼び出しを実現\n\n### 🚀 制限を突破、効率を向上\n*   **公式制限の回避**：OAuth認証メカニズムを利用して、Gemini、Antigravityなどの無料APIのレート制限と割り当て制限を効果的に突破\n*   **TLS 指紋の回避**：内蔵の TLS Sidecar (Go uTLS) によりブラウザの特徴をシミュレートし、Grok などのサービスの Cloudflare 403 ブロックを効果的に回避\n*   **無料高度モデル**：Kiro APIモードでClaude Opus 4.5を無料使用、Qwen OAuthモードでQwen3 Coder Plusを使用し、使用コストを削減\n*   **インテリジェントアカウントプールスケジューリング**：マルチアカウントポーリング、自動フェイルオーバー、設定ダウングレードをサポートし、99.9%のサービス可用性を保証\n\n### 🛡️ 安全で制御可能、データ透明\n*   **フルチェーンログ記録**：すべてのリクエストとレスポンスデータをキャプチャし、監査とデバッグをサポート\n*   **プライベートデータセット構築**：ログデータに基づいて専用トレーニングデータセットを迅速に構築\n*   **システムプロンプト管理**：オーバーライドと追加の2つのモードをサポートし、統一された基本指示と個別拡張の完璧な組み合わせを実現\n\n### 🔧 開発者フレンドリー、拡張が容易\n*   **Web UI管理コントロールコンソール**：リアルタイム設定管理、健全性モニタリング、APIテスト、ログ表示\n*   **モジュラーアーキテクチャ**：ストラテジーパターンとアダプターパターンに基づき、新しいモデルプロバイダーの追加はわずか3ステップ\n*   **完全なテストカバレッジ**：統合テストと単体テストのカバレッジ90%+、コード品質を保証\n*   **コンテナ化デプロイ**：Dockerサポートを提供、ワンクリックデプロイ、クロスプラットフォーム実行\n\n---\n\n## 📑 クイックナビゲーション\n\n- [💡 コアアドバンテージ](#-コアアドバンテージ)\n- [🚀 クイックスタート](#-クイックスタート)\n  - [🐳 Docker デプロイ](https://hub.docker.com/r/justlikemaki/aiclient-2-api)\n  - [📋 コア機能](#-コア機能)\n- [🔐 認証設定ガイド](#-認証設定ガイド)\n- [📁 認証ファイル保存パス](#-認証ファイル保存パス)\n- [⚙️ 高度な設定](#高度な設定)\n- [❓ よくある質問](#-よくある質問)\n- [📄 オープンソースライセンス](#-オープンソースライセンス)\n- [🙏 謝辞](#-謝辞)\n- [⚠️ 免責事項](#️-免責事項)\n\n---\n\n## 🔧 使用方法\n\n### 🚀 クイックスタート\n\nAIClient-2-APIを使い始める最も推奨される方法は、自動起動スクリプトを使用し、**Web UIコンソール**で直接ビジュアル設定を行うことです。\n\n#### 🐳 Docker クイックスタート (推奨)\n\n```bash\ndocker run -d -p 3000:3000 -p 8085-8086:8085-8086 -p 1455:1455 -p 19876-19880:19876-19880 --restart=always -v \"指定パス:/app/configs\" --name aiclient2api justlikemaki/aiclient-2-api\n```\n\n**パラメータ説明**：\n- `-d`：バックグラウンドでコンテナを実行\n- `-p 3000:3000 ...`：ポートマッピング。3000はWeb UI用、その他はOAuthコールバック用（Gemini: 8085, Antigravity: 8086, Codex: 1455, Kiro: 19876-19880）\n- `--restart=always`：コンテナ自動再起動ポリシー\n- `-v \"指定パス:/app/configs\"`：設定ディレクトリをマウント（「指定パス」を実際のパスに置き換えてください、例：`/home/user/aiclient-configs`）\n- `--name aiclient2api`：コンテナ名\n\n#### 🐳 Docker Compose デプロイ\n\nDocker Compose を使用してデプロイすることもできます。まず、`docker` ディレクトリに移動します：\n\n```bash\ncd docker\nmkdir -p configs\ndocker compose up -d\n```\n\nプリビルドイメージの代わりにソースからビルドする場合は、`docker-compose.yml` を編集してください：\n1. `image: justlikemaki/aiclient-2-api:latest` 行をコメントアウト\n2. `build:` セクションのコメントを解除\n3. `docker compose up -d --build` を実行\n\n#### 1. 起動スクリプトの実行\n*   **Linux/macOS**: `chmod +x install-and-run.sh \u0026\u0026 ./install-and-run.sh`\n*   **Windows**: `install-and-run.bat` をダブルクリックして実行\n\n\u003e **💡 スクリプトの実行に失敗した場合は、手動で依存関係をインストールして起動できます：**\n\u003e ```bash\n\u003e npm install\n\u003e npm start\n\u003e ```\n\n\n#### 2. コンソールへのアクセス\nサーバー起動後、ブラウザで以下にアクセスしてください：\n👉 [**http://localhost:3000**](http://localhost:3000)\n\n\u003e **デフォルトパスワード**: `admin123` (ログイン後、コンソールまたは `pwd` ファイルの変更で変更可能)\n\n#### 3. ビジュアル設定 (推奨)\n**「設定管理」** ページに入ると、以下を直接行えます：\n*   ✅ 各プロバイダーの API Key の入力または OAuth 認証情報のアップロード\n*   ✅ デフォルトモデルプロバイダーのリアルタイム切り替え\n*   ✅ 健全性ステータスとリアルタイムリクエストログの監視\n\n#### 4. ローカル環境の準備 (非 Docker ユーザー)\nローカルで直接実行（スクリプトまたは Node.js 経由）し、Grok などのサービスの TLS 検出を回避する必要がある場合は、以下を確認してください：\n*   ✅ **Go 言語のインストール**：[Go 公式サイト](https://go.dev/) からダウンロードしてインストール (1.20+)。\n*   ✅ **Sidecar の手動ビルド**：以下のコマンドを実行して TLS プロキシコンポーネントをビルドします：\n    ```bash\n    cd tls-sidecar \u0026\u0026 go build -o tls-sidecar \u0026\u0026 cd ..\n    ```\n    *注意：このバイナリファイルがビルドされていない場合、TLS Sidecar 機能は実行ファイルが見つからないため起動に失敗します。*\n\n#### スクリプト実行例\n```\n========================================\n  AI Client 2 API 快速インストール起動スクリプト\n========================================\n\n[確認] Node.js がインストールされているかを確認中...\n✅ Node.js がインストールされています、バージョン: v20.10.0\n✅ package.json ファイルが見つかりました\n✅ node_modules ディレクトリが既に存在しています\n✅ プロジェクトファイルの確認が完了しました\n\n========================================\n  AI Client 2 API サーバーを起動中...\n========================================\n\n🌐 サーバーは http://localhost:3000 で起動します\n📖 管理インターフェースを表示するには http://localhost:3000 にアクセス\n⏹️  サーバーを停止するには Ctrl+C を押してください\n```\n\n\u003e **💡 ヒント**：スクリプトは自動的に依存関係をインストールし、サーバーを起動します。問題が発生した場合、スクリプトは明確なエラーメッセージと解決案を提供します。\n\n---\n\n### 📋 コア機能\n\n#### Web UI管理コントロールコンソール\n\n![Web UI](src/img/zh.png)\n\n以下の機能モジュールを備えたWeb管理インターフェース：\n\n**📊 ダッシュボード**：システム概要、インタラクティブなルーティング例、クライアント設定ガイド\n\n**⚙️ 設定管理**：全プロバイダー（Gemini、Antigravity、OpenAI、Claude、Kiro、Qwen）のリアルタイムパラメータ修正、高度設定、ファイルアップロード対応\n\n**🔗 プロバイダープール**：アクティブ接続監視、プロバイダー健全性統計、有効化/無効化管理\n\n**📁 設定ファイル**：OAuth資格情報の集中管理、検索フィルタリング、ファイル操作機能\n\n**📜 リアルタイムログ**：システムログとリクエストログのライブ表示、管理コントロール付き\n\n**🔐 ログイン認証**：デフォルトパスワード `admin123`、`pwd`ファイルで変更可能\n\nアクセス：`http://localhost:3000` → ログイン → サイドバーナビゲーション → 即座有効\n\n#### マルチモーダル入力機能\n画像、ドキュメントなど様々なタイプの入力をサポートし、よりリッチなインタラクティブ体験とより強力なアプリケーションシナリオを提供します。\n\n#### 最新モデルサポート\n以下の最新大規模モデルをシームレスにサポート、Web UIまたは[`config.json`](./configs/config.json)で対応するエンドポイントを設定するだけで使用可能：\n*   **Grok 3 / Grok 4** - xAIのフラッグシップモデル。Grok Cookie/SSO経由でサポートされ、思考モデル、画像生成、動画生成に対応\n*   **Claude 4.5 Opus** - Anthropic史上最強モデル、Kiro、Antigravity経由でサポート\n*   **Gemini 3 Pro** - Google次世代アーキテクチャプレビュー版、Gemini、Antigravity経由でサポート\n*   **Qwen3 Coder Plus** - アリババ通義千問の最新コード専用モデル、Qwen Code経由でサポート\n*   **Kimi K2 / MiniMax M2** - 国内トップフラッグシップモデルの同期サポート、カスタムOpenAI、Claude経由でサポート\n\n---\n\n### 🔐 認証設定ガイド\n\n\u003cdetails\u003e\n\u003csummary\u003eクリックして各プロバイダーの認証設定詳細手順を展開\u003c/summary\u003e\n\n\u003e **💡 ヒント**：最適な体験を得るために、**Web UIコンソール**を通じてビジュアルに認証管理を行うことを推奨します。\n\n#### 🌐 Web UI クイック認証 (推奨)\nWeb UI管理インターフェースでは、極めて迅速に認証設定を完了できます：\n1. **認証の生成**：**「プロバイダープール」** ページまたは **「設定管理」** ページで、対応するプロバイダー（Gemini、Qwenなど）の右上にある **「認証生成」** ボタンをクリックします。\n2. **スキャン/ログイン**：認証ダイアログが表示されるので、**「ブラウザで開く」** をクリックしてログイン検証を行います。Qwenの場合はウェブログインを完了するだけ、Gemini、Antigravityの場合はGoogleアカウントの認証を完了させます。\n3. **自動保存**：認証成功後、システムは自動的に資格情報を取得し、`configs/` の対応するディレクトリに保存します。**「設定ファイル」** ページで新しく生成された資格情報を確認できます。\n4. **ビジュアル管理**：Web UIでいつでも資格情報のアップロードや削除、または **「クイック関連付け」** 機能を使用して既存の資格情報ファイルをワンクリックでプロバイダーにバインドできます。\n\n#### Gemini CLI OAuth設定\n1. **OAuth認証情報の取得**：[Google Cloud Console](https://console.cloud.google.com/)にアクセスしてプロジェクトを作成し、Gemini APIを有効化\n2. **プロジェクト設定**：有効なGoogle CloudプロジェクトIDを提供する必要があり、起動パラメータ`--project-id`で指定可能\n3. **プロジェクトIDの確認**：Web UIで設定する際、入力したプロジェクトIDが Google Cloud Console および Gemini CLI で表示されるプロジェクトIDと一致していることを確認してください。\n\n#### Antigravity OAuth設定\n1. **個人アカウント**：個人アカウントは個別に認証が必要ですが、申請チャンネルは閉鎖されています。\n2. **Pro会員**：Antigravity は一時的に Pro 会員に開放されています。まず Pro 会員を購入する必要があります。\n3. **組織アカウント**：組織アカウントは個別に認証が必要です。管理者に連絡して認証を取得してください。\n\n#### Qwen Code OAuth設定\n1. **初回認証**：Qwenサービス設定後、システムが自動的にブラウザで認証ページを開きます\n2. **推奨パラメータ**：最良の結果を得るために公式デフォルトパラメータを使用\n   ```json\n   {\n     \"temperature\": 0,\n     \"top_p\": 1\n   }\n   ```\n\n#### Kiro API設定\n1. **環境準備**：[Kiroクライアントをダウンロードしてインストール](https://kiro.dev/pricing/)\n2. **認証完了**：クライアントでアカウントにログインし、`kiro-auth-token.json`認証情報ファイルを生成\n3. **ベストプラクティス**：**Claude Code**との併用を推奨、最適な体験を得られる\n4. **重要なお知らせ**：Kiroサービス使用ポリシーが更新されました、最新の使用制限と条件については公式ウェブサイトをご確認ください。\n\n#### Kiro 拡張思考 (Claude モデル)\nAIClient-2-API は、`claude-kiro-oauth` にルーティングされた Claude 互換リクエスト (`/v1/messages`) または OpenAI 互換リクエスト (`/v1/chat/completions`) を使用する場合、Kiro 拡張思考をサポートします。\n\n**Claude 互換インターフェース (`/v1/messages`)**:\n```bash\ncurl http://localhost:3000/claude-kiro-oauth/v1/messages \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer your-api-key\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-5\",\n    \"max_tokens\": 1024,\n    \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 10000 },\n    \"messages\": [{ \"role\": \"user\", \"content\": \"この問題をステップバイステップで解決してください。\" }]\n  }'\n```\n\n**OpenAI 互換インターフェース (`/v1/chat/completions`)**:\n```bash\ncurl http://localhost:3000/claude-kiro-oauth/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer your-api-key\" \\\n  -d '{\n    \"model\": \"claude-sonnet-4-5\",\n    \"messages\": [{ \"role\": \"user\", \"content\": \"この問題をステップバイステップで解決してください。\" }],\n    \"extra_body\": {\n      \"anthropic\": {\n        \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 10000 }\n      }\n    }\n  }'\n```\n\n**アダプティブモード**:\n- Claude: `\"thinking\": { \"type\": \"adaptive\", \"effort\": \"high\" }`\n- OpenAI: `\"extra_body.anthropic.thinking\": { \"type\": \"adaptive\", \"effort\": \"high\" }`\n\n注意：\n- `budget_tokens` は `[1024, 24576]` の範囲に制限されます（省略または無効な場合はデフォルトの `20000` が適用されます）。\n- トークンの取得/リフレッシュ/プールローテーションメカニズムは変更されません。\n\n#### Codex OAuth設定\n1. **認証の生成**：Web UIの「プロバイダープール」または「設定管理」ページで、Codexの「認証生成」ボタンをクリック\n2. **ブラウザログイン**：システムがOpenAI Codex認証ページを開き、OAuthログインを完了\n3. **自動保存**：認証成功後、システムがCodexのOAuth認証情報ファイルを自動保存\n4. **コールバックポート**：OAuthコールバックポート `1455` が占有されていないことを確認\n\n#### Grok Cookie/SSO 設定\n1. **SSOトークンの取得**: [Grok公式サイト](https://grok.com/)にログインし、ブラウザの開発者ツールの Application -\u003e Cookies から `sso` の値をコピーします。\n2. **設定の入力**: Web UIの「設定管理」ページ、または設定ファイルを直接編集して、トークンを `GROK_COOKIE_TOKEN` に入力します。\n3. **サポート機能**:\n   - チャットおよび思考モデル (Grok 3 Thinking)\n   - 画像生成 (Grok Imagine)\n   - 動画生成 (Grok Video)\n4. **注意事項**: ブロックを避けるため、`GROK_USER_AGENT` がCookie取得時と同じブラウザのものであることを確認してください。\n\n#### アカウントプール管理設定\n1. **プール設定ファイルの作成**：[provider_pools.json.example](./configs/provider_pools.json.example) を参考に設定ファイルを作成します\n2. **プールパラメータの設定**：config.json で `PROVIDER_POOLS_FILE_PATH` を設定し、プール設定ファイルを指定します\n3. **起動パラメータ設定**：`--provider-pools-file \u003cpath\u003e` パラメータを使用してプール設定ファイルのパスを指定します\n4. **ヘルスチェック**：システムは定期的にヘルスチェックを自動実行し、健全でないプロバイダーを使用しません\n\n\u003c/details\u003e\n\n### 📁 認証ファイル保存パス\n\n\u003cdetails\u003e\n\u003csummary\u003eクリックして各サービスの認証情報のデフォルト保存場所を展開\u003c/summary\u003e\n\n各サービスの認証情報ファイルのデフォルト保存場所：\n\n| サービス | デフォルトパス | 説明 |\n|------|---------|------|\n| **Gemini** | `~/.gemini/oauth_creds.json` | OAuth認証情報 |\n| **Kiro** | `~/.aws/sso/cache/kiro-auth-token.json` | Kiro認証トークン |\n| **Qwen** | `~/.qwen/oauth_creds.json` | Qwen OAuth認証情報 |\n| **Antigravity** | `~/.antigravity/oauth_creds.json` | Antigravity OAuth認証情報 (Claude 4.5 Opus サポート) |\n| **Codex** | `~/.codex/oauth_creds.json` | Codex OAuth認証情報 |\n\n\u003e **説明**：`~`はユーザーホームディレクトリを表します（Windows: `C:\\Users\\ユーザー名`、Linux/macOS: `/home/ユーザー名`または`/Users/ユーザー名`）\n\n\u003e **カスタムパス**：設定ファイルの関連パラメータまたは環境変数でカスタム保存場所を指定可能\n\n\u003c/details\u003e\n\n---\n\n### 高度な設定\n\n\u003cdetails\u003e\n\u003csummary\u003eクリックしてプロキシ設定、モデルフィルタリング、Fallbackなどの高度な設定を展開\u003c/summary\u003e\n\n#### 1. プロキシ設定\n\n本プロジェクトは柔軟なプロキシ設定をサポートしており、異なるプロバイダーに統一プロキシを設定したり、プロバイダー独自のプロキシ済みエンドポイントを使用したりできます。\n\n**設定方法**：\n\n1. **Web UI設定**（推奨）：便利な設定管理\n\n  Web UIの「設定管理」ページで、すべてのプロキシオプションを視覚的に設定できます：\n  - **統一プロキシ**：「プロキシ設定」エリアにプロキシアドレスを入力し、プロキシを使用するプロバイダーにチェックを入れます\n  - **プロバイダーエンドポイント**：各プロバイダーの設定エリアで、Base URLをプロキシ済みエンドポイントに直接変更します\n  - **「設定を保存」をクリック**：サービスを再起動せずに即座に有効になります\n\n2. **統一プロキシ設定**：グローバルプロキシを設定し、どのプロバイダーがそれを使用するかを指定します\n\n   - **Web UI設定**：「設定管理」ページの「プロキシ設定」エリアにプロキシアドレスを入力し、プロキシを使用するプロバイダーにチェックを入れます\n   - **設定ファイル**：`configs/config.json`で設定\n   ```json\n   {\n     \"PROXY_URL\": \"http://127.0.0.1:7890\",\n      \"PROXY_ENABLED_PROVIDERS\": [\n        \"gemini-cli-oauth\",\n        \"gemini-antigravity\",\n        \"claude-kiro-oauth\",\n        \"grok-custom\"\n      ]\n}\n   ```\n\n3. **プロバイダー独自のプロキシ済みエンドポイント**：一部のプロバイダー（OpenAI、Claudeなど）はプロキシ済みAPIエンドポイントの設定をサポートしています\n\n   - **Web UI設定**：「設定管理」ページの各プロバイダー設定エリアで、対応するBase URLを変更します\n   - **設定ファイル**：`configs/config.json`で設定\n   ```json\n   {\n     \"OPENAI_BASE_URL\": \"https://your-proxy-endpoint.com/v1\",\n     \"CLAUDE_BASE_URL\": \"https://your-proxy-endpoint.com\"\n   }\n   ```\n\n**サポートされるプロキシタイプ**：\n- **HTTPプロキシ**：`http://127.0.0.1:7890`\n- **HTTPSプロキシ**：`https://127.0.0.1:7890`\n- **SOCKS5プロキシ**：`socks5://127.0.0.1:1080`\n\n**使用シナリオ**：\n- **ネットワーク制限環境**：Google、OpenAIなどのサービスに直接アクセスできないネットワーク環境で使用\n- **ハイブリッド設定**：一部のプロバイダーは統一プロキシを使用し、他はプロバイダー独自のプロキシ済みエンドポイントを使用\n- **柔軟な切り替え**：Web UIでいつでも特定のプロバイダーのプロキシを有効化/無効化できます\n\n**注意事項**：\n- プロキシ設定の優先順位：統一プロキシ設定 \u003e プロバイダー独自エンドポイント \u003e 直接接続\n- プロキシサービスが安定して利用可能であることを確認してください。そうでない場合、サービス品質に影響する可能性があります\n- SOCKS5プロキシは通常、HTTPプロキシよりもパフォーマンスが優れています\n\n#### 2. モデルフィルタリング設定\n\n`notSupportedModels` 設定を通じてサポートされていないモデルを除外でき、システムは自動的にこれらのプロバイダーをスキップします。\n\n**設定方法**：`provider_pools.json` でプロバイダーに `notSupportedModels` フィールドを追加：\n\n```json\n{\n  \"gemini-cli-oauth\": [\n    {\n      \"uuid\": \"provider-1\",\n      \"notSupportedModels\": [\"gemini-3.0-pro\", \"gemini-3.5-flash\"],\n      \"checkHealth\": true\n    }\n  ]\n}\n```\n\n**動作原理**：\n- 特定のモデルをリクエストする際、システムは自動的にそのモデルをサポートしていないと設定されたプロバイダーをフィルタリングします\n- そのモデルをサポートするプロバイダーのみがリクエストを処理するために選択されます\n\n**使用シナリオ**：\n- 一部のアカウントは割り当てまたは権限の制限により特定のモデルにアクセスできない\n- 異なるアカウントに異なるモデルアクセス権限を割り当てる必要がある\n\n#### 3. クロスタイプフォールバック設定\n\nあるProvider Type（例：`gemini-cli-oauth`）のすべてのアカウントが429割り当て制限により枯渇したり、unhealthyとマークされた場合、システムは直接エラーを返すのではなく、互換性のある別のProvider Type（例：`gemini-antigravity`）に自動的にフォールバックできます。\n\n**設定方法**：`configs/config.json` に `providerFallbackChain` 設定を追加：\n\n```json\n{\n  \"providerFallbackChain\": {\n    \"gemini-cli-oauth\": [\"gemini-antigravity\"],\n    \"gemini-antigravity\": [\"gemini-cli-oauth\"],\n    \"claude-kiro-oauth\": [\"claude-custom\"],\n    \"claude-custom\": [\"claude-kiro-oauth\"]\n  }\n}\n```\n\n**動作原理**：\n1. メインのProvider Typeプールからhealthyなアカウントを選択しようとします\n2. そのタイプのすべてのアカウントがunhealthyまたは429を返す場合：\n   - 設定されたフォールバックタイプを検索\n   - フォールバックタイプがリクエストされたモデルをサポートしているか確認（プロトコル互換性チェック）\n   - フォールバックタイプのプールからhealthyなアカウントを選択\n3. 多段階降格チェーンをサポート：`gemini-cli-oauth → gemini-antigravity → openai-custom`\n4. すべてのフォールバックタイプも利用できない場合のみエラーを返します\n\n**使用シナリオ**：\n- バッチタスクシナリオでは、単一のProvider Typeの無料RPD割り当てが短時間で簡単に枯渇する可能性があります\n- クロスタイプフォールバックを通じて、複数のProviderの独立した割り当てを十分に活用し、全体的な可用性とスループットを向上させることができます\n\n**注意事項**：\n- フォールバックはプロトコル互換タイプ間でのみ発生します（例：`gemini-*` 間、`claude-*` 間）\n- システムは自動的にターゲットProvider Typeがリクエストされたモデルをサポートしているか確認します\n\n#### 4. TLS Sidecar (Bypass 403/Cloudflare)\n\nGrok などの TLS 指紋（JA3/JA4）を厳密に検証するサービスに対して、本プロジェクトは Go uTLS ベースの Sidecar プロキシを統合しています。これにより、ブラウザの TLS 特徴をシミュレートし、403 Forbidden エラーを効果的に解決します。\n\n**設定手順**:\n\n1.  **バイナリのビルド**:\n    TLS シミュレーションには Go 言語のサポートが必要です。まず sidecar をビルドする必要があります：\n    ```bash\n    cd tls-sidecar\n    go build -o tls-sidecar\n    ```\n    *Windows ユーザーは、ビルド後、生成された `tls-sidecar.exe` が `tls-sidecar/` またはルートディレクトリにあることを確認してください。*\n\n2.  **設定の有効化**:\n    Web UI の「設定管理」ページで **TLS Sidecar** を有効にするか、`configs/config.json` を編集します：\n    ```json\n    {\n      \"TLS_SIDECAR_ENABLED\": true,\n      \"TLS_SIDECAR_PORT\": 9090\n    }\n    ```\n\n3.  **動作原理**:\n    - 有効にすると、システムは自動的に Go プロセスを起動し管理します。\n    - 特定のプロバイダー（Grok など）へのリクエストは、自動的に Sidecar にルーティングされます。\n    - Sidecar は最新の Chrome 指紋を使用して TLS ハンドシェイクを行い、HTTP/2 の自動ネゴシエーションをサポートします。\n\n**注意事項**:\n- ローカル実行には Go 環境 (1.20+) が必要です。\n- **Docker ユーザー**: イメージには既にプリビルド済みのバイナリが含まれています。設定で有効にするだけでよく、手動でのビルドは不要です。\n\n\u003c/details\u003e\n\n---\n\n## ❓ よくある質問\n\n\u003cdetails\u003e\n\u003csummary\u003eクリックしてよくある質問と解決策を展開（ポート占有、Docker起動、429エラーなど）\u003c/summary\u003e\n\n### 1. OAuth認証失敗\n\n**問題の説明**：「認証生成」をクリックした後、ブラウザで認証ページが開きますが、認証が失敗するか完了できません。\n\n**解決策**：\n- **ネットワーク接続を確認**：Google、アリババクラウドなどのサービスに正常にアクセスできることを確認\n- **ポート占有を確認**：OAuthコールバックには特定のポートが必要です（Gemini: 8085, Antigravity: 8086, Codex: 1455, Kiro: 19876-19880）、これらのポートが占有されていないことを確認\n- **ブラウザキャッシュをクリア**：シークレットモードを使用するか、ブラウザキャッシュをクリアして再試行\n- **ファイアウォール設定を確認**：ファイアウォールがローカルコールバックポートへのアクセスを許可していることを確認\n- **Dockerユーザー**：すべてのOAuthコールバックポートが正しくマッピングされていることを確認\n\n### 2. ポートが使用中\n\n**問題の説明**：サービス起動時にポートが既に使用中と表示されます（例：`EADDRINUSE`）。\n\n**解決策**：\n```bash\n# Windows - ポートを占有しているプロセスを検索\nnetstat -ano | findstr :3000\n# タスクマネージャーで対応するPIDのプロセスを終了\n\n# Linux/macOS - ポートを占有しているプロセスを検索して終了\nlsof -i :3000\nkill -9 \u003cPID\u003e\n```\n\nまたは `configs/config.json` のポート設定を変更して別のポートを使用します。\n\n### 3. Dockerコンテナが起動しない\n\n**問題の説明**：Dockerコンテナの起動に失敗するか、すぐに終了します。\n\n**解決策**：\n- **ログを確認**：`docker logs aiclient2api` でエラーメッセージを確認\n- **マウントパスを確認**：`-v` パラメータのローカルパスが存在し、読み書き権限があることを確認\n- **ポート競合を確認**：マッピングされたすべてのポートがホストで占有されていないことを確認\n- **イメージを再取得**：`docker pull justlikemaki/aiclient-2-api:latest`\n\n### 4. 認証情報ファイルが認識されない\n\n**問題の説明**：認証情報ファイルをアップロードまたは設定した後、システムが認識できないかフォーマットエラーと表示されます。\n\n**解決策**：\n- **ファイル形式を確認**：認証情報ファイルが有効なJSON形式であることを確認\n- **ファイルパスを確認**：ファイルパスが正しいことを確認、Dockerユーザーはファイルがマウントディレクトリ内にあることを確認\n- **ファイル権限を確認**：サービスが認証情報ファイルを読み取る権限があることを確認\n- **認証情報を再生成**：認証情報が期限切れの場合、OAuth認証を再度実行\n\n### 5. リクエストが429エラーを返す\n\n**問題の説明**：APIリクエストが頻繁に429 Too Many Requestsエラーを返します。\n\n**解決策**：\n- **アカウントプールを設定**：`provider_pools.json` に複数のアカウントを追加し、ポーリングメカニズムを有効化\n- **フォールバックを設定**：`config.json` で `providerFallbackChain` を設定し、クロスタイプ降格を実現\n- **リクエスト頻度を下げる**：リクエスト間隔を適切に増やし、レート制限のトリガーを回避\n- **割り当てリセットを待つ**：無料割り当ては通常、毎日または毎分リセットされます\n\n### 6. モデルが利用できないかエラーを返す\n\n**問題の説明**：特定のモデルをリクエストするとエラーが返されるか、モデルが利用できないと表示されます。\n\n**解決策**：\n- **モデル名を確認**：正しいモデル名を使用していることを確認（大文字小文字を区別）\n- **プロバイダーサポートを確認**：現在設定されているプロバイダーがそのモデルをサポートしていることを確認\n- **アカウント権限を確認**：一部の高度なモデルは特定のアカウント権限が必要な場合があります\n- **モデルフィルタリングを設定**：`notSupportedModels` を使用してサポートされていないモデルを除外\n\n### 7. Web UIにアクセスできない\n\n**問題の説明**：ブラウザで `http://localhost:3000` を開けません。\n\n**解決策**：\n- **サービス状態を確認**：サービスが正常に起動したことを確認、ターミナル出力を確認\n- **ポートマッピングを確認**：Dockerユーザーは `-p 3000:3000` パラメータが正しいことを確認\n- **別のアドレスを試す**：`http://127.0.0.1:3000` へのアクセスを試す\n- **ファイアウォールを確認**：ファイアウォールがポート3000へのアクセスを許可していることを確認\n\n### 8. ストリーミングレスポンスが中断される\n\n**問題の説明**：ストリーミング出力を使用すると、レスポンスが途中で中断されるか不完全になります。\n\n**解決策**：\n- **ネットワーク安定性を確認**：ネットワーク接続が安定していることを確認\n- **タイムアウトを増やす**：クライアント設定でリクエストタイムアウトを増やす\n- **プロキシ設定を確認**：プロキシを使用している場合、プロキシが長時間接続をサポートしていることを確認\n- **サービスログを確認**：エラーメッセージがないか確認\n\n### 9. 設定変更が反映されない\n\n**問題の説明**：Web UIで設定を変更した後、サービスの動作が変わりません。\n\n**解決策**：\n- **ページを更新**：変更後にWeb UIページを更新\n- **保存状態を確認**：設定が正常に保存されたことを確認（プロンプトメッセージを確認）\n- **サービスを再起動**：一部の設定はサービスの再起動が必要な場合があります\n- **設定ファイルを確認**：`configs/config.json` を直接確認して変更が書き込まれていることを確認\n\n### 10. APIが404を返す\n\n**解決策**：\n- **エンドポイントパスを確認**：`/v1/chat/completions` などの正しいエンドポイントパスを使用していることを確認\n- **クライアントの自動補完を確認**：一部のクライアント（Cherry-Studio、NextChatなど）はBase URLの後にパス（`/v1/chat/completions` など）を自動的に追加し、パスの重複を引き起こします。コンソールで実際のリクエストURLを確認し、冗长なパス部分を削除してください\n- **サービス状態を確認**：サービスが正常に起動していることを確認、`http://localhost:3000` にアクセスしてWeb UIを確認\n- **ポート設定を確認**：リクエストが正しいポート（デフォルト3000）に送信されていることを確認\n- **利用可能なルートを確認**：Web UIダッシュボードページの「インタラクティブルーティング例」ですべての利用可能なエンドポイントを確認\n\n### 11. Unauthorized: API key is invalid or missing\n\n**問題の説明**：APIエンドポイントを呼び出すと `Unauthorized: API key is invalid or missing.` エラーが返されます。\n\n**解決策**：\n- **API Key設定を確認**：`configs/config.json` またはWeb UIでAPI Keyが正しく設定されていることを確認\n- **リクエストヘッダー形式を確認**：リクエストに正しい形式のAuthorizationヘッダーが含まれていることを確認、例：`Authorization: Bearer your-api-key`\n- **サービスログを確認**：Web UIの「リアルタイムログ」ページで詳細なエラーメッセージを確認し、具体的な原因を特定\n\n### 12. No available and healthy providers for type\n\n**問題の説明**：APIを呼び出すと `No available and healthy providers for type xxx` エラーが返されます。\n\n**解決策**：\n- **プロバイダー状態を確認**：Web UIの「プロバイダープール」ページで対応するタイプのプロバイダーが健全な状態にあるか確認\n- **認証情報の有効性を確認**：OAuth認証情報が期限切れでないことを確認、期限切れの場合は認証を再生成\n- **割り当て制限を確認**：一部のプロバイダーは無料割り当て上限に達している可能性があります。割り当てリセットを待つか、より多くのアカウントを追加\n- **フォールバックを有効化**：`config.json` で `providerFallbackChain` を設定し、主プロバイダーが利用できない場合に自動的にバックアッププロバイダーに切り替え\n- **詳細ログを確認**：Web UIの「リアルタイムログ」ページで具体的なヘルスチェック失敗の原因を確認\n\n### 13. リクエストが403 Forbiddenエラーを返す\n\n**問題の説明**：APIリクエストが403 Forbiddenエラーを返します。\n\n**解決策**：\n- **TLS Sidecar の有効化**：Grok などのサービスにおいて、403 エラーは TLS 指紋のブロックが原因であることが多いです。[高度な設定 - TLS Sidecar](#5-tls-sidecar-bypass-403cloudflare) を参照して Sidecar を有効にし、ビルドしてください。\n- **ノード状態を確認**：Web UIの「プロバイダープール」ページでノード状態が正常（ヘルスチェック合格）であれば、このエラーは無視できます。システムが自動的に処理します\n- **アカウント権限を確認**：使用しているアカウントがリクエストされたモデルまたはサービスにアクセスする権限があることを確認\n- **API Key権限を確認**：一部のプロバイダーのAPI Keyにはアクセス範囲の制限がある場合があります。Keyに十分な権限があることを確認\n- **地域制限を確認**：一部のサービスには地域アクセス制限がある場合があります。プロキシまたはVPNの使用を試してください\n- **認証情報の状態を確認**：OAuth認証情報が取り消されたり期限切れになっている可能性があります。認証の再生成を試してください\n- **リクエスト頻度を確認**：一部のプロバイダーはリクエスト頻度に厳しい制限があります。リクエスト頻度を下げて再試行\n- **プロバイダードキュメントを確認**：対応するプロバイダーの公式ドキュメントにアクセスして、具体的なアクセス制限と要件を理解\n\n\u003c/details\u003e\n\n---\n\n## 📄 オープンソースライセンス\n\n本プロジェクトは [**GNU General Public License v3 (GPLv3)**](https://www.gnu.org/licenses/gpl-3.0) オープンソースライセンスに従います。詳細はルートディレクトリの `LICENSE` ファイルをご覧ください。\n\n## 🙏 謝辞\n\n本プロジェクトの開発は公式Google Gemini CLIから大きなインスピレーションを受け、Cline 3.18.0版 `gemini-cli.ts` の一部のコード実装を参考にしました。ここにGoogle公式チームとCline開発チームの優れた仕事に心より感謝申し上げます！\n\n### 貢献者リスト\n\nAIClient-2-APIプロジェクトに貢献してくれたすべての開発者に感謝します：\n\n[![Contributors](https://contrib.rocks/image?repo=justlovemaki/AIClient-2-API)](https://github.com/justlovemaki/AIClient-2-API/graphs/contributors)\n\n\n### 🌟 Star History\n\n\n[![Star History Chart](https://api.star-history.com/svg?repos=justlovemaki/AIClient-2-API\u0026type=Timeline)](https://www.star-history.com/#justlovemaki/AIClient-2-API\u0026Timeline)\n\n---\n\n## ⚠️ 免責事項\n\n### 使用リスクの注意\n本プロジェクト（AIClient-2-API）は学習と研究目的のみです。ユーザーは本プロジェクト使用時、すべてのリスクを自己負担する必要があります。作者は本プロジェクトの使用により生じた直接的、間接的、または結果的な損失について一切の責任を負いません。\n\n### サードパーティサービスの責任説明\n本プロジェクトはAPIプロキシツールであり、AIモデルサービスを提供していません。すべてのAIモデルサービスは対応するサードパーティプロバイダー（Google、OpenAI、Anthropicなど）により提供されます。ユーザーが本プロジェクトを通じてこれらのサードパーティサービスにアクセスする際は、各サードパーティサービスの利用規約とポリシーを遵守する必要があります。作者はサードパーティサービスの可用性、品質、セキュリティ、合法性について責任を負いません。\n\n### データプライバシー説明\n本プロジェクトはローカルで実行され、ユーザーのデータを収集またはアップロードしません。ただし、ユーザーは本プロジェクト使用時、APIキーやその他の機密情報を保護することに注意する必要があります。定期的にAPIキーを確認・更新し、安全でないネットワーク環境での本プロジェクトの使用を避けることを推奨します。\n\n### 法的コンプライアンスの注意\nユーザーは本プロジェクト使用時、所在国/地域の法律法規を遵守する必要があります。本プロジェクトを違法な目的に使用することは厳禁です。ユーザーが法律法規に違反したことによるいかなる結果も、ユーザー自身がすべての責任を負うものとします。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustlovemaki%2Faiclient-2-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustlovemaki%2Faiclient-2-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustlovemaki%2Faiclient-2-api/lists"}