Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Azure Blob Storage

Dieses Dokument enthält Anweisungen zur Einrichtung von Azure Blob Storage für LibreChat

Produktions-Setup

Azure Blob Storage bietet skalierbaren, sicheren Objektspeicher für Dateien in LibreChat. Befolgen Sie diese Schritte, um Ihren Azure Blob Storage zu konfigurieren.

1. Azure Storage Account erstellen

  1. Bei Azure anmelden:

    • Öffnen Sie das Azure Portal und melden Sie sich mit Ihrem Microsoft-Konto an.
  2. Speicherkonto erstellen:

    • Klicken Sie auf "Create a resource" und suchen Sie nach "Storage account".
    • Klicken Sie auf "Create" und geben Sie die erforderlichen Details ein:
      • Abonnement & Ressourcengruppe: Wählen Sie Ihr Abonnement und entweder eine bestehende Ressourcengruppe aus oder erstellen Sie eine neue.
      • Name des Speicherkontos: Geben Sie einen eindeutigen Namen ein (z. B. mylibrechatstorage).
      • Region: Wählen Sie die Region aus, die Ihren Benutzern am nächsten liegt.
      • Leistung & Redundanz: Wählen Sie die Leistungsstufe und das Redundanzniveau, die Ihren Anforderungen am besten entsprechen.
    • Klicken Sie auf "Review + Create" und dann auf "Create". Warten Sie, bis die Bereitstellung abgeschlossen ist.

2. Authentifizierung einrichten

Sie haben zwei Möglichkeiten, sich bei Ihrem Azure Storage Account zu authentifizieren:

Option A: Verwendung eines Connection String

  1. Navigieren Sie zu Access Keys:

    • Gehen Sie in Ihrem neu erstellten Speicherkonto in der Seitenleiste auf "Access keys".
  2. Verbindungszeichenfolge kopieren:

    • Kopieren Sie eine der bereitgestellten Verbindungszeichenfolgen. Diese Zeichenfolge enthält die Anmeldeinformationen, die für die Verbindung mit Ihrem Blob Storage-Konto erforderlich sind.

Option B: Verwendung von Managed Identity

Wenn Ihre LibreChat-Anwendung auf einem Azure-Dienst ausgeführt wird, der Managed Identity unterstützt (wie z. B. eine Azure VM, App Service oder AKS), können Sie diese anstelle einer Verbindungszeichenfolge verwenden.

  1. Verwaltete Identität zuweisen:

    • Stellen Sie sicher, dass für Ihre Azure-Ressource (VM, App Service oder AKS) eine systemseitig oder benutzerseitig zugewiesene Managed Identity aktiviert ist.
  2. Speicherberechtigungen erteilen:

    • Weisen Sie in Ihrem Speicherkonto Ihrer Managed Identity die Rolle Storage Blob Data Contributor (oder eine Rolle mit ähnlichem Umfang) zu. Dies ermöglicht Ihrer Anwendung den Zugriff auf den Blob Storage ohne eine Verbindungszeichenfolge.

3. Aktualisieren Sie Ihre Umgebungsvariablen

Erstellen oder aktualisieren Sie Ihre .env Datei im Stammverzeichnis Ihres Projekts mit der folgenden Konfiguration:

# Option A: Using a Connection String
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=yourAccountKey;EndpointSuffix=core.windows.net
 
# Option B: Using Managed Identity (do not set the connection string if using Managed Identity)
AZURE_STORAGE_ACCOUNT_NAME=yourAccountName
 
AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAME=files
  • AZURE_STORAGE_CONNECTION_STRING: Legen Sie dies fest, wenn Sie Option A verwenden.
  • AZURE_STORAGE_ACCOUNT_NAME: Legen Sie dies fest, wenn Sie Option B (Managed Identity) verwenden. Setzen Sie nicht beides.
  • AZURE_STORAGE_PUBLIC_ACCESS: Auf false setzen, wenn Ihre Blobs standardmäßig nicht öffentlich zugänglich sein sollen. Auf true setzen, wenn Sie öffentlichen Zugriff benötigen (zum Beispiel für öffentlich einsehbare Bilder).
  • AZURE_CONTAINER_NAME: Dies ist der Container-Name, den Ihre Anwendung verwenden wird (z. B. files). Die Anwendung erstellt diesen Container automatisch, falls er noch nicht existiert.

4. Konfigurieren von LibreChat für die Verwendung von Azure Blob Storage

Aktualisieren Sie Ihre LibreChat-Konfigurationsdatei (librechat.yaml), um festzulegen, dass die Anwendung Azure Blob Storage für die Dateiverarbeitung verwenden soll:

version: 1.3.5
cache: true
fileStrategy: "azure_blob"

Azure Blob Storage ist ein Objektspeicher, kein CDN

