ENTERPILOT/GoModel
AI gateway / AI control plane / AI proxy written in Go. Unified OpenAI-compatible and Anthropic-compatible API for OpenAI, Anthropic, Gemini, Groq, xAI, Ollama, vLLM and more. A LiteLLM alternative with observability, guardrails, streaming, cost tracking, intelligent routing, sticky sessions, failover, real-time logs and usage tracking. Prod ready.
GoModelとは?
GoModelは、Goで書かれたオープンソースのAIゲートウェイです。アプリケーション(またはOpenAI/Anthropic互換のSDK)と多数のLLMプロバイダーの間に位置し、HTTP呼び出しを代行します。その主な目的は、複数のモデルを安価で信頼性高く、観測可能に利用できるようにすることです。
核となるアイデア
| アイデア | なぜ重要なのか |
|---|---|
単一エンドポイント – 設定済みの任意のプロバイダーに転送する/v1(OpenAI)または/v1/messages(Anthropic)APIを公開します。 |
バックエンドを交換または混在させながら、既存のコードを変更せずに済みます。 |
| キャッシュとプロンプト圧縮 – 完全一致または意味的なレスポンスを保存し、プロバイダーに送信する前にプロンプトを縮小できます。 | トークン使用量とコストを削減します。 |
| コストと予算の追跡 – リクエストごとのコスト見積もり、ダッシュボード、ハードな支出制限。 | 高価なモデルを使用する際の予期しない請求を防ぎます。 |
| フェイルオーバーとキーローテーション – 自動再ルーティング、サーキットブレーカー、複数のAPIキーでのラウンドロビン。 | 信頼性を向上させ、キーごとのレート制限を回避します。 |
| 可観測性 – Prometheusメトリクス、OpenTelemetryトレース、Web UIでのライブリクエストストリーミング。 | パフォーマンスの監視と問題のデバッグに必要なデータを提供します。 |
拡張可能なプラグインとワークフロー – カスタムガードレール、レスポンスフィルター、ルーティングロジックをGoプラグイン(.so)として読み込みます。 |
アプリケーションコードを変更せずに、チームがポリシー(例:不適切な言葉のフィルター)を適用できます。 |
主な機能(READMEに記載されているもの)
- キャッシュ – 完全一致および意味的なレスポンスキャッシュ。
- コスト追跡と予算 – リアルタイムの支出分析、ユーザー/チーム/キーごとのハード制限。
- レート制限 – リクエスト、トークン、同時実行数の上限。
- 仮想モデル – プロバイダー間でロードバランスできる安定したモデルエイリアス。
- セッション維持 – クライアントセッションを特定のプロバイダーに固定し、プロンプトキャッシュをウォームに保ちます。
- フェイルオーバーと耐障害性 – リトライ、サーキットブレーカー、バックアッププロバイダー。
- ラベリングとユーザーパス – キー、予算、監査ログの階層的スコープ。
- MCPゲートウェイ – 複数のMCPサーバーを単一のエンドポイントに集約します。
- パススルーAPI –
/p/{provider}/…でプロバイダー固有のエンドポイントへの直接アクセス。 - オーディオおよび画像API – TTS、文字起こし、画像生成/編集、すべて同じアクセス制御付き。
- ガードレールとプラグイン – リクエスト/レスポンスポリシー、カスタムフィルター、ルーティング戦略。
- ワークフロー – バージョン管理されたリクエストごとのポリシーバンドル。
- プロバイダーキーローテーション – 複数のAPIキーでのラウンドロビン。
- 可観測性 – Prometheus、OpenTelemetry、監査ログ、ライブストリーミング。
- プレイグラウンドUI – ダッシュボードから任意のモデルを試し、生のJSONを確認できます。
誰が使うのか?
| ユースケース | GoModelがどのように役立つか |
|---|---|
| スタートアップやSaaSプラットフォーム – コードを書き直さずにOpenAI、Anthropic、Geminiなどを切り替える必要がある場合。 | 1つの設定可能なゲートウェイが多くのSDK変更を置き換えます。 |
| 厳格な予算を持つチーム – プロジェクトまたはユーザーごとの支出を制限したい場合。 | 組み込みのコスト追跡、予算、レート制限。 |
| エンタープライズ – 監査ログ、SSO、カスタムガードレールが必要な場合。 | ダッシュボード、OpenTelemetry、OIDC SSO(Pro)、プラグインシステム。 |
| セルフホストLLMを実行する開発者(例:Ollama、vLLM)。 | 「すべてのOpenAI互換プロバイダー」をサポートし、ローカルモデルへのプロキシも可能。 |
| メトリクスとアラートが必要な運用チーム。 | Prometheusメトリクス、サーキットブレーカーロジック、ヘルスチェック。 |
はじめに(クイック概要)
- インストール – macOS/Linux用のワンライナースクリプト、Windows用のPowerShellスクリプト、またはDockerイメージ。
- 設定 –
.env、config.yaml、またはダッシュボードUI。テンプレートにすべての環境変数がリストされています。 - 実行 –
gomodel(またはdocker run …)。管理UIはhttp://localhost:8080/admin/dashboardにあります。 - APIを呼び出す –
/v1/responses(OpenAIスタイル)にPOSTを送信するか、http://localhost:8080/v1を指す任意のOpenAI/Anthropic SDKを使用します。
ライセンスとコミュニティ
このリポジトリはオープンソースです(READMEにはライセンスが明記されていませんが、CI、Dockerイメージ、公開リポジトリの存在はOSSライセンスを示唆しています)。このプロジェクトは積極的にメンテナンスされています – CIバッジ、Dockerプル、Discordコミュニティ、Hacker Newsのディスカッションがリンクされています。
TL;DR
GoModelは、Goベースのセルフホスト型AIゲートウェイで、単一のOpenAI互換エンドポイントの背後で数十のLLMプロバイダーへのリクエストをルーティング、キャッシュ、監視、制御できます。コスト管理、信頼性、可観測性を必要としながら、既存のSDKを変更せずに維持したいチームを対象としています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト