Archiviazione Blob Azure
Questo documento fornisce le istruzioni per configurare Azure Blob Storage per LibreChat
In questa pagina
Configurazione per la produzione
Azure Blob Storage offre uno storage di oggetti scalabile e sicuro per i file in LibreChat. Segui questi passaggi per configurare il tuo Azure Blob Storage.
1. Crea un Azure Storage Account
-
Accedi ad Azure:
- Apri il Azure Portal e accedi con il tuo account Microsoft.
-
Crea un account di archiviazione:
- Fai clic su "Create a resource" e cerca "Storage account".
- Fai clic su "Create" e inserisci i dettagli richiesti:
- Sottoscrizione e Gruppo di risorse: Scegli la tua sottoscrizione e seleziona un gruppo di risorse esistente oppure creane uno nuovo.
- Nome dell'account di archiviazione: Inserisci un nome univoco (ad esempio,
mylibrechatstorage). - Regione: Seleziona la regione più vicina ai tuoi utenti.
- Prestazioni e Ridondanza: Scegli il livello di prestazioni e il grado di ridondanza più adatti alle tue esigenze.
- Fai clic su "Review + Create" e poi su "Create". Attendi il completamento del deployment.
2. Configura l'autenticazione
Hai due opzioni per l'autenticazione con il tuo Azure Storage Account:
Opzione A: Utilizzo di una Connection String
-
Vai a Access Keys:
- Nel tuo account di archiviazione appena creato, vai su "Access keys" nella barra laterale.
-
Copia stringa di connessione:
- Copia una delle stringhe di connessione fornite. Questa stringa include le credenziali necessarie per connettersi al tuo account di Blob Storage.
Opzione B: Utilizzo di Managed Identity
Se la tua applicazione LibreChat è in esecuzione su un servizio Azure che supporta Managed Identity (come una VM Azure, un App Service o AKS), puoi utilizzarlo al posto di una stringa di connessione.
-
Assegna identità gestita:
- Assicurati che la tua risorsa Azure (VM, App Service o AKS) abbia una Managed Identity assegnata dal sistema o dall'utente abilitata.
-
Concedi i permessi di archiviazione:
- Nel tuo account di archiviazione, assegna il ruolo Storage Blob Data Contributor (o un ruolo con ambito simile) alla tua Managed Identity. Ciò consente alla tua applicazione di accedere a Blob Storage senza una stringa di connessione.
3. Aggiorna le tue variabili d'ambiente
Crea o aggiorna il tuo file .env nella root del progetto con la seguente configurazione:
# 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: Impostalo se stai utilizzando l'Opzione A.
- AZURE_STORAGE_ACCOUNT_NAME: Imposta questo valore se stai utilizzando l'Opzione B (Managed Identity). Non impostarli entrambi.
- AZURE_STORAGE_PUBLIC_ACCESS: Impostare su
falsese non si desidera che i propri blob siano accessibili pubblicamente per impostazione predefinita. Impostare sutruese è necessario l'accesso pubblico (ad esempio, per immagini visualizzabili pubblicamente). - AZURE_CONTAINER_NAME: Questo è il nome del container che la tua applicazione utilizzerà (ad esempio,
files). L'applicazione creerà automaticamente questo container se non esiste.
4. Configurare LibreChat per utilizzare Azure Blob Storage
Aggiorna il tuo file di configurazione di LibreChat (librechat.yaml) per specificare che l'applicazione deve utilizzare Azure Blob Storage per la gestione dei file:
version: 1.3.5
cache: true
fileStrategy: "azure_blob"Azure Blob Storage è un object storage, non una CDN
Azure Blob Storage archivia e serve i file direttamente dall'origine — non è una CDN. Le immagini e gli avatar vengono serviti al meglio tramite una CDN per prestazioni ottimali e una distribuzione globale. Attualmente, Firebase è l'unica opzione di archiviazione supportata da CDN.
Puoi utilizzare fileStrategies per instradare solo avatar e immagini su Firebase, mantenendo i documenti su Azure Blob Storage:
fileStrategies:
avatar: "firebase"
image: "firebase"
document: "azure_blob"Riepilogo
-
Crea un account di archiviazione:
Accedi al portale Azure, crea un account di archiviazione e attendi il completamento della distribuzione. -
Configurazione dell'autenticazione:
- Opzione A: Recupera la stringa di connessione da "Access keys" nel tuo account di archiviazione.
- Opzione B: Utilizzare Managed Identity abilitandola sulla propria risorsa Azure e concedendo le autorizzazioni di archiviazione appropriate.
- Aggiorna le variabili d'ambiente:
Nel tuo file.env, imposta uno dei seguenti:
AZURE_STORAGE_CONNECTION_STRING(per l'Opzione A), oAZURE_STORAGE_ACCOUNT_NAME(per l'Opzione B), insieme a:AZURE_STORAGE_PUBLIC_ACCESSeAZURE_CONTAINER_NAME.
- Configura LibreChat:
ImpostafileStrategysu"azure_blob"nel tuo file di configurazionelibrechat.yaml.
Con questi passaggi, la tua applicazione LibreChat creerà automaticamente il container (se non esiste) e gestirà il caricamento, il download e l'eliminazione dei file utilizzando Azure Blob Storage. Managed Identity fornisce un'alternativa sicura eliminando la necessità di credenziali a lungo termine.
Sviluppo locale con Azurite
Per lo sviluppo e il test in locale, puoi utilizzare Azurite, un emulatore di Azure Storage che fornisce un ambiente locale per testare la tua integrazione con Azure Blob Storage senza bisogno di un account Azure reale.
1. Configurare Azurite
Puoi eseguire Azurite in diversi modi:
Opzione A: Utilizzo dell'estensione VS Code (Consigliata per lo sviluppo)
- Installa l'estensione Azurite per VS Code
- Apri la tavolozza dei comandi (Ctrl+Shift+P o Cmd+Shift+P)
- Cerca e seleziona "Azurite: Start"
Questo avvierà Azurite in background con le impostazioni predefinite.
Opzione B: Utilizzo di Docker
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azuriteOpzione C: Utilizzo di npm
npm install -g azurite
azurite --silent --location /path/to/azurite/workspace --debug /path/to/debug/log2. Configurare le variabili d'ambiente per lo sviluppo locale
Aggiungi le seguenti variabili d'ambiente al tuo file .env:
# 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=filesNote:
- Il valore
AccountKeyè la chiave di sviluppo predefinita utilizzata da Azurite - La connessione utilizza il protocollo
httpinvece dihttpsper lo sviluppo locale - Il
BlobEndpointpunta all'istanza locale di Azurite in esecuzione sulla porta 10000
3. Verifica la connessione
Per verificare che la tua applicazione possa connettersi all'istanza locale di Azurite:
- Avvia la tua applicazione LibreChat
- Prova a caricare un file tramite l'interfaccia
- Controlla i log di Azurite per confermare la connessione e le operazioni
Se stai utilizzando l'estensione VS Code, puoi visualizzare i log di Azurite nel pannello Output selezionando "Azurite Blob" dal menu a discesa.
Nota
La chiave dell'account Azurite predefinita è un valore fisso utilizzato esclusivamente a scopo di sviluppo. Non utilizzare mai questa chiave in ambienti di produzione. Assicurati sempre che la tua stringa di connessione rimanga sicura e non eseguire mai il commit in un repository pubblico.
Com’è questa guida?