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

Azure Blob Storage

Dit document bevat instructies voor het instellen van Azure Blob Storage voor LibreChat

Productie-installatie

Azure Blob Storage biedt schaalbare, veilige objectopslag voor bestanden in LibreChat. Volg deze stappen om je Azure Blob Storage te configureren.

1. Maak een Azure Storage Account aan

  1. Meld u aan bij Azure:

    • Open de Azure Portal en meld je aan met je Microsoft-account.
  2. Maak een Storage Account aan:

    • Klik op "Create a resource" en zoek naar "Storage account".
    • Klik op "Create" en vul de vereiste gegevens in:
      • Abonnement & Resourcegroep: Kies je abonnement en selecteer een bestaande resourcegroep of maak een nieuwe aan.
      • Storage Account Name: Voer een unieke naam in (bijv. mylibrechatstorage).
      • Regio: Selecteer de regio die het dichtst bij uw gebruikers ligt.
      • Prestaties & Redundantie: Kies het prestatieniveau en het redundantieniveau die het beste bij uw behoeften passen.
    • Klik op "Review + Create" en vervolgens op "Create". Wacht tot de implementatie is voltooid.

2. Authenticatie instellen

Je hebt twee opties voor authenticatie met je Azure Storage Account:

Optie A: Een Connection String gebruiken

  1. Navigeer naar Access Keys:

    • Ga in je nieuw aangemaakte opslagaccount naar "Access keys" in de zijbalk.
  2. Verbindingsreeks kopiëren:

    • Kopieer een van de verstrekte verbindingsreeksen. Deze reeks bevat de inloggegevens die nodig zijn om verbinding te maken met uw Blob Storage-account.

Optie B: Managed Identity gebruiken

Als uw LibreChat-applicatie draait op een Azure-service die Managed Identity ondersteunt (zoals een Azure VM, App Service of AKS), kunt u dat gebruiken in plaats van een connection string.

  1. Wijs beheerde identiteit toe:

    • Zorg ervoor dat uw Azure-resource (VM, App Service of AKS) een door het systeem of door de gebruiker toegewezen Managed Identity heeft ingeschakeld.
  2. Opslagrechten verlenen:

    • Wijs in je opslagaccount de rol Storage Blob Data Contributor (of een rol met een vergelijkbare scope) toe aan je Managed Identity. Hierdoor heeft je applicatie toegang tot Blob Storage zonder een connection string.

3. Update Your Environment Variables

Maak of update je .env bestand in de root van je project met de volgende configuratie:

# 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: Stel dit in als je Optie A gebruikt.
  • AZURE_STORAGE_ACCOUNT_NAME: Stel dit in als je Optie B (Managed Identity) gebruikt. Stel niet beide in.
  • AZURE_STORAGE_PUBLIC_ACCESS: Stel in op false als je niet wilt dat je blobs standaard openbaar toegankelijk zijn. Stel in op true als je openbare toegang nodig hebt (bijvoorbeeld voor afbeeldingen die openbaar bekeken moeten kunnen worden).
  • AZURE_CONTAINER_NAME: Dit is de containernaam die uw applicatie zal gebruiken (bijv. files). De applicatie zal deze container automatisch aanmaken als deze nog niet bestaat.

4. Configure LibreChat to Use Azure Blob Storage

Werk uw LibreChat configuratiebestand (librechat.yaml) bij om aan te geven dat de applicatie Azure Blob Storage moet gebruiken voor bestandsafhandeling:

version: 1.3.5
cache: true
fileStrategy: "azure_blob"

Azure Blob Storage is objectopslag, geen CDN

Azure Blob Storage slaat bestanden op en serveert deze rechtstreeks vanaf de bron — het is geen CDN. Afbeeldingen en avatars worden voor optimale prestaties en wereldwijde levering het beste via een CDN geserveerd. Momenteel is Firebase de enige opslagoptie die door een CDN wordt ondersteund.

Je kunt fileStrategies gebruiken om alleen avatars en afbeeldingen naar Firebase te routeren, terwijl documenten op Azure Blob Storage blijven staan:

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

Samenvatting

  1. Een Storage Account aanmaken:
    Meld u aan bij de Azure Portal, maak een storage account aan en wacht tot de implementatie is voltooid.

  2. Authenticatie instellen:

  • Optie A: Haal de connection string op via "Access keys" in je opslagaccount.
  • Optie B: Gebruik Managed Identity door dit in te schakelen op uw Azure-resource en de juiste opslagmachtigingen toe te kennen.
  1. Update omgevingsvariabelen:
    Stel in je .env bestand een van de volgende in:
  • AZURE_STORAGE_CONNECTION_STRING (voor Optie A), of
  • AZURE_STORAGE_ACCOUNT_NAME (voor Optie B), samen met:
  • AZURE_STORAGE_PUBLIC_ACCESS en
  • AZURE_CONTAINER_NAME.
  1. Configure LibreChat:
    Stel fileStrategy in op "azure_blob" in je librechat.yaml configuratiebestand.

Met deze stappen zal je LibreChat-applicatie automatisch de container aanmaken (als deze nog niet bestaat) en het uploaden, downloaden en verwijderen van bestanden beheren met Azure Blob Storage. Managed Identity biedt een veilig alternatief door de noodzaak voor langetermijnreferenties te elimineren.

Lokale ontwikkeling met Azurite

Voor lokale ontwikkeling en testen kun je Azurite gebruiken, een Azure Storage-emulator die een lokale omgeving biedt voor het testen van je Azure Blob Storage-integratie zonder dat je een echt Azure-account nodig hebt.

1. Azurite instellen

Je kunt Azurite op verschillende manieren uitvoeren:

  1. Installeer de Azurite extension voor VS Code
  2. Open het command palette (Ctrl+Shift+P of Cmd+Shift+P)
  3. Zoek naar en selecteer "Azurite: Start"

Dit zal Azurite op de achtergrond starten met de standaardinstellingen.

Optie B: Docker gebruiken

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

Optie C: npm gebruiken

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

2. Configureer omgevingsvariabelen voor lokale ontwikkeling

Voeg de volgende omgevingsvariabelen toe aan je .env bestand:

# 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

Opmerkingen:

  • De AccountKey waarde is de standaard ontwikkelingssleutel die door Azurite wordt gebruikt
  • De verbinding gebruikt het http protocol in plaats van https voor lokale ontwikkeling
  • De BlobEndpoint verwijst naar de lokale Azurite-instantie die op poort 10000 draait

3. De verbinding verifiëren

Om te verifiëren dat uw applicatie verbinding kan maken met de lokale Azurite-instantie:

  1. Start uw LibreChat-applicatie
  2. Probeer een bestand te uploaden via de interface
  3. Controleer de Azurite-logs om de verbinding en bewerkingen te bevestigen

Als je de VS Code-extensie gebruikt, kun je de Azurite-logs bekijken in het Output-paneel door "Azurite Blob" te selecteren in het dropdown-menu.

Let op

De standaard Azurite-accountsleutel is een vaste waarde die uitsluitend voor ontwikkelingsdoeleinden wordt gebruikt. Gebruik deze sleutel nooit in productieomgevingen. Zorg er altijd voor dat uw connection string veilig blijft en commit deze nooit naar een openbare repository.

Hoe is deze gids?