AIRouterは大規模言語モデル(LLM)のために設計されたインテリジェントなルーティングツールで、複数のLLMプロバイダー(OpenAI、Anthropic、Googleなど)を統一されたAPIインターフェースで接続し、効率的なタスク分配を実現します。AIRouterはインテリジェントなロードバランシングをサポートし、応答時間、コスト、成功率に基づいて最適なモデルを選択し、リアルタイムのヘルスモニタリングとAPIキー管理を提供する。AIRouterはまた、マルチモーダル入力(テキスト+画像など)と関数呼び出しをサポートし、モデルをまたいで操作する必要がある開発者に適している。このプロジェクトはPython開発に基づいており、Dockerコンテナによるデプロイをサポートしている。
機能一覧
- 統一APIインターフェースOpenRouter、DeepInfra、TogetherAIなど、複数のLLMプロバイダーに単一のインターフェースでアクセス可能。
- インテリジェントなロードバランシングレスポンスタイム、コスト、成功率に基づき、タスクを最適なモデルに動的に割り当てます。
- リアルタイムのヘルス・モニタリングAPIのステータスを自動的にチェックし、利用できないモデルや高コストのモデルをブロックします。
- 効率的なAPIキー管理キーの使用を最適化し、パフォーマンスを向上させ、無効なキーを自動的に回避します。
- マルチモーダルサポートテキストや画像の入力や関数コールを処理し、多様なタスク要件に対応。
- パレオプティマル・チョイス性能とコストのバランスを考慮し、複数のモデルから最適なモデルをインテリジェントに選択。
- コスト最適化ヘルスチェック・ブロック機能により、高額モデルの使用コストを削減。
- コンテナ展開Dockerデプロイをサポートし、環境設定と起動プロセスを簡素化。
ヘルプの使用
インストールとセットアップ
AIRouterはオープンソースのPythonプロジェクトで、PythonパッケージやDockerによるデプロイをサポートしている。以下はインストールと使用方法の詳細です:
1.環境準備
- システム要件Python3.7以上、LinuxまたはmacOSを推奨。
- 依存ツール::
- Gitのインストール:コード・リポジトリをクローンする。
- Dockerのインストール(オプション):コンテナ展開のため。
- MySQLのインストール:APIキーの使用ログを保存する。
- Pythonバージョンの確認::
python --version
バージョンが3.7以上であることを確認してください。
2.倉庫のクローン化
- インタビュー https://github.com/THESIS-AGENT/AIRouterリポジトリのURLをコピーする。
- ターミナルで実行:
git clone https://github.com/THESIS-AGENT/AIRouter.git cd AIRouter
3.依存関係のインストール
- 方法1:Pythonパッケージとしてインストールする(推奨)::
pip install -e .
- 方法2:依存関係を直接インストールする::
pip install -r requirements.txt
4.構成プロジェクト
- APIキーの設定::
- サンプル設定ファイルをコピーする:
cp ew_config/api_keys.example.py ew_config/api_keys_local.py
- コンパイラ
ew_config/api_keys_local.py
各LLMプロバイダーの実際のAPIキーを記入してください。例えばAPI_KEYS = { "openai": "sk-xxxxxxxxxxxxxxxxxxxx", "anthropic": "sk-ant-xxxxxxxxxxxxxxxx", "google": "AIzaSy-xxxxxxxxxxxxxxxx" }
- サンプル設定ファイルをコピーする:
- データベースのセットアップ::
- MySQL データベースを作成します:
CREATE DATABASE airouter; CREATE TABLE api_key_usage ( request_id VARCHAR(50) PRIMARY KEY, api_key VARCHAR(100) NOT NULL, model_name VARCHAR(50) NOT NULL, source_name VARCHAR(50) NOT NULL, prompt_tokens INT, completion_tokens INT, create_time DATETIME NOT NULL, finish_time DATETIME NOT NULL, execution_time FLOAT NOT NULL, status BOOLEAN NOT NULL );
- 環境変数ファイルをコピーする:
cp env.example .env
- コンパイラ
.env
ファイルにデータベース情報を記入する:DB_HOST=localhost DB_USER=root DB_PASSWORD=your_password DB_NAME=airouter DB_PORT=3306
- MySQL データベースを作成します:
5.サービスの活性化
- Dockerデプロイメント(推奨)::
- Dockerイメージをビルドする:
docker build -t airouter:latest .
- サービスを開始する:
docker-compose up -d
- サービスのステータスを確認する:
docker-compose ps
- Dockerイメージをビルドする:
- 手動起動::
- 健康診断サービス開始
python CheckHealthy.py
- 新しい端末でAPIキー管理サービスを開始する:
python -m api_key_manager.main
- 健康診断サービス開始
機能 操作の流れ
1.基本テキスト生成
- 利用する
LLM_Wrapper
クラスはテキストを生成するためにモデルを呼び出します:from LLMwrapper import LLM_Wrapper response = LLM_Wrapper.generate( model_name="gpt4o_mini", prompt="解释量子计算的基本原理" ) print(response)
- システムはロードバランシングポリシーに基づいて、タスクを実行する最適なモデル(例えばOpenAIのgpt4o_mini)を選択する。
2.マルチモーダル入力
- 画像とテキストの入力に対応。例えば、写真の内容を説明することができる:
import base64 with open("image.jpg", "rb") as f: img_base64 = base64.b64encode(f.read()).decode() response = LLM_Wrapper.generate_mm( model_name="gpt4o_mini", prompt="描述这张图片的内容", img_base64=img_base64 ) print(response)
- モデルがマルチモダリティ(gpt4o_miniなど)をサポートしており、画像をBase64形式に変換する必要があることを確認してください。
3.関数呼び出し
- ツールを設定し、天気の問い合わせなどの外部機能を呼び出す:
tools = [ { "type": "function", "function": { "name": "get_weather", "description": "获取天气信息", "parameters": { "type": "object", "properties": { "location": {"type": "string", "description": "城市名称"} }, "required": ["location"] } } } ] response = LLM_Wrapper.function_calling( model_name="gpt4o_mini", prompt="北京今天天气如何?", tools=tools ) print(response)
4.ロードバランシングの設定
- 3つのロードバランシングモードがサポートされている:
fast_first
最も反応の良いモデルを優先します。cost_first
最もコストの低いモデルが優先される。balanced
スピードとコストのバランス
- 例
response = LLM_Wrapper.generate( model_name="gpt4o_mini", prompt="你好", mode="cost_first" )
5.パレート最適な選択
- 複数のモデルから最適な結果を選択する:
response = LLM_Wrapper.generate_fromTHEbest( model_list=["gpt4o_mini", "claude35_sonnet", "gemini15_pro"], prompt="复杂推理任务" )
- システムは応答時間とコストに基づいて最適なモデルを自動的に選択する。
6.ヘルスモニタリングとロギング
- サービスの健康状態を確認する:
- インタビュー
http://localhost:8001/check_healthy
健康診断サービスの状況を確認する。 - インタビュー
http://localhost:8002/check_healthy
APIキー管理サービスのステータスを確認する。
- インタビュー
- ログを見る
docker-compose logs -f airouter-health-check tail -f health_check.log
ほら
- APIキーが有効であることを確認する。キーに失敗すると、タスクは失敗する。
- Dockerのデプロイでは、ポート(8001、8002)が占有されていないことを確認する必要がある。
- GitHubのリポジトリを定期的にチェックして、最新の機能や修正にアップデートしてください。
- データベースのパスワード (
DB_PASSWORD
)が必要で、これがないと起動に失敗する。
アプリケーションシナリオ
- マルチモデルのタスク配分
開発者はタスクを完了するために複数のLLM(OpenAI、Anthropicなど)を同時に使用する必要があるが、AIRouterは統一されたインターフェイスを通じてタスクを分散し、最適なモデルを自動的に選択して開発時間を短縮することができる。 - コスト重視のプロジェクト
限られた予算の中で、AIRouterのコスト最適化機能は、新興企業や個人開発者向けの低価格モデルを優先している。 - マルチモーダル・アプリケーション開発
画像説明やマルチモーダルなチャットアプリケーションを開発する場合、AIRouterはテキストと画像の両方の入力をサポートし、開発プロセスを簡素化します。 - 自動運転とメンテナンス(O&M)
運用チームは、ヘルスモニタリングとロードバランシング機能により、手作業を減らして安定したAIサービスを構築できる。
品質保証
- AIRouterはどのLLMプロバイダーに対応していますか?
OpenRouter、DeepInfra、DeerAPI、TogetherAI、Google、OpenAI、Anthropic、その他多くのプロバイダーをサポートしています。ew_config/source.py
眺める。 - 最適なモデルを選ぶには?
利用するgenerate_fromTHEbest
方式では、応答時間、コスト、成功率を組み合わせたパレート最適アルゴリズムに基づいて最適なモデルを選択する。 - Dockerデプロイメントと手動デプロイメントの違いは何ですか?
Dockerデプロイはコンテナ化によって環境設定を簡素化し、本番環境に適している。手動デプロイは依存関係を1つずつインストールする必要があり、開発やデバッグに適している。 - APIキーに失敗した場合の対処方法を教えてください。
AIRouterの鍵管理システムは、無効な鍵を自動的に検出し、利用可能な鍵に切り替えます。api_keys_local.py
に複数の有効なキーを設定する。