Azure Blob Storage speichert und bereitstellt Dateien direkt vom Ursprung — es ist kein CDN. Bilder und Avatare werden für eine optimale Leistung und globale Bereitstellung am besten über ein CDN bereitgestellt. Derzeit ist Firebase die einzige CDN-gestützte Speicheroption.

Sie können fileStrategies verwenden, um nur Avatare und Bilder an Firebase weiterzuleiten, während Dokumente auf Azure Blob Storage verbleiben:

fileStrategies:
  avatar: "firebase"
  image: "firebase"
  document: "azure_blob"

Zusammenfassung

  1. Speicherkonto erstellen:
    Melden Sie sich beim Azure Portal an, erstellen Sie ein Speicherkonto und warten Sie, bis die Bereitstellung abgeschlossen ist.

  2. Authentifizierung einrichten:

  • Option A: Rufen Sie die Verbindungszeichenfolge unter "Access keys" in Ihrem Speicherkonto ab.
  • Option B: Verwenden Sie Managed Identity, indem Sie diese für Ihre Azure-Ressource aktivieren und ihr die entsprechenden Speicherberechtigungen erteilen.
  1. Umgebungsvariablen aktualisieren:
    Setzen Sie in Ihrer .env Datei entweder:
  • AZURE_STORAGE_CONNECTION_STRING (für Option A), oder
  • AZURE_STORAGE_ACCOUNT_NAME (für Option B), zusammen mit:
  • AZURE_STORAGE_PUBLIC_ACCESS und
  • AZURE_CONTAINER_NAME.
  1. LibreChat konfigurieren:
    Setzen Sie fileStrategy in Ihrer librechat.yaml Konfigurationsdatei auf "azure_blob".

Mit diesen Schritten erstellt Ihre LibreChat-Anwendung automatisch den Container (falls dieser noch nicht existiert) und verwaltet Datei-Uploads, -Downloads sowie -Löschungen mithilfe von Azure Blob Storage. Managed Identity bietet eine sichere Alternative, da keine langfristigen Anmeldeinformationen mehr erforderlich sind.

Lokale Entwicklung mit Azurite

Für die lokale Entwicklung und das Testen können Sie Azurite verwenden, einen Azure Storage-Emulator, der eine lokale Umgebung zum Testen Ihrer Azure Blob Storage-Integration bereitstellt, ohne dass ein tatsächliches Azure-Konto erforderlich ist.

1. Azurite einrichten

Sie können Azurite auf verschiedene Arten ausführen:

  1. Installieren Sie die Azurite extension für VS Code
  2. Öffnen Sie die Befehlspalette (Ctrl+Shift+P oder Cmd+Shift+P)
  3. Suchen Sie nach „Azurite: Start“ und wählen Sie es aus.

Dies startet Azurite im Hintergrund mit den Standardeinstellungen.

Option B: Verwendung von Docker

docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite

Option C: Verwendung von npm

npm install -g azurite
azurite --silent --location /path/to/azurite/workspace --debug /path/to/debug/log

2. Umgebungsvariablen für die lokale Entwicklung konfigurieren

Fügen Sie die folgenden Umgebungsvariablen zu Ihrer .env Datei hinzu:

# Azurite connection string for local development
AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"
AZURE_STORAGE_PUBLIC_ACCESS=true
AZURE_CONTAINER_NAME=files

Hinweise:

  • Der AccountKey-Wert ist der standardmäßige Entwicklungsschlüssel, der von Azurite verwendet wird.
  • Die Verbindung verwendet das http-Protokoll anstelle von https für die lokale Entwicklung
  • Der BlobEndpoint verweist auf die lokale Azurite-Instanz, die auf Port 10000 läuft.

3. Verbindung überprüfen

Um zu überprüfen, ob Ihre Anwendung eine Verbindung zur lokalen Azurite-Instanz herstellen kann:

  1. Starten Sie Ihre LibreChat-Anwendung
  2. Versuchen Sie, eine Datei über die Benutzeroberfläche hochzuladen
  3. Überprüfen Sie die Azurite-Protokolle, um die Verbindung und die Vorgänge zu bestätigen.

Wenn Sie die VS Code-Erweiterung verwenden, können Sie die Azurite-Protokolle im Output-Panel anzeigen, indem Sie „Azurite Blob“ aus dem Dropdown-Menü auswählen.

Hinweis

Der standardmäßige Azurite-Account-Key ist ein fester Wert, der ausschließlich zu Entwicklungszwecken verwendet wird. Verwenden Sie diesen Schlüssel niemals in Produktionsumgebungen. Stellen Sie stets sicher, dass Ihre Verbindungszeichenfolge (Connection String) sicher bleibt und committen Sie diese niemals in ein öffentliches Repository.

Wie finden Sie diese Anleitung?