Bifrost ist ein hochleistungsfähiges Large Language Model (LLM)-Gateway, das auf der Sprache Go basiert. Seine Hauptaufgabe besteht darin, Entwicklern eine einheitliche Schnittstelle für die Verbindung mit und die Verwaltung von mehreren verschiedenen Anbietern großer Modelle, wie OpenAI, Anthropic, Amazon Bedrock usw., zu bieten. Bifrost ist so konzipiert, dass es den Entwicklungsprozess vereinfacht, da kein separater Integrationscode für jedes Modell geschrieben werden muss, wobei der Schwerpunkt auf Leistung und Zuverlässigkeit liegt. Wenn ein Modell oder ein Anbieter ausfällt, kann das System Anfragen automatisch an alternative Optionen weiterleiten und so die Kontinuität und Stabilität des Dienstes gewährleisten. Darüber hinaus bietet Bifrost eine visuelle Weboberfläche, die es den Benutzern ermöglicht, Anfragen zu überwachen, Modellkonfigurationen zu verwalten und Analysen in Echtzeit anzuzeigen, was Betrieb und Wartung erheblich vereinfacht.
Funktionsliste
- Vereinheitlichte API-SchnittstelleVerbindung zu mehr als 10 großen Big Model-Anbietern, darunter OpenAI, Anthropic, Amazon Bedrock, Mistral, Ollama und weitere, über einen einzigen API-Endpunkt.
- HochleistungsverarbeitungSie wurde in der Sprache Go entwickelt und verursacht bei einer Last von 5.000 Anfragen pro Sekunde im Durchschnitt nur etwa 11 Mikrosekunden Latenzzeit.
- Integrierte Web-BenutzeroberflächeBietet eine visuelle Konfigurationsoberfläche und Echtzeit-Überwachungs-Dashboards, die es den Benutzern ermöglichen, Anbieter zu verwalten, Protokolle zu überwachen und Metriken direkt im Browser zu analysieren, wodurch die manuelle Bearbeitung von Konfigurationsdateien überflüssig wird.
- Automatische AusfallsicherungWenn eine Anfrage eines Modells oder eines Anbieters fehlschlägt, kann es automatisch einen neuen Versuch starten oder zu einem voreingestellten alternativen Modell wechseln, um die Stabilität des Dienstes zu gewährleisten.
- Lastausgleich und SchlüsselverwaltungUnterstützt die dynamische und gewichtete Verwaltung von API-Schlüsseln, um Anfragen effizient auf mehrere Schlüssel oder Anbieter zu verteilen.
- Out-of-the-Box-BeobachtbarkeitNative Unterstützung für Prometheus-Indikatoren ermöglicht eine einfache Integration in bestehende Überwachungssysteme, ohne dass eine zusätzliche Konfiguration erforderlich ist.
- Mehrere IntegrationsmethodenEs werden drei Nutzungsmodelle unterstützt: Ausführung als eigenständiger HTTP-Dienst, als direkt in eine Anwendung integriertes Go-Sprachpaket oder als direkter Ersatz für das bestehende OpenAI/Anthropic SDK (ändern Sie einfach die Basis-URL der API).
- Plug-in-ArchitekturPlugin-First-Architektur und Unterstützung für das Model Context Protocol (MCP) zur einfachen Erweiterung und Integration externer Tools.
Hilfe verwenden
Bifrost bietet eine Vielzahl flexibler Nutzungsmöglichkeiten, die schnellste ist die Nutzung des npx
Befehl, um einen lokalen HTTP-Dienst zu starten, eine Möglichkeit, ein voll funktionsfähiges KI-Gateway in weniger als 30 Sekunden zu erhalten, ohne irgendwelche Abhängigkeiten zu installieren.
1. der Schnellstart (HTTP-Dienst)
Dies ist der einfachste und schnellste Weg für alle Entwickler. Er startet einen lokalen Server und eine dazugehörige Webadministrationsschnittstelle.
Umweltanforderungen:
- Node.js (Version 18+) ist installiert.
- Sie haben einen API-Schlüssel von mindestens einem großen Modellanbieter (z. B. OpenAI).
Betriebsverfahren:
Schritt 1: Starten Sie den Bifrost-Dienst
Führen Sie den folgenden Befehl in Ihrem Terminal (Befehlszeilenprogramm) aus:
npx @maximhq/bifrost
Wenn dieser Befehl ausgeführt wird, wird Bifrost automatisch heruntergeladen und ausgeführt. Der Dienst hört standardmäßig auf die lokale 8080
Häfen.
Schritt 2: Konfigurieren Sie den Anbieter
Sobald der Dienst gestartet ist, öffnen Sie die folgende Adresse in Ihrem Browser, um auf die Webadministrationsschnittstelle von Bifrost zuzugreifen:
http://localhost:8080
In dieser Schnittstelle können Sie verschiedene große Modellanbieter visuell hinzufügen und verwalten. Um beispielsweise OpenAI hinzuzufügen, brauchen Sie nur auf die Schaltfläche "Anbieter hinzufügen" zu klicken und Ihren OpenAI-API-Schlüssel einzugeben. Sie können auch erweiterte Optionen wie Modellgewichtungen und Prioritäten für Lastausgleich und Failover festlegen.
Schritt 3: API-Aufrufe testen
Sobald die Konfiguration abgeschlossen ist, kann Ihre Anwendung auf Bifrosts 8080
Bifrost leitet Ihre Anfrage an den Zielanbieter weiter. Sie können jetzt den Bifrost-Port verwenden, um das große Modell anzurufen. Sie können den curl
um zu testen, ob der Dienst ordnungsgemäß funktioniert:
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!🌈"}
]
}'
Wenn Sie eine Antwort von dem Modell erhalten, ist Ihr Gateway erfolgreich in Betrieb.
2. als direkter Ersatz für den bestehenden Code
Wenn Sie ein SDK für OpenAI oder Anthropic in Ihren Code integriert haben, können Sie Bifrost mit minimalen Codeänderungen verwenden.
Betriebsverfahren:
- Befolgen Sie die oben beschriebene Schnellstartmethode, um den Bifrost-Dienst auszuführen und die Konfiguration des Anbieters abzuschließen.
- Suchen Sie in Ihrem Anwendungscode nach der
base_url
vielleichtbaseURL
Parameter. - Ändern Sie diese URL von der offiziellen Schnittstellenadresse in die Adresse des Bifrost-Dienstes.
Code-Beispiel:
Stellen Sie sich vor, Ihr ursprünglicher OpenAI-Python-Code sähe wie folgt aus:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY",
# base_url="https://api.openai.com/v1" # 这是原来的地址
)
Sie müssen es nur ändern in:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY", # 这里的 key 依然需要,但 Bifrost 会使用自己管理的 key
base_url="http://localhost:8080/v1" # 指向 Bifrost 网关
)
Sobald die Änderungen abgeschlossen sind, werden Ihre Anwendungsanfragen über Bifrost weitergeleitet, und Sie erhalten automatisch alle Gateway-Funktionen wie Failover, Lastausgleich usw., ohne dass Sie irgendeinen anderen Geschäftslogikcode ändern müssen.
3. die Integration als Go-Paket
Entwickler der Sprache Go können die Kernfunktionen von Bifrost direkt in ihre Anwendungen als Bibliotheken integrieren, um maximale Leistung und Kontrolle zu erhalten.
Betriebsverfahren:
- Verwenden Sie in Ihrem Go-Projekt den folgenden Befehl, um das Bifrost-Kernpaket zu erhalten:
go get github.com/maximhq/bifrost/core
- Importieren und verwenden Sie Bifrost in Ihrem Code. Sie können Anbieter, Routing-Regeln und Plugins über den Code konfigurieren. Dieser Ansatz vermeidet zusätzlichen HTTP-Kommunikations-Overhead und bietet die beste Leistung. Detaillierte Informationen zu APIs und Verwendung finden Sie in der offiziellen Dokumentation des Projekts.
Anwendungsszenario
- Verbesserung der Stabilität von KI-Anwendungen
Für Anwendungen in Produktionsumgebungen, die einen kontinuierlichen Betrieb erfordern, ist die Modellstabilität entscheidend. Mit der automatischen Failover-Funktion von Bifrost schaltet das System automatisch auf ein Standby-Modell (z. B. Claude 3 oder ein anderes Modell) um, wenn das primäre Modell (z. B. GPT-4) aus irgendeinem Grund unzugänglich wird, um sicherzustellen, dass Benutzeranfragen immer bearbeitet werden, wodurch Dienstunterbrechungen vermieden werden. - Reduzieren und Verwalten der Kosten für die Nutzung mehrerer Modelle
Verschiedene Modelle haben unterschiedliche Preisstrategien. Entwickler können in Bifrost mehrere Modelle konfigurieren und Routing-Regeln aufstellen, z. B. rechenintensive und komplexe Aufgaben an leistungsstarke, aber teure Modelle vergeben, während einfache und Routineaufgaben an kostengünstigere Modelle vergeben werden. Auf diese Weise können die Betriebskosten bei garantierten Ergebnissen erheblich optimiert werden. - Vereinfachen Sie Multi-Cloud- oder Hybrid-Cloud-Implementierungen
Unternehmen können Modelle verschiedener Cloud-Anbieter (z. B. AWS Bedrock, Azure OpenAI) gleichzeitig nutzen. Bifrost bietet einen einheitlichen API-Einstiegspunkt, der die Unterschiede zwischen den Anbietern ausgleicht. Dies erleichtert die Anwendungsbereitstellung und -migration und vermeidet eine Plattformabhängigkeit. - Schnelles Experimentieren und Umstellen auf neue Modelle
Modelle im Bereich der künstlichen Intelligenz werden in schnellem Tempo aktualisiert und weiterentwickelt. Wenn neue und bessere Modelle auftauchen, können Entwickler schnell neue Modelle hinzufügen und sie über die Webschnittstelle von Bifrost testen, wobei sogar A/B-Tests auf Basis des Datenverkehrsverhältnisses möglich sind. Durch den gesamten Prozess entfällt die Notwendigkeit, den Anwendungscode zu ändern und neu bereitzustellen, wodurch das Innovationstempo und die Iteration drastisch beschleunigt werden.
QA
- Was sind die Vorteile von Bifrost gegenüber anderen ähnlichen Tools wie LiteLLM?
Die Hauptstärke von Bifrost ist die Leistung. Es wurde von Grund auf mit der Sprache Go entwickelt und ist für Produktionsumgebungen mit hoher Nebenläufigkeit und geringer Latenz konzipiert. Offiziellen Leistungstests zufolge ist der Latenz-Overhead von Bifrost viel geringer als bei Python-basierten Tools wie LiteLLM auf derselben Hardware, so dass es eine höhere Gleichzeitigkeit von Anfragen verarbeiten kann. Darüber hinaus verfügt es über eine visuelle Weboberfläche, die die Konfiguration und Überwachung einfach und intuitiv macht. - Hat die Verwendung von Bifrost Auswirkungen auf den Datenschutz?
Bifrost ist ein vollständig quelloffenes und selbstentwickelbares Gateway. Das heißt, Sie können es auf Ihren eigenen Servern oder in einer privaten Cloud-Umgebung einsetzen. Alle Anfragen und Daten fließen nur innerhalb der von Ihnen kontrollierten Infrastruktur, bevor sie direkt an den endgültigen Big-Model-Anbieter gesendet werden, und Bifrost selbst speichert oder sendet Ihre Daten nicht an Server von Dritten, wodurch Datenschutz und Sicherheit gewährleistet sind. - Unterstützt Bifrost Streaming-Antworten?
Ja, Bifrost unterstützt Streaming-Antworten für große Modelle vollständig. Wenn Sie eine Anfrage an ein Modell stellen, das Streaming-Output unterstützt (z. B. das Chat-Modell von OpenAI), sendet Bifrost vom Modell generierte Datenpakete in Echtzeit an den Client zurück, was für die Erstellung von Anwendungen wie Echtzeit-Chatbots oder Codegenerierung entscheidend ist. - Wie sieht das genaue Verfahren zur Konfiguration der Ausfallsicherung aus?
In der Webadministrationsschnittstelle von Bifrost können Sie eine Liste von Ausweichmodellen für ein oder mehrere Primärmodelle einrichten. Zum Beispiel können Sie dasopenai/gpt-4o-mini
als primäres Modell festgelegt, und dann dieanthropic/claude-3-haiku
im Gesang antwortengoogle/gemini-1.5-flash
zu seiner Bereitschaftsliste hinzugefügt. Wenn ein Paar vongpt-4o-mini
Schlägt die Anfrage fehl, versucht Bifrost automatisch alternative Modelle in der Reihenfolge der Liste, bis die Anfrage erfolgreich ist.