Bifrostは、Go言語を使用して構築された高性能な大規模言語モデル(LLM)ゲートウェイです。Bifrostの主な役割は、OpenAI、Anthropic、Amazon Bedrockなどの複数の異なる大規模モデルベンダーに接続し、管理するための統一されたインターフェースを開発者に提供することです。パフォーマンスと信頼性に重点を置いて設計されたBifrostは、大量のリクエストを処理する際にマイクロ秒の待ち時間しか追加しません。 自動フェイルオーバーとロードバランシングが組み込まれているため、モデルやベンダーがダウンした場合、システムは自動的にリクエストを代替オプションに転送し、サービスの継続性と安定性を確保します。さらに、Bifrostはビジュアルなウェブインターフェースを提供し、ユーザーはリクエストを監視し、モデル設定を管理し、分析をリアルタイムで見ることができるため、運用と保守が大幅に簡素化されます。
機能一覧
- 統一APIインターフェースOpenAI、Anthropic、Amazon Bedrock、Mistral、Ollamaなど10以上の主要なビッグモデルベンダーと単一のAPIエンドポイントを通じて接続できます。
- 高性能加工Go言語を使用して構築され、毎秒5,000リクエストを処理する負荷の下で平均して約11マイクロ秒のレイテンシーオーバーヘッドを追加するだけです。
- 内蔵ウェブ・ユーザー・インターフェイス視覚的なコンフィギュレーション・インターフェイスとリアルタイム・モニタリング・ダッシュボードを提供し、ユーザーはブラウザ上で直接ベンダーの管理、ログのモニタリング、メトリクスの分析ができるため、コンフィギュレーション・ファイルを手動で編集する必要がありません。
- 自動フェイルオーバーモデルやサプライヤーからのリクエストに失敗した場合、自動的にリトライしたり、あらかじめ設定された代替モデルに切り替えたりすることができ、サービスの安定性を保証します。
- ロードバランシングと鍵管理APIキーの動的かつ重み付けされた管理をサポートし、複数のキーまたはプロバイダーにリクエストを効率的に分散します。
- 既成概念にとらわれない観測可能性Prometheus インジケータのネイティブ・サポートにより、既存のモニタリング・システムに追加設定なしで簡単に統合できます。
- 複数の統合方法スタンドアロンのHTTPサービスとして、アプリケーションに直接統合されたGo言語パッケージとして、または既存のOpenAI/Anthropic SDKの直接的な置き換えとして(APIのベースURLを変更するだけ)、3つの使用モデルがサポートされています。
- プラグイン・アーキテクチャプラグインファーストのアーキテクチャ設計とモデルコンテキストプロトコル(MCP)のサポートにより、外部ツールの拡張や統合が容易。
ヘルプの使用
Bifrostはさまざまな柔軟な使い方を提供するが、最も速いのは、次のような方法だ。 npx
コマンドを使ってローカルのHTTPサービスを開始すれば、依存関係をインストールすることなく、30秒もかからずにAIゲートウェイを完全に機能させることができる。
1.クイックスタート(HTTPサービス)
これはすべての開発者にとって最も簡単で速い方法です。ローカルサーバーと、それに付随するウェブ管理インターフェイスを起動します。
環境要件:
- Node.js(バージョン18以上)がインストールされている。
- 少なくとも1つの大きなモデルプロバイダー(OpenAIなど)のAPIキーを持っていること。
操作手順:
ステップ1:Bifrostサービスを開始する
ターミナル(コマンドラインツール)で以下のコマンドを実行する:
npx @maximhq/bifrost
このコマンドを実行すると、Bifrostが自動的にダウンロードされ、実行されます。 8080
港。
ステップ2:ベンダーの設定
サービスが開始したら、ブラウザで以下のアドレスを開き、BifrostのWeb管理画面にアクセスしてください:
http://localhost:8080
このインターフェイスでは、様々なビッグモデル・ベンダーを視覚的に追加・管理することができます。例えば、OpenAIを追加するには、"Add Vendor "ボタンをクリックし、OpenAIのAPIキーを入力するだけです。また、ロードバランシングやフェイルオーバーのためのモデルのウェイトや優先順位などの高度なオプションを設定することもできます。
ステップ3:APIコールのテスト
設定が完了すると、アプリケーションはBifrostの 8080
Bifrostは、あなたのリクエストをターゲットプロバイダに転送します。Bifrostポートを使用して、今すぐビッグモデルを呼び出すことができます。Bifrostポートを使って curl
コマンドを使用して、サービスが正常に動作しているかどうかをテストする:
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [
{"role": "user", "content": "你好,Bifrost!🌈"}
]
}'
モデルから返信があれば、ゲートウェイは正常に動作しています。
2.既存のコードの直接的な置き換えとして
OpenAIやAnthropicのSDKをコードに組み込んでいれば、最小限のコード変更でBifrostを使用できる。
操作手順:
- 上記のクイックスタート方法に従ってBifrostサービスを実行し、ベンダー設定を完了します。
- アプリケーションコードで
base_url
もしかしたらbaseURL
パラメーター - このURLを公式インターフェースのアドレスからBifrostサービスのアドレスに変更してください。
コードの例:
元のOpenAIのPythonコードはこんな感じだったとする:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY",
# base_url="https://api.openai.com/v1" # 这是原来的地址
)
に変更するだけでいい:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY", # 这里的 key 依然需要,但 Bifrost 会使用自己管理的 key
base_url="http://localhost:8080/v1" # 指向 Bifrost 网关
)
修正が完了すると、アプリケーションのリクエストはBifrost経由で転送され、他のビジネスロジックのコードを変更することなく、フェイルオーバーやロードバランシングなどのゲートウェイ機能をすべて自動的に利用できるようになります。
3.Goパッケージとしての統合
Go言語開発者にとっては、Bifrostのコア機能をライブラリとしてアプリケーションに直接統合することで、最高のパフォーマンスと制御を実現できる。
操作手順:
- Goプロジェクトで、以下のコマンドを使用してBifrostコアパッケージを取得する:
go get github.com/maximhq/bifrost/core
- コード内でBifrostをインポートして使用することで、コードを通じてベンダー、ルーティングルール、プラグインを設定することができます。このアプローチは、追加のHTTP通信オーバーヘッドを回避し、最高のパフォーマンスを提供します。詳細なAPIと使用方法については、プロジェクトの公式ドキュメントを参照してください。
アプリケーションシナリオ
- AIアプリケーションの安定性向上
継続的なサービスを必要とする本番環境のアプリケーションでは、モデルの安定性が重要です。Bifrostの自動フェイルオーバー機能により、プライマリモデル(例:GPT-4)が何らかの理由でアクセス不能になった場合、システムは自動的にスタンバイモデル(例:Claude 3または他のモデル)に切り替わり、ユーザーのリクエストは常に処理されるため、サービスの中断を回避できます。 - マルチモデルの使用コストを削減・管理
異なるモデルには異なる価格戦略があります。開発者は、Bifrostで複数のモデルを構成し、ルーティングルールを設定することができる。例えば、計算集約的で複雑なタスクは強力だが高価なモデルに与え、単純で定型的なタスクは低コストのモデルに割り当てる。このようにして、運用コストを大幅に最適化し、結果を保証することができます。 - マルチクラウドやハイブリッドクラウドの展開を簡素化
組織は、異なるクラウドプロバイダー(AWS Bedrock、Azure OpenAIなど)のモデルを同時に使用する可能性があります。Bifrostは、根本的なベンダーの違いから保護する統一されたAPIエントリーポイントを提供します。これにより、アプリケーションの展開と移行が容易になり、プラットフォームのロックインを避けることができます。 - 迅速な実験と新モデルへの切り替え
AI分野のモデルは、急速なペースで更新され、反復されています。新しく優れたモデルが登場すると、開発者はBifrostのウェブ・インターフェイスを通じて、新しいモデルを素早く追加し、テストすることができます。このプロセス全体により、アプリケーション・コードを修正して再デプロイする必要がなくなり、革新と反復のペースが劇的に加速します。
品質保証
- Bifrostは、LiteLLMのような他の類似ツールと比較して、どのような利点がありますか?
Bifrostの最大の強みはパフォーマンスだ。 Go言語を使用して一から構築され、高同時性、低レイテンシの本番環境向けに設計されている。公式のパフォーマンステストによると、Bifrostのレイテンシオーバーヘッドは、同じハードウェア上のLiteLLMのようなPythonベースのツールよりもはるかに低く、より高いリクエスト同時性を処理できる。 さらに、設定と監視を簡単かつ直感的に行えるビジュアルなウェブインタフェースが付属しています。 - Bifrostの使用はデータプライバシーに影響しますか?
Bifrostは完全にオープンソースで、自己展開可能なゲートウェイです。 つまり、自社のサーバーやプライベートクラウド環境に導入することができる。すべてのリクエストとデータは、最終的なビッグモデル・プロバイダーに直接送信される前に、あなたがコントロールするインフラ内のみを流れ、Bifrost自身は、あなたのデータを保存したり、サードパーティのサーバーに送信したりしないので、データのプライバシーとセキュリティが保証されます。 - Bifrostはストリーミングに対応していますか?
はい、Bifrostは大規模モデルのストリーミング応答を完全にサポートしています。ストリーミング出力をサポートするモデル(OpenAIのチャットモデルなど)にリクエストを行うと、Bifrostはモデルによって生成されたデータのチャンクをリアルタイムでクライアントに送り返します。 - フェイルオーバーを設定する正確なプロセスは何ですか?
Bifrost のウェブ管理インターフェイスでは、1 つまたは複数のプライマリモデルのフォールバックモデルのリストを設定できます。例えばopenai/gpt-4o-mini
をプライマリ・モデルとして設定し、次にanthropic/claude-3-haiku
歌で応えるgoogle/gemini-1.5-flash
をスタンバイリストに追加した。ペアgpt-4o-mini
リクエストに失敗した場合、Bifrostはリクエストが成功するまで、自動的にリストの順番で代替モデルを試行する。