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

Variabili d'ambiente

Guida completa per configurare l'ambiente della tua applicazione con il file `.env`. Questo documento è la tua risorsa unica per comprendere e personalizzare le variabili d'ambiente che determineranno il comportamento della tua applicazione in diversi contesti.

Benvenuti nella guida completa per la configurazione dell'ambiente della vostra applicazione tramite il file .env. Questo documento è la vostra risorsa unica per comprendere e personalizzare le variabili d'ambiente che determineranno il comportamento della vostra applicazione in diversi contesti.

Mentre le impostazioni predefinite forniscono una solida base per un'installazione docker standard, approfondire questa guida svelerà il pieno potenziale di LibreChat. Questa guida ti permette di adattare LibreChat alle tue esigenze specifiche. Scopri come regolare la disponibilità dei modelli linguistici, integrare i social login, gestire il sistema di moderazione automatica e molto altro. Si tratta di darti il controllo per ottimizzare LibreChat per un'esperienza utente ideale.

Promemoria: Riavviare LibreChat affinché le modifiche alla configurazione abbiano effetto

In alternativa, puoi creare un nuovo file chiamato docker-compose.override.yml nella stessa directory del tuo file docker-compose.yml principale per LibreChat, dove puoi impostare le tue variabili .env come necessario sotto environment, oppure modificare la configurazione predefinita fornita dal docker-compose.yml principale, senza la necessità di modificare direttamente o duplicare l'intero file.

Per maggiori informazioni, consulta:


Configurazione del Server

Porta

  • Il server è in ascolto su una porta specifica.
  • La variabile d'ambiente PORT imposta la porta su cui il server rimane in ascolto. Per impostazione predefinita, è impostata su 3080.
KeyTypeDescriptionExample
HOSTstringSpecifica l'host.HOST=localhost
PORTnumberSpecifica la porta.PORT=3080

Trust proxy

Utilizza l'indirizzo che si trova al massimo a n salti di distanza dall'applicazione Express. req.socket.remoteAddress è il primo salto, mentre i restanti vengono cercati nell'intestazione X-Forwarded-For da destra a sinistra. Un valore pari a 0 significa che il primo indirizzo non attendibile sarebbe req.socket.remoteAddress, ovvero non è presente alcun reverse proxy. Il valore predefinito della variabile d'ambiente TRUST_PROXY è impostato su 1.

Fare riferimento a Express.js - trust proxy per ulteriori informazioni a riguardo.

KeyTypeDescriptionExample
TRUST_PROXYnumberSpecifica il numero di hop.TRUST_PROXY=1

Configurazione delle credenziali

Per archiviare le credenziali in modo sicuro, è necessaria una chiave fissa e un IV. Puoi impostarli qui per gli ambienti di produzione e sviluppo.

KeyTypeDescriptionExample
CREDS_KEYstringChiave a 32 byte (64 caratteri in esadecimale) per l'archiviazione sicura delle credenziali. Richiesta per l'avvio dell'app.CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
CREDS_IVstringIV a 16 byte (32 caratteri in esadecimale) per l'archiviazione sicura delle credenziali. Richiesto per l'avvio dell'app.CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb

Attenzione

Avviso: Se non imposti CREDS_KEY e CREDS_IV, l'app si arresterà in modo anomalo all'avvio. - Puoi utilizzare questo Generatore di chiavi per generarli rapidamente.

Gestione dei file statici

KeyTypeDescriptionExample
STATIC_CACHE_MAX_AGEstringCache-Control max-age in secondiSTATIC_CACHE_MAX_AGE=172800
STATIC_CACHE_S_MAX_AGEstringCache-Control s-maxage in secondi per cache condivise (CDN e proxy)STATIC_CACHE_S_MAX_AGE="86400"
DISABLE_COMPRESSIONbooleanDisabilita la compressione per i file statici.DISABLE_COMPRESSION=false
ENABLE_IMAGE_OUTPUT_GZIP_SCANbooleanAbilita la distribuzione di versioni gzipped delle immagini caricate se presenti nella stessa cartella.ENABLE_IMAGE_OUTPUT_GZIP_SCAN=true
ENABLE_STATIC_ASSET_BROTLIbooleanAbilita la distribuzione di versioni Brotli precompresse degli asset statici dell'app quando disponibili.ENABLE_STATIC_ASSET_BROTLI=true

Comportamento:

Imposta le intestazioni Cache-Control per i file statici. Queste configurazioni si attivano solo quando NODE_ENV è impostato su production.

  • Decommenta STATIC_CACHE_MAX_AGE per modificare il max-age locale per i file statici. Per impostazione predefinita, questo è impostato su 2 giorni (172800 secondi).
  • Decommenta STATIC_CACHE_S_MAX_AGE per impostare s-maxage per le cache condivise (CDN e proxy). Per impostazione predefinita, questo valore è impostato su 1 giorno (86400 secondi).
  • Decommenta DISABLE_COMPRESSION per disabilitare la compressione per i file statici. Per impostazione predefinita, la compressione è abilitata.
  • Decommenta ENABLE_IMAGE_OUTPUT_GZIP_SCAN per abilitare la scansione e la distribuzione della versione compressa in gzip delle immagini, se sono state pre-compresse nella stessa cartella, con lo stesso nome e un'estensione .gz. Per impostazione predefinita, la scansione gzip per le immagini caricate è disabilitata.
  • Decommenta ENABLE_STATIC_ASSET_BROTLI per servire versioni .br pre-compresse degli asset statici dell'app quando presenti. Quando abilitato, Brotli è preferito rispetto a gzip per i file statici serviti dall'API.

Attenzione

  • Ciò riguarda solo i file statici serviti dal server API e non è applicabile a Firebase, NGINX o qualsiasi altra configurazione.

Controllo della cache dell'HTML dell'indice

KeyTypeDescriptionExample
INDEX_CACHE_CONTROLstringIntestazione Cache-Control per index.htmlINDEX_CACHE_CONTROL=no-cache, no-store, must-revalidate
INDEX_PRAGMAstringIntestazione Pragma per index.htmlINDEX_PRAGMA=no-cache
INDEX_EXPIRESstringIntestazione Expires per index.htmlINDEX_EXPIRES=0

Comportamento:

Controlla le intestazioni di caching specificamente per la risposta index.html. Per impostazione predefinita, queste impostazioni impediscono il caching per garantire che gli utenti ottengano sempre l'ultima versione dell'applicazione.

Nota

A differenza delle risorse statiche che vengono memorizzate nella cache per migliorare le prestazioni, le intestazioni della cache del file index.html sono configurate separatamente per garantire che gli utenti ricevano sempre la shell dell'applicazione più recente.

Database MongoDB

KeyTypeDescriptionExample
MONGO_URIstringSpecifica l'URI di MongoDB.MONGO_URI=mongodb://127.0.0.1:27017/LibreChat

Cambia questo con il tuo URI MongoDB se diverso. Dovresti aggiungere LibreChat o il tuo APP_TITLE come nome del database nell'URI.

Se stai utilizzando un database online, il formato URI è mongodb+srv://<username>:<password>@<host>/<database>?<options>. Il tuo MONGO_URI dovrebbe apparire così:

  • mongodb+srv://username:[email protected]/LibreChat?retryWrites=true (retryWrites è l'unica opzione necessaria quando si utilizza il database online.)

Configurazione del pool di connessione MongoDB

KeyTypeDescriptionExample
MONGO_MAX_POOL_SIZEnumberIl numero massimo di connessioni nel pool di connessioni.# MONGO_MAX_POOL_SIZE=
MONGO_MIN_POOL_SIZEnumberIl numero minimo di connessioni nel pool di connessioni.# MONGO_MIN_POOL_SIZE=
MONGO_MAX_CONNECTINGnumberIl numero massimo di connessioni che possono essere in fase di stabilimento simultaneamente dal pool di connessioni.# MONGO_MAX_CONNECTING=
MONGO_MAX_IDLE_TIME_MSnumberIl numero massimo di millisecondi in cui una connessione può rimanere inattiva nel pool prima di essere rimossa e chiusa.# MONGO_MAX_IDLE_TIME_MS=
MONGO_WAIT_QUEUE_TIMEOUT_MSnumberIl tempo massimo in millisecondi che un thread può attendere affinché una connessione diventi disponibile.# MONGO_WAIT_QUEUE_TIMEOUT_MS=

Configurazione dello Schema MongoDB

KeyTypeDescriptionExample
MONGO_AUTO_INDEXbooleanImpostare su false per disabilitare la creazione automatica dell'indice per tutti i modelli associati a questa connessione. Se omesso, utilizza il comportamento predefinito di Mongoose.# MONGO_AUTO_INDEX=
MONGO_AUTO_CREATEbooleanImpostare su false per disabilitare la chiamata automatica di createCollection() da parte di Mongoose su ogni modello creato in questa connessione. Se omesso, utilizza il comportamento predefinito di Mongoose.# MONGO_AUTO_CREATE=

In alternativa, puoi utilizzare documentDb che emula mongoDb, ma esso:

  • non supporta retryWrites - usa retryWrites=false
  • richiede una connessione TLS, pertanto utilizzare i parametri tls=true per abilitare TLS e tlsCAFile=/path-to-ca/bundle.pem per puntare al file del bundle CA fornito da AWS

L'URI per documentDb sarà simile a:

  • mongodb+srv://username:password@domain/dbname?retryWrites=false&tls=true&tlsCAFile=/path-to-ca/bundle.pem

Vedi anche:

Domini di applicazione

Per configurare LibreChat per l'uso locale o per il deployment su un dominio personalizzato, imposta le seguenti variabili d'ambiente:

KeyTypeDescriptionExample
DOMAIN_CLIENTstringSpecifica il dominio lato client.DOMAIN_CLIENT=http://localhost:3080
DOMAIN_SERVERstringSpecifica il dominio lato server.DOMAIN_SERVER=http://localhost:3080
ADMIN_PANEL_URLstringURL di base del pannello di amministrazione esterno utilizzato per i reindirizzamenti OAuth/SSO dell'amministratore quando il pannello di amministrazione è ospitato separatamente. Non includere una barra finale.ADMIN_PANEL_URL=https://admin.example.com/admin
ADMIN_PANEL_SESSION_SECRETstringChiave di crittografia di sessione richiesta per il pannello di amministrazione incluso (minimo 32 caratteri). I servizi admin-panel in docker-compose e deploy-compose la leggono come SESSION_SECRET. Generala con `openssl rand -hex 32` prima di avviare lo stack.ADMIN_PANEL_SESSION_SECRET=<your-32-char-random-string>
ADMIN_PANEL_PORTnumberPorta host per il pannello di amministrazione incluso nel docker-compose predefinito. In deploy-compose, il pannello viene servito tramite nginx all'indirizzo http://admin.localhost.ADMIN_PANEL_PORT=3000

Quando distribuisci LibreChat su un dominio personalizzato, sostituisci http://localhost:3080 con il tuo URL distribuito.

  • ad es. https://librechat.example.com.

Impedire ai motori di ricerca pubblici l'indicizzazione

Per impostazione predefinita, il tuo sito web non verrà indicizzato dai motori di ricerca pubblici (ad esempio Google, Bing, …). Ciò significa che le persone non saranno in grado di trovare il tuo sito web tramite questi motori di ricerca. Se desideri rendere il tuo sito web più visibile e ricercabile, puoi modificare la seguente impostazione in false

KeyTypeDescriptionExample
NO_INDEXbooleanImpedisce ai motori di ricerca pubblici di indicizzare il tuo sito web.NO_INDEX=true

Nota: Non è garantito che questo metodo funzioni per tutti i motori di ricerca e alcuni motori di ricerca potrebbero comunque indicizzare il tuo sito web o la tua pagina web per altri scopi, come la memorizzazione nella cache o l'archiviazione. Pertanto, non dovresti fare affidamento esclusivamente su questo metodo per proteggere informazioni sensibili o riservate sul tuo sito web o sulla tua pagina web.

Logging

LibreChat dispone di un sistema di logging centrale integrato; consulta Logging System per maggiori informazioni.

File di log

  • Il debug logging è abilitato per impostazione predefinita ed è fondamentale per lo sviluppo.
  • Per segnalare problemi, riproduci l'errore e invia i log da ./api/logs/debug-%DATE%.log su: LibreChat GitHub Issues
  • I log di errore sono archiviati nella stessa posizione.

Variabili d'ambiente

KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanMantieni attivi i log di debug.DEBUG_LOGGING=true
DEBUG_CONSOLEbooleanAbilita i log dettagliati della console/stdout nello stesso formato dei log di debug dei file.DEBUG_CONSOLE=false
LOG_TO_FILEbooleanImpostare su false per disabilitare i transport Winston basati su file mantenendo disponibile la registrazione su console.LOG_TO_FILE=true
CONSOLE_JSONbooleanAbilita log dettagliati in formato JSON su console/stdout adatti a distribuzioni cloud come GCP/AWS.CONSOLE_JSON=false
CONSOLE_JSON_STRING_LENGTHnumberConfigura la dimensione di troncamento per i valori stringa nei log della console/stdout JSON. Predefinito: 255.# CONSOLE_JSON_STRING_LENGTH=255
LIBRECHAT_LOG_DIRstringDirectory personalizzata per i file di log. L'impostazione predefinita è /app/logs (Docker) o api/logs (sviluppo locale).# LIBRECHAT_LOG_DIR=/custom/log/path
MEM_DIAGbooleanAbilita la diagnostica della memoria — registra snapshot di heap/RSS ogni 60 secondi. Abilitato automaticamente quando eseguito con --inspect.# MEM_DIAG=true
AGENT_DEBUG_LOGGINGbooleanAbilita il logging di debug dettagliato nell'agent controller (conteggio dei token, diagnostica di potatura del contesto).# AGENT_DEBUG_LOGGING=true

Nota:

  • DEBUG_LOGGING può essere utilizzato con DEBUG_CONSOLE o CONSOLE_JSON, ma non con entrambi.
  • DEBUG_CONSOLE e CONSOLE_JSON si escludono a vicenda.
  • CONSOLE_JSON: Quando si gestiscono i log della console in distribuzioni cloud (come GCP o AWS), l'abilitazione di questa opzione scaricherà i log con un timestamp UTC e li formatterà come JSON.

Nota: DEBUG_CONSOLE non è raccomandato, poiché gli output possono essere piuttosto prolissi, ed è quindi disabilitato per impostazione predefinita.

Autorizzazione

UID e GID sono numeri assegnati da Linux a ogni utente e gruppo sul sistema. Se riscontri problemi di autorizzazione, imposta qui l'UID e il GID dell'utente che esegue il comando Docker Compose. Le applicazioni nel container verranno eseguite con questi UID/GID.

KeyTypeDescriptionExample
UIDnumberL'ID utente.# UID=1000
GIDnumberL'ID del gruppo.# GID=1000

Tracciamento OpenTelemetry

LibreChat può emettere tracce OpenTelemetry del backend per la visibilità generale di API, HTTP, MongoDB, Mongoose, Redis e richieste in uscita. Gli span a livello di comando Redis sono opzionali, in modo che le tracce predefinite rimangano ad alto livello. Utilizza Langfuse per l'osservabilità di prompt/modelli specifica per la GenAI.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanAbilita il tracing OpenTelemetry del backend. Il tracing rimane disabilitato quando OTEL_SDK_DISABLED=true.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringNome del servizio segnalato a OpenTelemetry. Predefinito: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringVersione del servizio riportata a OpenTelemetry. Se non impostata, viene utilizzata la versione del pacchetto come predefinita.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringEndpoint dell'exporter OTLP di base.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringendpoint OTLP specifico per le tracce. Sovrascrive l'endpoint di base per le tracce quando impostato.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringIntestazioni dell'esportatore OTLP separate da virgole, come i metadati di autorizzazione.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringSelezione dell'esportatore di tracce.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringCampionatore di tracce OpenTelemetry. Esempio predefinito: parentbased_always_on.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringLivello di log dell'OpenTelemetry SDK.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanDisabilita l'SDK OpenTelemetry anche se il tracing è abilitato.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanAbilita gli span a livello di comando Redis. Disabilitato per impostazione predefinita per mantenere le tracce del backend ad alto livello.# OTEL_IOREDIS_TRACING_ENABLED=false

Real User Monitoring (Browser)

LibreChat può pubblicare la telemetria Real User Monitoring (RUM) del browser verso collector OTLP compatibili con HyperDX. RUM è disabilitato per impostazione predefinita.

KeyTypeDescriptionExample
RUM_ENABLEDbooleanAbilita il Real User Monitoring del browser. Predefinito: false.# RUM_ENABLED=false
RUM_PROVIDERstringProvider RUM del browser. Attualmente supporta `hyperdx`.# RUM_PROVIDER=hyperdx
RUM_URLstringURL del collector pubblico utilizzato dalla modalità public-token.# RUM_URL=http://localhost:4318
RUM_SERVICE_NAMEstringNome del servizio riportato dall'SDK del browser. Predefinito: librechat-web.# RUM_SERVICE_NAME=librechat-web
RUM_ENVIRONMENTstringEtichetta dell'ambiente riportata con la telemetria del browser.# RUM_ENVIRONMENT=development
RUM_AUTH_MODEstringModalità di autenticazione per la telemetria del browser. Utilizzare `publicToken` o `proxy`.# RUM_AUTH_MODE=publicToken
RUM_PUBLIC_TOKENstringToken del browser pubblico per la modalità public-token. Trattalo come pubblico e limita l'acquisizione presso il collector.# RUM_PUBLIC_TOKEN=
RUM_PROXY_TARGET_URLstringURL di base del collector utilizzato dalla modalità proxy autenticata. Obbligatorio quando `RUM_AUTH_MODE=proxy`.# RUM_PROXY_TARGET_URL=http://otel-collector:4318
RUM_PROXY_TIMEOUT_MSnumberTimeout della richiesta proxy in millisecondi. Predefinito: 10000.# RUM_PROXY_TIMEOUT_MS=10000
RUM_TRACE_PROPAGATION_TARGETSstringOrigini HTTPS o URL proprietari separati da virgole che dovrebbero ricevere le intestazioni traceparent.# RUM_TRACE_PROPAGATION_TARGETS=https://api.example.com
RUM_DISABLE_REPLAYbooleanDisabilita la riproduzione della sessione del browser. Predefinito: true.# RUM_DISABLE_REPLAY=true
RUM_CONSOLE_CAPTUREbooleanAcquisisci i log della console del browser. Potrebbe raccogliere prompt, risposte o payload sensibili.# RUM_CONSOLE_CAPTURE=false
RUM_ADVANCED_NETWORK_CAPTUREbooleanCattura payload di rete dettagliati. Potrebbe raccogliere prompt, risposte o payload sensibili.# RUM_ADVANCED_NETWORK_CAPTURE=false
RUM_SAMPLE_RATEnumberFrequenza di campionamento della telemetria del browser da 0 a 1. Predefinito: 1.# RUM_SAMPLE_RATE=1

Nella modalità publicToken, il browser invia la telemetria direttamente a RUM_URL con RUM_PUBLIC_TOKEN. Nella modalità proxy, il browser invia la telemetria tramite LibreChat; il backend convalida la sessione utente, rimuove le intestazioni di autenticazione dell'app e inoltra la telemetria a RUM_PROXY_TARGET_URL. Le sessioni non valide o scadute vengono scartate con una risposta 204, in modo che gli errori di telemetria del browser non mostrino i normali errori di autenticazione dell'API. I risultati del proxy vengono conteggiati in rum_proxy_requests_total con le etichette endpoint e result sull'endpoint /metrics dell'API di LibreChat.

Percorso di configurazione - librechat.yaml

Specifica una posizione alternativa per il file di configurazione di LibreChat. Puoi specificare un percorso assoluto, un percorso relativo o un URL. Il nome del file nel percorso è flessibile e non deve necessariamente essere librechat.yaml; qualsiasi file di configurazione valido funzionerà.

Nota: Se preferisci che LibreChat cerchi il file di configurazione nella directory principale (che è il comportamento predefinito), lascia semplicemente questa opzione commentata.

KeyTypeDescriptionExample
CONFIG_PATHstringUna posizione alternativa per il file di configurazione di LibreChat.# CONFIG_PATH=https://raw.githubusercontent.com/danny-avila/LibreChat/main/librechat.example.yaml

Competenze di Deployment

Le Deployment Skills vengono caricate in sola lettura all'avvio dal filesystem ed esposte agli utenti che hanno la funzionalità Skills abilitata.

KeyTypeDescriptionExample
DEPLOYMENT_SKILLS_DIRstringDirectory contenente le Skills fornite dal deployment. L'impostazione predefinita è `./skill` nella root del progetto.# DEPLOYMENT_SKILLS_DIR=./skill

Riavvia LibreChat dopo aver modificato questa directory o qualsiasi file al suo interno. Le Skills fornite dal deployment hanno la precedenza sulle Skills persistenti con lo stesso nome.

Convalida della configurazione

Per impostazione predefinita, LibreChat terminerà con un errore (codice di uscita 1) se il file di configurazione librechat.yaml contiene errori di convalida. Questo comportamento di "fail-fast" aiuta a rilevare tempestivamente i problemi di configurazione nelle pipeline di distribuzione e impedisce l'esecuzione con impostazioni predefinite non intenzionali.

KeyTypeDescriptionExample
CONFIG_BYPASS_VALIDATIONbooleanSe impostato su `true`, il server registrerà un avviso e continuerà l'avvio con la configurazione predefinita anche se `librechat.yaml` presenta errori di convalida. Questo preserva il comportamento legacy.# CONFIG_BYPASS_VALIDATION=true

Attenzione

L'utilizzo di CONFIG_BYPASS_VALIDATION=true non è raccomandato per gli ambienti di produzione. È inteso come una soluzione temporanea durante il debug di problemi di configurazione. Risolvi sempre gli errori di convalida nel tuo file di configurazione.

Gestione delle Eccezioni Non Gestite

Per impostazione predefinita, LibreChat terminerà il processo quando si verifica un'eccezione non gestita, che è il comportamento standard di Node.js. È possibile ignorare questo comportamento per mantenere l'app in esecuzione dopo le eccezioni non gestite.

KeyTypeDescriptionExample
CONTINUE_ON_UNCAUGHT_EXCEPTIONbooleanQuando impostato su `true`, l'app continuerà a funzionare dopo aver riscontrato eccezioni non gestite invece di terminare il processo.# CONTINUE_ON_UNCAUGHT_EXCEPTION=false

Attenzione

Non raccomandato per la produzione a meno che non sia necessario. Le eccezioni non gestite potrebbero lasciare l'applicazione in uno stato imprevedibile.

Endpoint

In questa sezione, puoi configurare gli endpoint e la selezione dei modelli, le relative API key, e le impostazioni di proxy e reverse proxy per gli endpoint che lo supportano.

Configurazione generale

Decommenta ENDPOINTS per personalizzare gli endpoint disponibili in LibreChat.

KeyTypeDescriptionExample
ENDPOINTSstringElenco separato da virgole degli endpoint disponibili.# ENDPOINTS=openAI,agents,assistants,gptPlugins,azureOpenAI,google,anthropic,bingAI,custom
PROXYstringProxy in uscita per i client lato server supportati. Si applica a destinazioni sia HTTP che HTTPS.PROXY=
HTTP_PROXYstringFallback del proxy HTTP utilizzato dai client lato server supportati quando PROXY non è impostato.# HTTP_PROXY=
HTTPS_PROXYstringFallback del proxy HTTPS utilizzato dai client lato server supportati quando PROXY non è impostato.# HTTPS_PROXY=
NO_PROXYstringHost, domini o intervalli IP separati da virgole che i client lato server supportati devono ignorare. Viene rispettata anche la variante minuscola no_proxy.# NO_PROXY=
TITLE_CONVObooleanAbilita la titolazione per tutti gli endpoint.TITLE_CONVO=true

Endpoint noti - librechat.yaml

KeyTypeDescriptionExample
ANYSCALE_API_KEYstringChiave API per Anyscale.# ANYSCALE_API_KEY=
APIPIE_API_KEYstringChiave API per Apipie.# APIPIE_API_KEY=
COHERE_API_KEYstringChiave API per Cohere.# COHERE_API_KEY=
FIREWORKS_API_KEYstringChiave API per Fireworks.# FIREWORKS_API_KEY=
GROQ_API_KEYstringChiave API per Groq.# GROQ_API_KEY=
MISTRAL_API_KEYstringChiave API per Mistral.# MISTRAL_API_KEY=
OPENROUTER_KEYstringChiave API per OpenRouter.# OPENROUTER_KEY=
PERPLEXITY_API_KEYstringChiave API per Perplexity.# PERPLEXITY_API_KEY=
SHUTTLEAI_API_KEYstringChiave API per ShuttleAI.# SHUTTLEAI_API_KEY=
TOGETHERAI_API_KEYstringChiave API per TogetherAI.# TOGETHERAI_API_KEY=
DEEPSEEK_API_KEYstringChiave API per Deepseek API# DEEPSEEK_API_KEY=

La funzionalità di ricerca web abilita le capacità di ricerca su internet all'interno di LibreChat.

Importante: I nomi esatti delle variabili d'ambiente mostrati di seguito sono riferimenti predefiniti e possono essere personalizzati tramite il file di configurazione librechat.yaml per utilizzare qualsiasi nome di variabile si preferisca.

Per opzioni dettagliate di configurazione e personalizzazione, consulta: Configurazione Ricerca Web

KeyTypeDescriptionExample
SERPER_API_KEYstringChiave API per il provider di ricerca Serper. Ottieni la tua chiave da https://serper.dev/api-keys# SERPER_API_KEY=
TAVILY_API_KEYstringChiave API per il provider di ricerca e scraper Tavily. Ottieni la tua chiave da https://app.tavily.com/home# TAVILY_API_KEY=
TAVILY_SEARCH_URLstringURL personalizzato dell'API di ricerca Tavily (opzionale). Necessario solo per endpoint di ricerca personalizzati o proxy compatibili con Tavily.# TAVILY_SEARCH_URL=
TAVILY_EXTRACT_URLstringURL API di estrazione Tavily personalizzato (opzionale). Necessario solo per endpoint di estrazione personalizzati o proxy compatibili con Tavily.# TAVILY_EXTRACT_URL=
FIRECRAWL_API_KEYstringChiave API per il servizio di scraping Firecrawl. Ottieni la tua chiave da https://docs.firecrawl.dev/introduction#api-key# FIRECRAWL_API_KEY=
FIRECRAWL_API_URLstringURL API Firecrawl personalizzato (opzionale). Necessario solo per istanze Firecrawl personalizzate.# FIRECRAWL_API_URL=
FIRECRAWL_VERSIONstringVersione API di Firecrawl (v0 o v1).# FIRECRAWL_VERSION=v1
JINA_API_KEYstringChiave API per il servizio di reranking Jina. Ottieni la tua chiave da https://jina.ai/api-dashboard/# JINA_API_KEY=
JINA_API_URLstringURL API Jina personalizzato (opzionale). Necessario solo per istanze Jina personalizzate.# JINA_API_URL=
COHERE_API_KEYstringChiave API per il servizio di reranking di Cohere. Ottieni la tua chiave da https://dashboard.cohere.com/welcome/login# COHERE_API_KEY=

Nota: Questi nomi di variabile possono essere personalizzati nel file di configurazione librechat.yaml. Ad esempio, potresti usare CUSTOM_SERPER_KEY invece di SERPER_API_KEY configurandolo nelle impostazioni di ricerca web. Consulta la documentazione Web Search Configuration per i dettagli sulla personalizzazione dei nomi delle variabili.

Anthropic

vedi: Anthropic Endpoint

  • Puoi richiedere una chiave di accesso da https://platform.claude.com/
  • Lascia ANTHROPIC_API_KEY= vuoto per disabilitare questo endpoint
  • Imposta ANTHROPIC_API_KEY= su "user_provided" per consentire agli utenti di fornire la propria chiave API dall'interfaccia WebUI
  • Se hai accesso a un reverse proxy per Anthropic, puoi impostarlo con ANTHROPIC_REVERSE_PROXY=
    • lasciare vuoto o commentare per utilizzare l'URL di base predefinito
KeyTypeDescriptionExample
ANTHROPIC_API_KEYstringChiave API Anthropic o "user_provided" per consentire agli utenti di fornire la propria chiave API.Defaults to an empty string.
ANTHROPIC_MODELSstringElenco separato da virgole dei modelli Anthropic da utilizzare.# ANTHROPIC_MODELS=claude-fable-5,claude-opus-4-8,claude-opus-4-7,claude-sonnet-4-6,claude-opus-4-6,claude-opus-4-20250514,claude-3-7-sonnet-20250219,claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022
ANTHROPIC_REVERSE_PROXYstringProxy inverso per Anthropic.# ANTHROPIC_REVERSE_PROXY=
ANTHROPIC_TITLE_MODELstringDEPRECATO: Modello da utilizzare per la titolazione con Anthropic.# ANTHROPIC_TITLE_MODEL=claude-3-haiku-20240307
  • ANTHROPIC_TITLE_MODEL è ora deprecato e verrà rimosso nelle versioni future. Utilizza invece l'impostazione dell'endpoint titleModel all'interno della configurazione librechat.yaml.

Nota: Deve essere compatibile con l'endpoint Anthropic. Inoltre, i modelli Claude 2 e Claude 3 offrono le prestazioni migliori per questa attività, con i modelli claude-3-haiku che risultano i più economici.

Claude Fable 5 è incluso nell'elenco predefinito dei modelli Anthropic. I modelli di classe Fable/Mythos utilizzano il comportamento moderno di Anthropic in LibreChat: 1M di contesto, supporto per l'adaptive thinking, supporto per il prompt caching e gestione di thinkingDisplay per l'output di ragionamento riassunto o omesso.

Anthropic tramite Vertex AI

Puoi anche utilizzare i modelli Anthropic Claude tramite Google Cloud Vertex AI. Per le opzioni di configurazione YAML dettagliate, consulta: Configurazione di Anthropic Vertex AI

KeyTypeDescriptionExample
ANTHROPIC_USE_VERTEXbooleanImpostare su true per utilizzare i modelli Anthropic tramite Google Vertex AI invece dell'API diretta.ANTHROPIC_USE_VERTEX=true
ANTHROPIC_VERTEX_REGIONstringLa regione Google Cloud per Vertex AI. Predefinito: us-east5.ANTHROPIC_VERTEX_REGION=us-east5

Nota: Quando si utilizza Vertex AI, è necessario configurare anche GOOGLE_SERVICE_KEY_FILE (vedere Configurazione Google) con un account di servizio che disponga del ruolo Vertex AI User.

AWS Bedrock

Vedi: Configurazione AWS Bedrock

KeyTypeDescriptionExample
BEDROCK_AWS_DEFAULT_REGIONstringÈ necessario fornire una regione AWS predefinita per Bedrock.BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_ACCESS_KEY_IDstringID della chiave di accesso AWS per Bedrock. Facoltativo se si utilizza la catena di credenziali AWS predefinita.# BEDROCK_AWS_ACCESS_KEY_ID=your_access_key_id
BEDROCK_AWS_SECRET_ACCESS_KEYstringAWS secret access key per Bedrock. Opzionale se si utilizza la catena di credenziali AWS predefinita.# BEDROCK_AWS_SECRET_ACCESS_KEY=your_secret_access_key
BEDROCK_AWS_SESSION_TOKENstringToken di sessione AWS per credenziali temporanee. Opzionale.# BEDROCK_AWS_SESSION_TOKEN=your_session_token
BEDROCK_AWS_PROFILEstringNome del profilo di configurazione condiviso AWS per Bedrock. Facoltativo se si utilizza la catena di credenziali AWS predefinita.# BEDROCK_AWS_PROFILE=your-profile-name
BEDROCK_AWS_BEARER_TOKENstringChiave API di Amazon Bedrock per l'autenticazione bearer, oppure user_provided per consentire agli utenti di inserire la propria chiave API Bedrock nell'interfaccia utente.# BEDROCK_AWS_BEARER_TOKEN=your_bedrock_api_key
BEDROCK_AWS_MODELSstringElenco separato da virgole degli ID dei modelli Bedrock. Se omesso, vengono inclusi tutti i modelli supportati noti.# BEDROCK_AWS_MODELS=anthropic.claude-fable-5,anthropic.claude-opus-4-8,anthropic.claude-opus-4-7,anthropic.claude-sonnet-4-6,meta.llama3-1-8b-instruct-v1:0

Nota: Puoi omettere le chiavi di accesso per utilizzare la catena di credenziali AWS predefinita (variabili d'ambiente, credenziali SSO, file di credenziali condivisi o il servizio di metadati dell'istanza EC2/ECS). Vedi AWS Bedrock Setup per maggiori dettagli.

I modelli Claude Fable/Mythos su Bedrock sono esclusivamente basati su inference-profile. Utilizza un ID profilo come us.anthropic.claude-fable-5 e abilita l'impostazione di condivisione dati Anthropic richiesta nella console Bedrock o tramite la Data Retention API prima di invocarli.

BingAI

Bing, utilizzato anche per Sydney, jailbreak e Bing Image Creator

KeyTypeDescriptionExample
BINGAI_TOKENstringToken di accesso Bing. Lasciare vuoto per disabilitare. Può essere impostato su "user_provided" per consentire agli utenti di fornire il proprio token dalla WebUI.BINGAI_TOKEN=user_provided
BINGAI_HOSTstringURL host di Bing. Lasciare commentato per utilizzare il server predefinito.# BINGAI_HOST=https://cn.bing.com

Nota: Si consiglia di lasciarlo come "user_provided" e di fornire il token dalla WebUI.

Google

Segui queste istruzioni per configurare il Google Endpoint

KeyTypeDescriptionExample
GOOGLE_KEYstringChiave API di Google. Impostare su "user_provided" per consentire agli utenti di fornire la propria chiave API dalla WebUI.GOOGLE_KEY=user_provided
GOOGLE_SERVICE_KEY_FILEstringPercorso del file della chiave JSON dell'account di servizio Google, URL da cui recuperarlo o JSON stringificato. Utilizzato per l'autenticazione Vertex AI (ad esempio, funzionalità OCR).GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json
GOOGLE_REVERSE_PROXYstringURL del reverse proxy di Google.GOOGLE_REVERSE_PROXY=
GOOGLE_AUTH_HEADERbooleanUtilizza l'intestazione Authorization invece di X-goog-api-key. Alcuni reverse proxy lo richiedono.# GOOGLE_AUTH_HEADER=true
GOOGLE_MODELSstringModelli Google Gemini API disponibili, separati da virgole.GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash,gemini-2.0-flash-lite
GOOGLE_MODELSstringModelli Vertex AI Google disponibili, separati da virgole.GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash-001,gemini-2.0-flash-lite-001
GOOGLE_TITLE_MODELstringDEPRECATED: Il modello utilizzato per la titolazione con Google.GOOGLE_TITLE_MODEL=gemini-pro
GOOGLE_LOCstringSpecifica la posizione di Google Cloud per l'elaborazione delle richieste APIGOOGLE_LOC=us-central1
GOOGLE_CLOUD_LOCATIONstringRegione alternativa per la generazione di immagini Gemini (ad esempio, global).# GOOGLE_CLOUD_LOCATION=global
GOOGLE_EXCLUDE_SAFETY_SETTINGSstringOmetti completamente le impostazioni di sicurezza incluse per impostazione predefinita, che utilizzeranno i valori predefiniti del providerGOOGLE_EXCLUDE_SAFETY_SETTINGS=true
GOOGLE_SAFETY_SEXUALLY_EXPLICITstringImpostazione di sicurezza per contenuti sessualmente espliciti. Le opzioni sono BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY e OFF.GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HATE_SPEECHstringImpostazione di sicurezza per i contenuti che incitano all'odio. Le opzioni sono BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY e OFF.GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HARASSMENTstringImpostazione di sicurezza per i contenuti molesti. Le opzioni sono BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY e OFF.GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_DANGEROUS_CONTENTstringImpostazione di sicurezza per contenuti pericolosi. Le opzioni sono BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY e OFF.GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_CIVIC_INTEGRITYstringImpostazione di sicurezza per i contenuti sull'integrità civica. Le opzioni sono BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY e OFF.# GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH

Personalizza i modelli disponibili, separati da virgole, senza spazi. Il primo sarà quello predefinito. Lascia vuoto o commentato per utilizzare le impostazioni interne.

  • GOOGLE_TITLE_MODEL è ora deprecato e verrà rimosso nelle versioni future. Utilizza invece l'impostazione dell'endpoint titleModel all'interno della configurazione librechat.yaml.

Nota: Per le variabili GOOGLE_SAFETY di Vertex AI, non hai accesso all'impostazione BLOCK_NONE per impostazione predefinita. Per utilizzare questa impostazione limitata di HarmBlockThreshold, dovrai:

Generazione di immagini con Gemini

Gemini Image Generation è uno strumento per gli Agent che supporta sia l'API Gemini che Vertex AI. Vedi: Gemini Image Generation

KeyTypeDescriptionExample
GEMINI_API_KEYstringChiave API Gemini dedicata per la generazione di immagini. Utilizza GOOGLE_KEY come fallback se non impostata.# GEMINI_API_KEY=your_gemini_api_key
GEMINI_IMAGE_MODELstringModello Gemini per la generazione di immagini. Predefinito: gemini-2.5-flash-image.# GEMINI_IMAGE_MODEL=gemini-2.5-flash-image

Nota: Quando non è configurata alcuna API key, lo strumento ricorre automaticamente a Vertex AI utilizzando l'account di servizio da GOOGLE_SERVICE_KEY_FILE. L'account di servizio deve disporre del ruolo Vertex AI User.

OpenAI

Vedi: Configurazione OpenAI

KeyTypeDescriptionExample
OPENAI_API_KEYstringLa tua chiave API OpenAI. Lascia vuoto per disabilitare questo endpoint o imposta su "user_provided" per consentire agli utenti di fornire la propria chiave API dalla WebUI.OPENAI_API_KEY=user_provided
OPENAI_MODELSstringPersonalizza i modelli disponibili, separati da virgole, senza spazi. Il primo sarà quello predefinito. Lascia commentato per utilizzare le impostazioni interne.# OPENAI_MODELS=gpt-5,gpt-5-codex,gpt-5-mini,gpt-5-nano,o3-pro,o3,o4-mini,gpt-4.1,gpt-4.1-mini,gpt-4.1-nano,o3-mini,o1-pro,o1,gpt-4o,gpt-4o-mini
DEBUG_OPENAIbooleanAbilita la modalità debug per l'endpoint OpenAI.DEBUG_OPENAI=false
OPENAI_SUMMARIZEbooleanAbilita la riassunzione dei messaggi. Falso per impostazione predefinita# OPENAI_SUMMARIZE=true
OPENAI_SUMMARY_MODELstringIl modello utilizzato per la sintesi di OpenAI.# OPENAI_SUMMARY_MODEL=gpt-3.5-turbo
OPENAI_FORCE_PROMPTbooleanForza la chiamata dell'API con un payload di prompt invece di un payload di messaggi.# OPENAI_FORCE_PROMPT=false
OPENAI_ORGANIZATIONstringSpecifica quale organizzazione utilizzare per ogni richiesta API a OpenAI. Opzionale# OPENAI_ORGANIZATION=
OPENAI_REVERSE_PROXYstringDEPRECATED: Impostazioni del reverse proxy per OpenAI.# OPENAI_REVERSE_PROXY=
OPENAI_TITLE_MODELstringDEPRECATO: Il modello utilizzato per la titolazione OpenAI.# OPENAI_TITLE_MODEL=gpt-3.5-turbo
  • OPENAI_TITLE_MODEL è ora deprecato e verrà rimosso nelle versioni future. Utilizza invece l'impostazione dell'endpoint titleModel nel file di configurazione librechat.yaml.
  • OPENAI_REVERSE_PROXY è ora deprecato e verrà rimosso nelle versioni future. Utilizza invece un custom endpoint.

Assistants

Vedi: Assistants Setup

KeyTypeDescriptionExample
ASSISTANTS_API_KEYstringLa tua chiave API OpenAI per l'Assistants API. Lascia vuoto per disabilitare questo endpoint o imposta su "user_provided" per consentire agli utenti di fornire la propria chiave API dalla WebUI.ASSISTANTS_API_KEY=user_provided
ASSISTANTS_MODELSstringPersonalizza i modelli disponibili, separati da virgole, senza spazi. Il primo sarà quello predefinito. Lascia vuoto per utilizzare le impostazioni interne.# ASSISTANTS_MODELS=gpt-3.5-turbo-0125,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-16k,gpt-3.5-turbo,gpt-4,gpt-4-0314,gpt-4-32k-0314,gpt-4-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-1106,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview
ASSISTANTS_BASE_URLstringURL di base alternativo per l'Assistants API.# ASSISTANTS_BASE_URL=

Nota: Puoi personalizzare i modelli disponibili, separati da virgole, senza spazi. Il primo sarà quello predefinito. Lascialo vuoto o commentato per utilizzare le impostazioni interne.

Tavily

Ottieni la tua chiave API qui: https://tavily.com/#api

Variabili d'ambiente:

KeyTypeDescriptionExample
TAVILY_API_KEYstringChiave API Tavily.TAVILY_API_KEY=

Traversaal

Descrizione: Strumento di ricerca potenziato da LLM.

Ottieni la API key qui: https://api.traversaal.ai/dashboard

Variabili d'ambiente:

KeyTypeDescriptionExample
TRAVERSAAL_API_KEYstringChiave API di Traversaal.TRAVERSAAL_API_KEY=

WolframAlpha

Vedi le istruzioni dettagliate qui: Wolfram Alpha

Variabili d'ambiente:

KeyTypeDescriptionExample
WOLFRAM_APP_IDstringApp ID di Wolfram AlphaWOLFRAM_APP_ID=

Zapier

Descrizione: - È necessario un account Zapier. Ottieni la tua chiave API da qui: Zapier

  • Crea azioni consentite - Segui il passaggio 3 in questa guida introduttiva di Zapier

Nota: Zapier è noto per essere complicato con alcune azioni. La stesura di bozze di email è probabilmente il suo utilizzo migliore.

Variabili d'ambiente:

KeyTypeDescriptionExample
ZAPIER_NLA_API_KEYstringChiave API Zapier NLA.ZAPIER_NLA_API_KEY=

OpenWeather

Vedi le istruzioni dettagliate qui: OpenWeather

KeyTypeDescriptionExample
OPENWEATHER_API_KEYstringChiave API di OpenWeather per la One Call API 3.0.OPENWEATHER_API_KEY=

Code Interpreter

L'API Code Interpreter fornisce un ambiente sicuro per l'esecuzione di codice e la gestione dei file. Vedi: Code Interpreter API

KeyTypeDescriptionExample
LIBRECHAT_CODE_API_KEYstringChiave API per il servizio Code Interpreter. Quando impostata globalmente, fornisce l'accesso a tutti gli utenti.LIBRECHAT_CODE_API_KEY=your-api-key
LIBRECHAT_CODE_BASEURLstringURL di base personalizzato per l'API di Code Interpreter (solo piani Enterprise).# LIBRECHAT_CODE_BASEURL=https://your-custom-domain.com

Artifacts

Gli Artifacts sfruttano la libreria CodeSandbox per il rendering sicuro di codice HTML/JS. Per impostazione predefinita, viene utilizzato il CDN pubblico ospitato da CodeSandbox.

Fortunatamente, per coloro che hanno requisiti di rete interna, è possibile ospitare autonomamente il bundler che compila il codice frontend e specificare un URL del bundler personalizzato per Sandpack.

Per ulteriori informazioni, incluse le immagini container predefinite per l'hosting autonomo con le richieste di metriche rimosse, consultare: https://github.com/LibreChat-AI/codesandbox-client

KeyTypeDescriptionExample
SANDPACK_BUNDLER_URLstringSpecifica un URL di bundler personalizzato per Sandpack, utilizzato da ArtifactsSANDPACK_BUNDLER_URL=your-bundler-url

Ricerca (Meilisearch)

Abilita la ricerca nei messaggi e nelle conversazioni:

KeyTypeDescriptionExample
SEARCHbooleanAbilita la ricerca nei messaggi e nelle conversazioni.SEARCH=true

Nota: Se non stai utilizzando Docker, è richiesta l'installazione di Meilisearch, disponibile gratuitamente in modalità self-hosted o tramite un piano remoto a pagamento.

Per disabilitare l'analisi telemetrica anonimizzata per MeiliSearch per una privacy assoluta, impostare su true:

KeyTypeDescriptionExample
MEILI_NO_ANALYTICSbooleanDisabilita l'analisi telemetrica anonimizzata per MeiliSearch.MEILI_NO_ANALYTICS=true

Affinché il server API possa connettersi al server di ricerca. Sostituisci '0.0.0.0' con 'meilisearch' se utilizzi MeiliSearch con docker-compose.

KeyTypeDescriptionExample
MEILI_HOSTstringLa connessione del server API al server di ricerca.MEILI_HOST=http://0.0.0.0:7700

Questa master key deve essere di almeno 16 byte, composta da caratteri UTF-8 validi. MeiliSearch genererà un errore e si rifiuterà di avviarsi se non viene fornita alcuna master key o se è inferiore a 16 byte. MeiliSearch suggerirà una master key sicura autogenerata. Questa è una chiave sicura già pronta per docker-compose, puoi sostituirla con la tua.

KeyTypeDescriptionExample
MEILI_MASTER_KEYstringLa chiave master per MeiliSearch.MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt

Per impedire a LibreChat di tentare una sincronizzazione dell'indicizzazione del database con Meilisearch, è possibile impostare la seguente variabile d'ambiente su true. Questo è utile in un cluster di nodi, o in una configurazione multi-nodo, dove solo un'istanza dovrebbe essere responsabile dell'indicizzazione.

KeyTypeDescriptionExample
MEILI_NO_SYNCstringInterruttore per disabilitare la sincronizzazione dell'indice MeilisearchMEILI_NO_SYNC=true

RAG API

Configura la Retrieval-Augmented Generation per l'indicizzazione dei documenti e le risposte basate sul contesto. Vedi: RAG API Configuration

KeyTypeDescriptionExample
RAG_API_URLstringURL del servizio API RAG.RAG_API_URL=http://host.docker.internal:8000
RAG_OPENAI_API_KEYstringChiave API OpenAI per gli embedding RAG. Sovrascrive OPENAI_API_KEY per RAG.# RAG_OPENAI_API_KEY=sk-your-openai-api-key
RAG_OPENAI_BASEURLstringURL di base OpenAI personalizzato per gli embedding RAG.# RAG_OPENAI_BASEURL=
RAG_USE_FULL_CONTEXTbooleanRecupera l'intero contesto del file invece dei primi 4 risultati. Predefinito: false.# RAG_USE_FULL_CONTEXT=true
EMBEDDINGS_PROVIDERstringProvider di Embeddings: openai, azure, huggingface, huggingfacetei, o ollama. Predefinito: openai.# EMBEDDINGS_PROVIDER=openai
EMBEDDINGS_MODELstringModello di embeddings da utilizzare. Il valore predefinito dipende dal provider.# EMBEDDINGS_MODEL=text-embedding-3-small

Nota: Quando si utilizza la configurazione Docker predefinita, il file .env è condiviso tra LibreChat e la RAG API. Per le opzioni di configurazione complete, consultare la documentazione della RAG API.

Speech to Text & Text to Speech

Configura i servizi di Speech-to-Text (STT) e Text-to-Speech (TTS). Vedi: Impostazioni vocali

KeyTypeDescriptionExample
STT_API_KEYstringChiave API per il servizio Speech-to-Text (ad es. OpenAI Whisper).# STT_API_KEY=
TTS_API_KEYstringChiave API per il servizio Text-to-Speech (ad es. OpenAI TTS).# TTS_API_KEY=

Nota: STT e TTS sono configurati principalmente attraverso la sezione speech: in librechat.yaml. Queste variabili d'ambiente sono referenziate in tale configurazione. Consulta Speech Settings per le opzioni di configurazione YAML complete.

Configura la funzionalità dei link di conversazione condivisi.

KeyTypeDescriptionExample
ALLOW_SHARED_LINKSbooleanAbilita o disabilita i link di conversazione condivisi. Predefinito: true.ALLOW_SHARED_LINKS=true
ALLOW_SHARED_LINKS_PUBLICbooleanConsenti ai link condivisi di essere accessibili pubblicamente senza autenticazione. Predefinito: false.ALLOW_SHARED_LINKS_PUBLIC=false
SHARED_LINKS_SNAPSHOT_FILESbooleanFile di snapshot referenziati da una chat condivisa in modo che i visualizzatori possano visualizzarli in anteprima o scaricarli tramite il link condiviso. Sovrascrive interface.sharedLinks.snapshotFiles quando impostato.SHARED_LINKS_SNAPSHOT_FILES=true

ALLOW_SHARED_LINKS è l'interruttore a livello di funzionalità. I permessi dei ruoli ora controllano chi può creare link condivisi, condividerli con utenti autenticati o renderli visibili a tutti; vedi interface.sharedLinks. ALLOW_SHARED_LINKS_PUBLIC controlla solo se i link condivisi pubblicamente possono essere visualizzati senza autenticazione. SHARED_LINKS_SNAPSHOT_FILES è un override globale per le istantanee dei file nei link condivisi e può disabilitare la visualizzazione delle istantanee per ogni link quando impostato su false.

Sistema Utente

Questa sezione contiene la configurazione per:

Moderazione

Il sistema di moderazione automatizzata utilizza un meccanismo di punteggio per tracciare le violazioni degli utenti. Man mano che gli utenti compiono azioni come accessi, registrazioni o invio di messaggi eccessivi, accumulano punteggi di violazione. Al raggiungimento di una soglia prestabilita, l'utente e il suo IP vengono temporaneamente bannati. Questo sistema garantisce la sicurezza della piattaforma monitorando e penalizzando le attività rapide o sospette.

vedi: Automated Moderation

Impostazioni di moderazione di base

KeyTypeDescriptionExample
OPENAI_MODERATIONbooleanSe abilitare o meno la moderazione di OpenAI sugli endpoint **OpenAI** e **Plugins**.OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringLa tua chiave API OpenAI.OPENAI_MODERATION_API_KEY=
OPENAI_MODERATION_REVERSE_PROXYstringNota: commentato per impostazione predefinita, non funziona con tutti i reverse proxy.# OPENAI_MODERATION_REVERSE_PROXY=

Impostazioni di ban

KeyTypeDescriptionExample
BAN_VIOLATIONSbooleanSe abilitare o meno il ban degli utenti per violazioni (saranno comunque registrati).BAN_VIOLATIONS=true
BAN_DURATIONintegerPer quanto tempo l'utente e l'IP associato vengono bannati (in millisecondi).BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALintegerL'utente verrà bannato ogni volta che il suo punteggio raggiunge/supera la soglia dell'intervallo.BAN_INTERVAL=20

Limitazione della frequenza di accesso e registrazione

Previene attacchi brute force e registrazioni spam limitando i tentativi di accesso e le registrazioni di nuovi account.

KeyTypeDescriptionExample
LOGIN_MAXintegerIl numero massimo di accessi consentiti per IP per LOGIN_WINDOW.LOGIN_MAX=7
LOGIN_WINDOWintegerIn minuti, determina l'intervallo di tempo per LOGIN_MAX accessi.LOGIN_WINDOW=5
REGISTER_MAXintegerIl numero massimo di registrazioni consentite per IP per REGISTER_WINDOW.REGISTER_MAX=5
REGISTER_WINDOWintegerIn minuti, determina la finestra temporale per REGISTER_MAX registrazioni.REGISTER_WINDOW=60

Punteggio per ogni violazione

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREintegerPunteggio per le violazioni di accesso.LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREintegerPunteggio per le violazioni di registrazione.REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREintegerPunteCONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREintegerPunteggio per le violazioni dei messaggi.MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREintegerPunteggio per violazioni non relative al browser.NON_BROWSER_VIOLATION_SCORE=20
ILLEGAL_MODEL_REQ_SCOREintegerPunteggio per richieste di modelli non consentite.ILLEGAL_MODEL_REQ_SCORE=5
IMPORT_VIOLATION_SCOREintegerPunteggio per le violazioni nell'importazione delle conversazioni.IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREintegerPunteggio per le violazioni di fork della conversazione.FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREintegerPunteggio per le violazioni da testo a voce.TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREintegerPunteggio per le violazioni da sintesi vocale (speech-to-text).STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREintegerPunteggio per le violazioni del caricamento file.FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREintegerPunteggio per le violazioni del ripristino password.RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREintegerPunteggio per le violazioni della verifica email.VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREintegerPunteggio per le violazioni delle chiamate a strumenti.TOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREintegerPunteggio per le violazioni di accesso alla conversazione.CONVO_ACCESS_VIOLATION_SCORE=0

Nota: L'accesso non tramite browser e le richieste di modelli illegali sono quasi sempre nefaste, poiché indicano che una terza parte sta tentando di accedere al server tramite uno script automatizzato.

Limitazione della frequenza dei messaggi (per utente e IP)

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESbooleanSe limitare la quantità di messaggi che un utente può inviare per richiesta.LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXintegerIl numero massimo di messaggi che un utente può inviare per richiesta.CONCURRENT_MESSAGE_MAX=2

Limitatori

Nota: È possibile utilizzare entrambi i limitatori, ma l'impostazione predefinita è limitare solo per IP.

Limitatore IP:
KeyTypeDescriptionExample
LIMIT_MESSAGE_IPbooleanSe limitare la quantità di messaggi che un IP può inviare per `MESSAGE_IP_WINDOW`.LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXintegerIl numero massimo di messaggi che un IP può inviare per `MESSAGE_IP_WINDOW`.MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWintegerIn minuti, determina la finestra temporale per `MESSAGE_IP_MAX` messaggi.MESSAGE_IP_WINDOW=1
Limitatore Utente:
KeyTypeDescriptionExample
LIMIT_MESSAGE_USERbooleanSe limitare il numero di messaggi che un utente può inviare per `MESSAGE_USER_WINDOW`.LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXintegerIl numero massimo di messaggi che un utente può inviare per `MESSAGE_USER_WINDOW`.MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWintegerIn minuti, determina la finestra temporale per `MESSAGE_USER_MAX` messaggi.MESSAGE_USER_WINDOW=1

Limitazione della frequenza di importazione delle conversazioni

Limita la frequenza con cui gli utenti possono importare conversazioni per prevenire abusi.

Nota: È possibile utilizzare entrambi i limitatori, ma l'impostazione predefinita è limitare solo per IP.

Limitatore IP:
KeyTypeDescriptionExample
LIMIT_IMPORT_IPbooleanSe limitare il numero di importazioni di conversazioni che un IP può eseguire per `IMPORT_IP_WINDOW`.LIMIT_IMPORT_IP=true
IMPORT_IP_MAXintegerIl numero massimo di importazioni di conversazioni che un IP può eseguire per `IMPORT_IP_WINDOW`.IMPORT_IP_MAX=100
IMPORT_IP_WINDOWintegerIn minuti, determina la finestra temporale per le importazioni di `IMPORT_IP_MAX`.IMPORT_IP_WINDOW=1
Limitatore Utente:
KeyTypeDescriptionExample
LIMIT_IMPORT_USERbooleanSe limitare la quantità di importazioni di conversazioni che un utente può eseguire per `IMPORT_USER_WINDOW`.LIMIT_IMPORT_USER=false
IMPORT_USER_MAXintegerIl numero massimo di importazioni di conversazioni che un utente può eseguire per `IMPORT_USER_WINDOW`.IMPORT_USER_MAX=50
IMPORT_USER_WINDOWintegerIn minuti, determina la finestra temporale per le importazioni `IMPORT_USER_MAX`.IMPORT_USER_WINDOW=1

Limitazione della frequenza di forking delle conversazioni

Limita la frequenza con cui gli utenti possono effettuare il fork delle conversazioni per prevenire abusi.

Nota: È possibile utilizzare entrambi i limitatori, ma l'impostazione predefinita è limitare solo per IP.

Limitatore IP:
KeyTypeDescriptionExample
LIMIT_FORK_IPbooleanSe limitare il numero di fork di conversazione che un IP può creare per `FORK_IP_WINDOW`.LIMIT_FORK_IP=true
FORK_IP_MAXintegerIl numero massimo di fork di conversazione che un IP può creare per `FORK_IP_WINDOW`.FORK_IP_MAX=30
FORK_IP_WINDOWintegerIn minuti, determina la finestra temporale per i fork di `FORK_IP_MAX`.FORK_IP_WINDOW=1
Limitatore Utente:
KeyTypeDescriptionExample
LIMIT_FORK_USERbooleanIndica se limitare il numero di fork di conversazione che un utente può creare per `FORK_USER_WINDOW`.LIMIT_FORK_USER=false
FORK_USER_MAXintegerIl numero massimo di diramazioni di conversazione che un utente può creare per `FORK_USER_WINDOW`.FORK_USER_MAX=7
FORK_USER_WINDOWintegerIn minuti, determina la finestra temporale per i fork di `FORK_USER_MAX`.FORK_USER_WINDOW=1

Limitazione della frequenza di caricamento dei file

Limita la frequenza con cui gli utenti possono caricare file per prevenire abusi.

Nota: queste possono essere configurate anche tramite librechat.yaml nella sezione rateLimits.fileUploads.

Limitatore IP:
KeyTypeDescriptionExample
FILE_UPLOAD_IP_MAXintegerNumero massimo di caricamenti di file per IP per `FILE_UPLOAD_IP_WINDOW`. Predefinito: 100.# FILE_UPLOAD_IP_MAX=100
FILE_UPLOAD_IP_WINDOWintegerIn minuti, determina l'intervallo di tempo per `FILE_UPLOAD_IP_MAX`. Predefinito: 15.# FILE_UPLOAD_IP_WINDOW=15
Limitatore Utente:
KeyTypeDescriptionExample
FILE_UPLOAD_USER_MAXintegerNumero massimo di caricamenti file per utente per `FILE_UPLOAD_USER_WINDOW`. Predefinito: 50.# FILE_UPLOAD_USER_MAX=50
FILE_UPLOAD_USER_WINDOWintegerIn minuti, determina l'intervallo di tempo per `FILE_UPLOAD_USER_MAX`. Predefinito: 15.# FILE_UPLOAD_USER_WINDOW=15

Limite di velocità (rate limiting) per TTS (Text-to-Speech)

Limita la frequenza con cui gli utenti possono utilizzare la sintesi vocale (Text-to-Speech) per prevenire abusi.

Nota: Queste possono anche essere configurate tramite librechat.yaml nella sezione rateLimits.tts.

Limitatore IP:
KeyTypeDescriptionExample
TTS_IP_MAXintegerNumero massimo di richieste TTS per IP per `TTS_IP_WINDOW`. Predefinito: 100.# TTS_IP_MAX=100
TTS_IP_WINDOWintegerIn minuti, determina l'intervallo di tempo per `TTS_IP_MAX`. Predefinito: 1.# TTS_IP_WINDOW=1
Limitatore Utente:
KeyTypeDescriptionExample
TTS_USER_MAXintegerNumero massimo di richieste TTS per utente per `TTS_USER_WINDOW`. Predefinito: 50.# TTS_USER_MAX=50
TTS_USER_WINDOWintegerIn minuti, determina l'intervallo di tempo per `TTS_USER_MAX`. Predefinito: 1.# TTS_USER_WINDOW=1

Limitazione della frequenza STT (Speech-to-Text)

Limita la frequenza con cui gli utenti possono utilizzare Speech-to-Text per prevenire abusi.

Nota: queste possono anche essere configurate tramite librechat.yaml nella sezione rateLimits.stt.

Limitatore IP:
KeyTypeDescriptionExample
STT_IP_MAXintegerNumero massimo di richieste STT per IP per `STT_IP_WINDOW`. Predefinito: 100.# STT_IP_MAX=100
STT_IP_WINDOWintegerIn minuti, determina la finestra temporale per `STT_IP_MAX`. Predefinito: 1.# STT_IP_WINDOW=1
Limitatore Utente:
KeyTypeDescriptionExample
STT_USER_MAXintegerNumero massimo di richieste STT per utente per `STT_USER_WINDOW`. Predefinito: 50.# STT_USER_MAX=50
STT_USER_WINDOWintegerIn minuti, determina l'intervallo di tempo per `STT_USER_MAX`. Predefinito: 1.# STT_USER_WINDOW=1

Saldo

La seguente funzionalità consente la gestione dei saldi utente all'interno degli endpoint del sistema. Hai l'opzione di aggiungere saldi manualmente, oppure puoi scegliere di implementare un sistema che accumuli automaticamente i saldi per gli utenti. Se nella configurazione viene definito uno specifico saldo iniziale, i token verranno accreditati automaticamente sul saldo dell'utente al momento della registrazione.

vedi: Utilizzo dei Token

KeyTypeDescriptionExample
CHECK_BALANCEbooleanAbilita i saldi dei crediti token per gli endpoint OpenAI/Plugins.CHECK_BALANCE=false
START_BALANCEintegerSe il valore è impostato, i token verranno accreditati sul saldo dell'utente dopo la registrazione.START_BALANCE=20000

Gestione dei saldi

  • Esegui npm run add-balance per aggiungere manualmente i saldi.
    • Puoi anche specificare l'email e l'importo dei crediti token da aggiungere, ad esempio: npm run add-balance [email protected] 1000
  • Esegui npm run set-balance per impostare manualmente i saldi, in modo simile a add-balance.
  • Esegui npm run list-balances per elencare il saldo di ogni utente.

Nota: 1000 crediti = $0.001 (1 mill USD)

Registrazione e Login

vedi: Authentication System

Schermata di registrazione utenteSchermata di registrazione utente

Chiarimento sul file di configurazione

Tutte le impostazioni di autenticazione in questa sezione devono essere configurate nel file .env, non nel file librechat.yaml o docker-compose.override.yml. Il file docker-compose.override.yml viene utilizzato solo per montare volumi e impostare variabili d'ambiente per Docker, mentre il file librechat.yaml viene utilizzato per gli endpoint personalizzati e altre impostazioni dell'applicazione.

  • Impostazioni generali:
KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanAbilita o disabilita SOLO l'accesso tramite email.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONbooleanAbilita o disabilita la registrazione via email per i nuovi utenti.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanConsenti agli utenti di connettersi a LibreChat tramite vari social network.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanAbilita o disabilita la registrazione di nuovi utenti tramite vari social network.ALLOW_SOCIAL_REGISTRATION=false
ALLOW_PASSWORD_RESETbooleanAbilita o disabilita la possibilità per gli utenti di reimpostare la propria password autonomamenteALLOW_PASSWORD_RESET=false
ALLOW_ACCOUNT_DELETIONbooleanAbilita o disabilita la possibilità per gli utenti di eliminare autonomamente il proprio account. Abilitato per impostazione predefinita se omesso o commentato.ALLOW_ACCOUNT_DELETION=true
ALLOW_UNVERIFIED_EMAIL_LOGINbooleanImpostare su true per consentire agli utenti di accedere senza verificare il proprio indirizzo email. Se impostato su false, agli utenti verrà richiesto di verificare la propria email prima di poter accedere.ALLOW_UNVERIFIED_EMAIL_LOGIN=true
MIN_PASSWORD_LENGTHnumberLunghezza minima della password per l'autenticazione utente. Quando si utilizza l'autenticazione LDAP, potrebbe essere necessario impostarla su 1 per ignorare la convalida della password locale, poiché i server LDAP gestiscono le proprie policy relative alle password.MIN_PASSWORD_LENGTH=8

Suggerimento rapido: Anche con la registrazione disabilitata, aggiungi gli utenti direttamente al database utilizzando npm run create-user.

Suggerimento rapido: Con la registrazione disabilitata, puoi eliminare un utente con npm run delete-user [email protected].

  • Impostazioni della sessione e del token di aggiornamento:
KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)Tempo di scadenza della sessione.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (milliseconds)Tempo di scadenza del token di aggiornamento.REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7
SESSION_COOKIE_SECUREbooleanSovrascrive l'attributo Secure per i cookie di sessione/autenticazione. Lasciare non impostato per utilizzare l'euristica predefinita di NODE_ENV/DOMAIN_SERVER.# SESSION_COOKIE_SECURE=false

Dovresti utilizzare nuovi valori sicuri. Gli esempi forniti sono chiavi a 32 byte (64 caratteri in esadecimale). Utilizza questo replit per generarne rapidamente alcuni: JWT Keys

KeyTypeDescriptionExample
JWT_SECRETstring (hex)Chiave segreta JWT.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (hex)Chiave segreta per il refresh dei JWT.JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418

Social Logins

Per maggiori dettagli: OAuth2-OIDC

Autenticazione Apple

Per maggiori informazioni: Apple Authentication

KeyTypeDescriptionExample
APPLE_CLIENT_IDstringIl tuo Apple Services ID (es. com.yourdomain.librechat.services).APPLE_CLIENT_ID=com.yourdomain.librechat.services
APPLE_TEAM_IDstringIl tuo Apple Developer Team ID.APPLE_TEAM_ID=YOUR_TEAM_ID
APPLE_KEY_IDstringIl tuo Apple Key ID dalla chiave scaricata.APPLE_KEY_ID=YOUR_KEY_ID
APPLE_PRIVATE_KEY_PATHstringPercorso assoluto del file .p8 scaricato.APPLE_PRIVATE_KEY_PATH=/path/to/AuthKey.p8
APPLE_CALLBACK_URLstringL'URL di callback per l'autenticazione Apple.APPLE_CALLBACK_URL=/oauth/apple/callback

Autenticazione Discord

Per maggiori informazioni: Discord

KeyTypeDescriptionExample
DISCORD_CLIENT_IDstringIl tuo client ID di Discord.DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRETstringIl tuo client secret di Discord.DISCORD_CLIENT_SECRET=
DISCORD_CALLBACK_URLstringL'URL di callback per l'autenticazione Discord.DISCORD_CALLBACK_URL=/oauth/discord/callback

Autenticazione Facebook

Per maggiori informazioni: Autenticazione Facebook

KeyTypeDescriptionExample
FACEBOOK_CLIENT_IDstringIl tuo client ID di Facebook.FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRETstringIl tuo client secret di Facebook.FACEBOOK_CLIENT_SECRET=
FACEBOOK_CALLBACK_URLstringL'URL di callback per l'autenticazione Facebook.FACEBOOK_CALLBACK_URL=/oauth/facebook/callback

Autenticazione GitHub

Per maggiori informazioni: GitHub Authentication

KeyTypeDescriptionExample
GITHUB_CLIENT_IDstringIl tuo client ID di GitHub.GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRETstringIl tuo client secret di GitHub.GITHUB_CLIENT_SECRET=
GITHUB_CALLBACK_URLstringL'URL di callback per l'autenticazione GitHub.GITHUB_CALLBACK_URL=/oauth/github/callback
GITHUB_ENTERPRISE_BASE_URLstringOpzionale: L'URL di base per la tua istanza GitHub Enterprise.GITHUB_ENTERPRISE_BASE_URL=
GITHUB_ENTERPRISE_USER_AGENTstringOpzionale: Lo user agent per le richieste a GitHub Enterprise.GITHUB_ENTERPRISE_USER_AGENT=

Autenticazione Google

Per maggiori informazioni: Google Authentication

KeyTypeDescriptionExample
GOOGLE_CLIENT_IDstringIl tuo Google client ID.GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRETstringIl tuo client secret di Google.GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URLstringL'URL di callback per l'autenticazione Google.GOOGLE_CALLBACK_URL=/oauth/google/callback

OpenID Connect

Per ulteriori informazioni:

KeyTypeDescriptionExample
OPENID_CLIENT_IDstringIl tuo client ID OpenID.OPENID_CLIENT_ID=
OPENID_CLIENT_SECRETstringIl tuo client secret OpenID.OPENID_CLIENT_SECRET=
OPENID_ISSUERstringL'URL dell'issuer OpenID.OPENID_ISSUER=
OPENID_SESSION_SECRETstringIl segreto per l'archiviazione della sessione OpenID.OPENID_SESSION_SECRET=
OPENID_SCOPEstringLo scope OpenID.OPENID_SCOPE="openid profile email"
OPENID_CALLBACK_URLstringL'URL di callback per l'autenticazione OpenID.OPENID_CALLBACK_URL=/oauth/openid/callback
OPENID_AUDIENCEstringValore audience per la validazione JWT OpenID e le richieste di autorizzazione. Sono accettati valori separati da virgola per la validazione JWT; le richieste di autorizzazione utilizzano il primo valore non vuoto. Obbligatorio per Auth0 quando si utilizza OPENID_REUSE_TOKENS=true per ricevere token di accesso JWT invece di token opachi.OPENID_AUDIENCE=https://api.librechat.com
OPENID_REQUIRED_ROLEstringIl ruolo o i ruoli richiesti per la convalida. Supporta un singolo ruolo o più ruoli separati da virgola. Quando vengono specificati più ruoli, l'utente deve possedere UNO QUALSIASI dei ruoli specificati (logica OR).OPENID_REQUIRED_ROLE=admin or OPENID_REQUIRED_ROLE=role1,role2,admin
OPENID_REQUIRED_ROLE_TOKEN_KINDstringIl tipo di token per la convalida del ruolo richiesto.OPENID_REQUIRED_ROLE_TOKEN_KIND=
OPENID_REQUIRED_ROLE_PARAMETER_PATHstringIl percorso del parametro per la convalida del ruolo richiesto.OPENID_REQUIRED_ROLE_PARAMETER_PATH=
OPENID_ADMIN_ROLEstringIl ruolo che l'utente deve avere per essere un amministratore in LibreChat.OPENID_ADMIN_ROLE=
OPENID_ADMIN_ROLE_TOKEN_KINDstringLa fonte delle informazioni per la verifica del ruolo di amministratore. I valori possibili sono: access, id o userinfo.OPENID_ADMIN_ROLE_TOKEN_KIND=
OPENID_ADMIN_ROLE_PARAMETER_PATHstringIl percorso del parametro per la convalida del ruolo richiesto.OPENID_ADMIN_ROLE_PARAMETER_PATH=
OPENID_ROLE_SYNC_ENABLEDbooleanAbilita la sincronizzazione dei ruoli OpenID generici per i ruoli non amministrativi. ADMIN non può essere assegnato tramite sincronizzazione dei ruoli; utilizza OPENID_ADMIN_ROLE per l'elevazione a amministratore.OPENID_ROLE_SYNC_ENABLED=false
OPENID_ROLE_SYNC_API_ENABLEDbooleanAbilita gli helper di sincronizzazione dei ruoli basati su API. Richiede OPENID_ROLE_SYNC_ENABLED=true.OPENID_ROLE_SYNC_API_ENABLED=false
OPENID_ROLE_SYNC_SOURCEstringSorgente del token per il claim del ruolo. Deve essere uno tra: access, id, userinfo. Predefinito: id.OPENID_ROLE_SYNC_SOURCE=id
OPENID_ROLE_SYNC_CLAIMstringPercorso del claim che contiene i ruoli o i gruppi del provider. Obbligatorio quando la sincronizzazione dei ruoli è abilitata.OPENID_ROLE_SYNC_CLAIM=
OPENID_ROLE_SYNC_ROLE_PRIORITYstringRuoli LibreChat separati da virgola ordinati dal più importante al meno importante. Viene assegnato il primo ruolo corrispondente.OPENID_ROLE_SYNC_ROLE_PRIORITY=Support,User
OPENID_ROLE_SYNC_FALLBACK_ROLEstringRuolo LibreChat assegnato quando nessun ruolo prioritario corrisponde. Il fallback è autorevole quando configurato.OPENID_ROLE_SYNC_FALLBACK_ROLE=USER
OPENID_BUTTON_LABELstringL'etichetta per il pulsante di accesso OpenID.OPENID_BUTTON_LABEL=
OPENID_IMAGE_URLstringL'URL dell'immagine del pulsante di accesso OpenID.OPENID_IMAGE_URL=
OPENID_USE_END_SESSION_ENDPOINTstringSe utilizzare l'Issuer End Session Endpoint come reindirizzamento di logoutOPENID_USE_END_SESSION_ENDPOINT=TRUE
OPENID_MAX_LOGOUT_URL_LENGTHnumberLunghezza massima dell'URL di logout prima di utilizzare logout_hint invece di id_token_hint. Predefinito: 2000.# OPENID_MAX_LOGOUT_URL_LENGTH=2000
OPENID_AUTO_REDIRECTbooleanSe reindirizzare automaticamente al provider OpenID.OPENID_AUTO_REDIRECT=true
OPENID_USE_PKCEbooleanUtilizza PKCE (Proof Key for Code Exchange) per l'autenticazione OpenID. Per i client pubblici privi di un client secret, lascia vuoto OPENID_CLIENT_SECRET e imposta questo valore su true.# OPENID_USE_PKCE=true
OPENID_POST_LOGOUT_REDIRECT_URIstringURI di reindirizzamento dopo il logout OpenID. Il valore predefinito è ${DOMAIN_CLIENT}/login.# OPENID_POST_LOGOUT_REDIRECT_URI=
OPENID_CLOCK_TOLERANCEnumberTolleranza dell'orologio in secondi per la convalida dei token. Predefinito: 300.# OPENID_CLOCK_TOLERANCE=300
OPENID_GENERATE_NONCEbooleanForza il client OpenID a generare un parametro nonce. Richiesto da alcuni identity provider come AWS Cognito (specialmente con la federazione) e Authentik.OPENID_GENERATE_NONCE=true
DEBUG_OPENID_REQUESTSbooleanAbilita la registrazione dettagliata degli header delle richieste OpenID. Quando disabilitata (impostazione predefinita), vengono registrati solo gli URL delle richieste a livello di debug. Quando abilitata, vengono registrati anche gli header delle richieste (con i dati sensibili mascherati) per un debug più approfondito dei problemi di autenticazione.DEBUG_OPENID_REQUESTS=false
OPENID_USERNAME_CLAIMstringLa proprietà user info dal provider OpenID da memorizzare come nome utente dell'utente.OPENID_USERNAME_CLAIM=
OPENID_NAME_CLAIMstringLa proprietà user info dal provider OpenID da memorizzare come nome visualizzato dell'utente.OPENID_NAME_CLAIM=
OPENID_EMAIL_CLAIMstringIl claim delle informazioni utente da utilizzare come email/identificativo per la corrispondenza utente (ad es. "upn" per Entra ID). Quando non impostato, il valore predefinito è: email → preferred_username → upn.OPENID_EMAIL_CLAIM=

Sincronizzazione dei ruoli OpenID

OPENID_ROLE_SYNC_CLAIM è richiesto quando la sincronizzazione dei ruoli è abilitata. OPENID_ROLE_SYNC_API_ENABLED=true richiede anche OPENID_ROLE_SYNC_ENABLED=true. La sincronizzazione generica dei ruoli non può assegnare ADMIN; utilizza OPENID_ADMIN_ROLE per l'elevazione a amministratore.

Riutilizzo del token OpenID Connect

LibreChat supporta il riutilizzo dei token di accesso e di aggiornamento (refresh token) emessi dal tuo provider OpenID Connect (come Azure Entra ID o Auth0) per gestire lo stato di autenticazione dell'utente. Quando questa funzionalità è attiva, il refresh token passato all'utente come cookie viene emesso dal tuo provider OpenID anziché da LibreChat.

KeyTypeDescriptionExample
OPENID_REUSE_TOKENSbooleanAbilita il riutilizzo dei token del provider OpenID per la gestione della sessione.OPENID_REUSE_TOKENS=false
OPENID_SCOPEstringElenco di scope OpenID separati da spazi. Deve includere offline_access per il riutilizzo del token.OPENID_SCOPE=api://librechat/.default openid profile email offline_access
OPENID_AUDIENCEstringValore audience per le richieste di autorizzazione e validazione JWT OpenID. Sono accettati valori separati da virgola per la validazione JWT; le richieste di autorizzazione utilizzano il primo valore non vuoto. Obbligatorio per Auth0 quando OPENID_REUSE_TOKENS=true. Vedi la nota nella sezione principale OpenID qui sopra.OPENID_AUDIENCE=https://api.librechat.com
OPENID_REUSE_MAX_SESSION_AGE_MSnumberEtà massima in cui un token di sessione OpenID riutilizzato viene servito prima che LibreChat forzi un aggiornamento dell'IdP. Predefinito: 900000 ms / 15 minuti.OPENID_REUSE_MAX_SESSION_AGE_MS=900000
OPENID_JWKS_URL_CACHE_ENABLEDbooleanAbilita la memorizzazione nella cache dei risultati della verifica della chiave di firma.OPENID_JWKS_URL_CACHE_ENABLED=true
OPENID_JWKS_URL_CACHE_TIMEnumberDurata della cache in millisecondi (predefinito: 600000 ms / 10 minuti).OPENID_JWKS_URL_CACHE_TIME=600000
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIREDbooleanAbilita il flusso on-behalf-of per le informazioni utente.OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true
OPENID_ON_BEHALF_FLOW_USERINFO_SCOPEstringAmbito per le informazioni utente nel flusso on-behalf-of.OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE=user.read
OPENID_USE_END_SESSION_ENDPOINTbooleanAbilita l'uso dell'endpoint end session per il logout.OPENID_USE_END_SESSION_ENDPOINT=true
OPENID_MAX_LOGOUT_URL_LENGTHnumberLunghezza massima dell'URL di logout in caratteri prima di passare a logout_hint. Utile per prevenire errori di URI troppo lungo quando id_token_hint supera i limiti del server. Predefinito: 2000.OPENID_MAX_LOGOUT_URL_LENGTH=2000

OPENID_REUSE_MAX_SESSION_AGE_MS accetta espressioni aritmetiche come SESSION_EXPIRY. Aumentalo verso la durata del token di accesso dell'IdP quando il tuo provider revoca il precedente token di accesso al momento del refresh, in modo che i consumer a valle, come i server MCP, possano terminare l'utilizzo di un bearer token ancora valido.

Nota

Per i passaggi di configurazione dettagliati e i prerequisiti, consulta Re-use OpenID Tokens for Login Session.

Integrazione Microsoft Graph API / Entra ID

Quando si utilizza Azure Entra ID (precedentemente Azure AD) come provider OpenID, è possibile abilitare funzionalità aggiuntive di Microsoft Graph API per migliorare le capacità di ricerca di persone e gruppi all'interno del sistema di permessi e condivisione.

KeyTypeDescriptionExample
USE_ENTRA_ID_FOR_PEOPLE_SEARCHbooleanAbilita l'integrazione della ricerca persone di Entra ID nel sistema di permessi/condivisione. Quando abilitato, il selettore di persone cercherà sia nel database locale che in Entra ID.USE_ENTRA_ID_FOR_PEOPLE_SEARCH=false
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERSbooleanQuando abilitato, i proprietari del gruppo Entra ID saranno considerati come membri del gruppo.ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=false
OPENID_GRAPH_SCOPESstringAmbiti Microsoft Graph API necessari per la ricerca di persone/gruppi. Gli ambiti predefiniti forniscono l'accesso ai profili utente e alle appartenenze ai gruppi.OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All

Prerequisiti importanti

  • È necessario che Azure Entra ID sia configurato come provider OpenID - il riutilizzo dei token OpenID DEVE essere abilitato (OPENID_REUSE_TOKENS=true) - questa funzionalità non funzionerà senza di esso - La registrazione dell'app Azure deve disporre delle autorizzazioni appropriate per Microsoft Graph API - Per la funzionalità di ricerca dei gruppi, potrebbe essere richiesto il consenso dell'amministratore per determinati ambiti (scope) di Graph API
Integrazione SharePoint

LibreChat supporta l'integrazione diretta con SharePoint Online e OneDrive for Business, consentendo agli utenti di selezionare e allegare file dalle proprie raccolte SharePoint direttamente all'interno delle conversazioni. Questa funzionalità enterprise sfrutta l'autenticazione Azure Entra ID esistente.

KeyTypeDescriptionExample
ENABLE_SHAREPOINT_FILEPICKERbooleanAbilita il selettore di file SharePoint nei pannelli della chat e degli agenti. Quando abilitato, aggiunge l'opzione "Da SharePoint" nel menu degli allegati.ENABLE_SHAREPOINT_FILEPICKER=true
SHAREPOINT_BASE_URLstringURL di base del tenant SharePoint. Obbligatorio quando l'integrazione SharePoint è abilitata.SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com
SHAREPOINT_PICKER_SHAREPOINT_SCOPEstringAmbito OAuth specifico di SharePoint per il selettore file. Utilizzato per l'autenticazione durante l'apertura dell'interfaccia del selettore file di SharePoint.SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read
SHAREPOINT_PICKER_GRAPH_SCOPEstringAmbito Microsoft Graph API per il download di file. Utilizzato per scaricare file da SharePoint dopo la selezione.SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All

Requisiti critici

Tutti i seguenti elementi devono essere configurati affinché l'integrazione con SharePoint funzioni:

  • L'autenticazione Azure Entra ID deve essere completamente configurata
  • OPENID_REUSE_TOKENS=true è obbligatorio (utilizza il flusso di token on-behalf-of)
  • OPENID_SCOPE deve includere lo scope dell'API della tua app LibreChat, ad esempio api://<client-id>/access_as_user
  • OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true è richiesto quando si utilizza quello scope app-audience con Azure Entra ID
  • La tua registrazione dell'app Azure deve disporre delle autorizzazioni SharePoint e Graph API
  • La tua registrazione dell'app Azure deve esporre lo scope dell'API di LibreChat utilizzato in OPENID_SCOPE
  • Tutte e quattro le variabili d'ambiente SharePoint devono essere impostate
  • HTTPS è richiesto negli ambienti di produzione

Funzionalità delle caratteristiche

Quando abilitato, gli utenti possono:

  • Accedere ai file dalle raccolte documenti di SharePoint e da OneDrive for Business
  • Selezionare più file contemporaneamente (massimo predefinito: 10 file)
  • Visualizzare l'avanzamento del download in tempo reale
    • I file vengono scaricati e allegati alla conversazione come normali caricamenti

Per istruzioni dettagliate sulla configurazione di SharePoint, consultare: SharePoint Integration Guide

SAML

Per ulteriori informazioni:

Esclusione reciproca di OpenID e SAML

Se OpenID è abilitato, l'autenticazione SAML verrà disabilitata automaticamente.

È possibile attivare solo un metodo di autenticazione alla volta.

KeyTypeDescriptionExample
SAML_ENTRY_POINTstringL'URL del punto di ingresso del provider di identità (IdP) SAML.SAML_ENTRY_POINT=
SAML_ISSUERstringL'entity ID del service provider (SP) SAML.SAML_ISSUER=
SAML_CERTstringIl certificato di firma SAML, fornito come percorso del file o stringa PEM su una riga.SAML_CERT=
SAML_CALLBACK_URLstringL'URL di callback per l'autenticazione SAML.SAML_CALLBACK_URL=/oauth/saml/callback
SAML_SESSION_SECRETstringIl segreto per l'archiviazione della sessione SAML.SAML_SESSION_SECRET=
SAML_EMAIL_CLAIMstring<Optional>: L'attributo nell'asserzione SAML contenente l'email dell'utente. (predefinito: email)SAML_EMAIL_CLAIM=
SAML_USERNAME_CLAIMstring<Optional>: L'attributo nell'asserzione SAML contenente il nome utente. (predefinito: username)SAML_USERNAME_CLAIM=
SAML_GIVEN_NAME_CLAIMstring<Optional>: L'attributo nell'asserzione SAML contenente il nome di battesimo. (predefinito: given_name)SAML_GIVEN_NAME_CLAIM=
SAML_FAMILY_NAME_CLAIMstring<Optional>: L'attributo nell'asserzione SAML contenente il cognome. (predefinito: family_name)SAML_FAMILY_NAME_CLAIM=
SAML_PICTURE_CLAIMstring<Optional>: L'attributo nell'asserzione SAML contenente l'URL dell'immagine del profilo. (predefinito: picture)SAML_PICTURE_CLAIM=
SAML_NAME_CLAIMstring<Optional>: L'attributo nell'asserzione SAML contenente il nome completo.SAML_NAME_CLAIM=
SAML_BUTTON_LABELstring<Optional>: L'etichetta per il pulsante di accesso SAML.SAML_BUTTON_LABEL=
SAML_IMAGE_URLstring<Optional>: L'URL dell'immagine del pulsante di accesso SAML.SAML_IMAGE_URL=
SAML_USE_AUTHN_RESPONSE_SIGNEDboolean<Optional>: Se "true", firma l'intera SAML Response. Altrimenti, viene firmata solo l'Assertion (impostazione predefinita).SAML_USE_AUTHN_RESPONSE_SIGNED=

Autenticazione LDAP/AD

Per maggiori informazioni: Autenticazione LDAP/AD

KeyTypeDescriptionExample
LDAP_URLstringURL del server LDAP.LDAP_URL=ldap://localhost:389
LDAP_BIND_DNstringDN di associazioneLDAP_BIND_DN=cn=root
LDAP_BIND_CREDENTIALSstringPassword per bindDNLDAP_BIND_CREDENTIALS=password
LDAP_USER_SEARCH_BASEstringBase di ricerca utenti LDAPLDAP_USER_SEARCH_BASE=o=users,o=example.com
LDAP_SEARCH_FILTERstringFiltro di ricerca LDAPLDAP_SEARCH_FILTER=mail={{username}}
LDAP_CA_CERT_PATHstringPercorso del certificato CA.LDAP_CA_CERT_PATH=/path/to/root_ca_cert.crt
LDAP_TLS_REJECT_UNAUTHORIZEDstringVerifica TLS LDAPLDAP_TLS_REJECT_UNAUTHORIZED=true
LDAP_STARTTLSstringAbilita LDAP StartTLS per aggiornare la connessione a TLS. Impostare su true per abilitare questa funzionalità.LDAP_STARTTLS=true
LDAP_LOGIN_USES_USERNAMEbooleanUsa il nome utente invece dell'email per l'accesso LDAP.# LDAP_LOGIN_USES_USERNAME=true
LDAP_IDstringAttributo LDAP per l'ID utente univoco. Predefinito: uid o sAMAccountName, mail.# LDAP_ID=uid
LDAP_USERNAMEstringAttributo LDAP per il nome utente. Predefinito: givenName o mail.# LDAP_USERNAME=givenName
LDAP_EMAILstringAttributo LDAP per l'email. Predefinito: mail.# LDAP_EMAIL=userPrincipalName
LDAP_FULL_NAMEstringAttributo/i LDAP per il nome completo. Possono essere separati da virgola. Predefinito: givenName + surname.# LDAP_FULL_NAME=givenName,surname

Reimpostazione password

L'email viene utilizzata per la verifica dell'account e il ripristino della password. LibreChat supporta sia l'API di Mailgun che i servizi SMTP tradizionali. Vedi: Configurazione email

Nota importante: È necessario configurare Mailgun (consigliato per i server che bloccano SMTP) o SMTP affinché l'email funzioni.

Attenzione: La mancata impostazione di valori validi per Mailgun o SMTP comporterà l'utilizzo da parte di LibreChat della procedura di reimpostazione della password non protetta!

Mailgun è particolarmente utile per le distribuzioni su server che bloccano le porte SMTP. Quando sia MAILGUN_API_KEY che MAILGUN_DOMAIN sono impostati, LibreChat utilizzerà Mailgun invece di SMTP.

KeyTypeDescriptionExample
MAILGUN_API_KEYstringLa tua chiave API Mailgun (richiesta per Mailgun).MAILGUN_API_KEY=
MAILGUN_DOMAINstringIl tuo dominio Mailgun (richiesto per Mailgun).MAILGUN_DOMAIN=mg.yourdomain.com
MAILGUN_HOSTstringHost API Mailgun personalizzato (opzionale). Utilizzare https://api.eu.mailgun.net per la regione UE.MAILGUN_HOST=https://api.mailgun.net
EMAIL_FROMstringIndirizzo email del mittente. Obbligatorio.[email protected]
EMAIL_FROM_NAMEstringNome del mittente (predefinito su APP_TITLE se non impostato).EMAIL_FROM_NAME=

Configurazione SMTP

Se Mailgun non è configurato, LibreChat utilizzerà le impostazioni SMTP come fallback.

Attenzione: Se si utilizza EMAIL_SERVICE, NON impostare i parametri di connessione estesi: HOST, PORT, ENCRYPTION, ENCRYPTION_HOSTNAME, ALLOW_SELFSIGNED.

Vedi: nodemailer well-known-services

KeyTypeDescriptionExample
EMAIL_SERVICEstringServizio email (es. Gmail, Outlook).EMAIL_SERVICE=
EMAIL_HOSTstringHost del server di posta.EMAIL_HOST=
EMAIL_PORTnumberPorta del server di posta.EMAIL_PORT=25
EMAIL_ENCRYPTIONstringMetodo di crittografia (starttls, tls, ecc.).EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAMEstringHostname per la crittografia.EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNEDbooleanConsenti certificati autofirmati.EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAMEstringNome utente per l'autenticazione.EMAIL_USERNAME=
EMAIL_PASSWORDstringPassword per l'autenticazione.EMAIL_PASSWORD=
EMAIL_FROM_NAMEstringNome del mittenteEMAIL_FROM_NAME=
EMAIL_FROMstringIndirizzo email del mittente. Obbligatorio.[email protected]

Firebase CDN

Vedi: Configurazione Firebase CDN

Importante

  • Se stai utilizzando Firebase come strategia di archiviazione dei file, imposta fileStrategy o fileStrategies su firebase nel tuo file di configurazione librechat.yaml. Per ulteriori informazioni sulla configurazione del file librechat.yaml, consulta la Guida alla configurazione YAML: Custom Endpoints & Configuration
KeyTypeDescriptionExample
FIREBASE_API_KEYstringLa chiave API per il tuo progetto Firebase.FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAINstringIl dominio Firebase Auth per il tuo progetto.FIREBASE_AUTH_DOMAIN=
FIREBASE_PROJECT_IDstringL'ID del tuo progetto Firebase.FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKETstringIl bucket Firebase Storage per il tuo progetto.FIREBASE_STORAGE_BUCKET=
FIREBASE_MESSAGING_SENDER_IDstringL'ID mittente di Firebase Cloud Messaging.FIREBASE_MESSAGING_SENDER_ID=
FIREBASE_APP_IDstringL'App ID di Firebase per il tuo progetto.FIREBASE_APP_ID=

Amazon S3 e CloudFront

Vedi: Configurazione Amazon S3 e CloudFront con S3

Importante

Se stai utilizzando S3 come strategia di archiviazione dei file, imposta fileStrategy o fileStrategies nel tuo file di configurazione librechat.yaml. Se utilizzi CloudFront, S3 è comunque richiesto come origine di archiviazione.

KeyTypeDescriptionExample
AWS_ACCESS_KEY_IDstringIl tuo ID chiave di accesso utente IAM. Facoltativo se si utilizza IRSA.AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEYstringLa tua secret access key dell'utente IAM. Facoltativa se si utilizza IRSA.AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_REGIONstringLa regione AWS in cui si trova il tuo bucket S3.AWS_REGION=us-east-1
AWS_BUCKET_NAMEstringIl nome del bucket S3 per l'archiviazione dei file.AWS_BUCKET_NAME=your_bucket_name
AWS_ENDPOINT_URLstringURL endpoint AWS personalizzato (opzionale). Per servizi compatibili con S3. Includere lo schema URL, come https://a7g8.da.idrivee2-32.com.# AWS_ENDPOINT_URL=https://your_endpoint_url
AWS_FORCE_PATH_STYLEbooleanImpostare su true per i provider compatibili con S3 che richiedono URL in stile percorso (ad esempio MinIO, Hetzner, Backblaze B2). Non necessario per AWS S3. Predefinito: false.# AWS_FORCE_PATH_STYLE=false
CLOUDFRONT_KEY_PAIR_IDstringID della coppia di chiavi pubblica CloudFront. Obbligatorio per i cookie firmati e gli URL di download CloudFront firmati.# CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC
CLOUDFRONT_PRIVATE_KEYstringChiave privata PEM di CloudFront. Richiesta per i cookie firmati e gli URL di download firmati di CloudFront. Mantenere le nuove righe PEM durante l'inserimento di questo segreto.# CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"

Nota: Per le distribuzioni Kubernetes (ad esempio, su EKS), è possibile utilizzare IRSA (IAM Roles for Service Accounts) invece di fornire credenziali esplicite. In tal caso, sono richiesti solo AWS_REGION e AWS_BUCKET_NAME.

Azure Blob Storage CDN

Vedi: Configurazione CDN di Azure Blob Storage

Importante

Se stai utilizzando Azure Blob Storage come strategia di archiviazione dei file, imposta fileStrategy o fileStrategies su azure_blob nel tuo file di configurazione librechat.yaml.

KeyTypeDescriptionExample
AZURE_STORAGE_CONNECTION_STRINGstringStringa di connessione di Azure Blob Storage. Utilizzare questa OPPURE AZURE_STORAGE_ACCOUNT_NAME per Managed Identity.AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
AZURE_STORAGE_ACCOUNT_NAMEstringNome dell'account Azure Storage. Utilizzare per l'autenticazione tramite Managed Identity (non impostare la stringa di connessione).# AZURE_STORAGE_ACCOUNT_NAME=yourAccountName
AZURE_STORAGE_PUBLIC_ACCESSbooleanAbilita l'accesso pubblico per i blob. Predefinito: false.AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAMEstringNome del container per l'archiviazione dei file. Predefinito: files.AZURE_CONTAINER_NAME=files

Nota: Utilizzare AZURE_STORAGE_CONNECTION_STRING (Opzione A) oppure AZURE_STORAGE_ACCOUNT_NAME con Managed Identity (Opzione B), non entrambi.

UI

Pulsante Aiuto e FAQ

KeyTypeDescriptionExample
HELP_AND_FAQ_URLstringURL di Aiuto e FAQ. Se vuoto o commentato, il pulsante è abilitato. Per disabilitare il pulsante Aiuto e FAQ, impostare su "/".HELP_AND_FAQ_URL=https://librechat.ai

Comportamento:

Imposta le intestazioni Cache-Control per i file statici. Queste configurazioni si attivano solo quando NODE_ENV è impostato su production.

L'impostazione corretta degli header di cache è fondamentale per ottimizzare le prestazioni e l'efficienza della tua applicazione web. Controllando per quanto tempo i browser e le CDN memorizzano le copie dei tuoi file statici, puoi ridurre significativamente il carico del server, diminuire i tempi di caricamento delle pagine e migliorare l'esperienza utente complessiva.

  • Decommenta STATIC_CACHE_MAX_AGE per modificare il max-age per i file statici. Per impostazione predefinita, questo è impostato su 4 settimane.
  • Decommenta STATIC_CACHE_S_MAX_AGE per modificare il valore s-maxage per i file statici. Per impostazione predefinita, questo è impostato su 1 settimana.
    • Questo è per la shared cache, che viene utilizzata da CDN e proxy.
KeyTypeDescriptionExample
APP_TITLEstringTitolo dell'app.APP_TITLE=LibreChat
CUSTOM_FOOTERstringPiè di pagina personalizzato.# CUSTOM_FOOTER="My custom footer"
TEMP_CHAT_RETENTION_HOURSnumber**Deprecato:** Utilizzare `interface.temporaryChatRetention` in librechat.yaml. Ore per conservare le chat temporanee. Predefinito: 720 (30 giorni).# TEMP_CHAT_RETENTION_HOURS=168

Comportamento:

  • Decommenta CUSTOM_FOOTER per aggiungere un piè di pagina personalizzato.
  • Decommenta e lascia CUSTOM_FOOTER vuoto per rimuovere il piè di pagina.
  • Ora puoi aggiungere uno o più link nel valore CUSTOM_FOOTER utilizzando il seguente formato: [Anchor text](URL). Ogni link deve essere delimitato da una barra verticale (|).

Esempio Markdown: CUSTOM_FOOTER=[Link 1](http://example1.com) | [Link 2](http://example2.com)

Cappellino di compleanno

KeyTypeDescriptionExample
SHOW_BIRTHDAY_ICONbooleanMostra l'icona del cappellino di compleanno.# SHOW_BIRTHDAY_ICON=true

Comportamento:

  • L'icona del cappellino di compleanno apparirà automaticamente l'11 febbraio (il compleanno di LibreChat).
  • Imposta SHOW_BIRTHDAY_ICON su false per disabilitare il cappellino di compleanno.
  • Imposta SHOW_BIRTHDAY_ICON su true per abilitare il cappellino di compleanno tutto il tempo.

Analisi

Google Tag Manager

LibreChat supporta Google Tag Manager per l'analisi dei dati. Avrai bisogno di un ID Google Tag Manager per abilitarlo in LibreChat. Segui questa guida per generare un ID Google Tag Manager e configurare Google Analytics. Successivamente, imposta la variabile d'ambiente ANALYTICS_GTM_ID con il tuo ID Google Tag Manager.

Nota: Se ANALYTICS_GTM_ID non è impostato, Google Tag Manager non sarà abilitato. Se è impostato in modo errato, vedrai richieste fallite a gtm.js

KeyTypeDescriptionExample
ANALYTICS_GTM_IDstringID di Google Tag Manager.ANALYTICS_GTM_ID=

Importazione conversazione

Configura i limiti per le importazioni di file nelle conversazioni per prevenire problemi di memoria.

KeyTypeDescriptionExample
CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTESnumberDimensione massima del file in byte per le importazioni di conversazioni. Predefinito: 0 (nessun limite applicato). Esempio: 262144000 (250 MiB).# CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES=262144000

Anteprime dei file in linea

Controlla quanto possono essere grandi i file generati prima che LibreChat ignori l'estrazione dell'anteprima in linea e li lasci disponibili solo per il download.

KeyTypeDescriptionExample
FILE_PREVIEW_MAX_EXTRACT_BYTESnumberDimensione massima del file sorgente in byte per le anteprime inline degli artefatti di esecuzione del codice. Predefinito: 2097152 (2 MiB). Le anteprime HTML renderizzate sono comunque limitate separatamente, quindi i file molto ricchi potrebbero non essere visualizzati in anteprima anche se al di sotto di questo valore.# FILE_PREVIEW_MAX_EXTRACT_BYTES=2097152

MCP (Model Context Protocol)

Configura le impostazioni del Model Context Protocol per una gestione avanzata del server e il supporto OAuth.

Configurazione del Server MCP

KeyTypeDescriptionExample
MCP_OAUTH_ON_AUTH_ERRORbooleanTratta le risposte 401/403 come requisito OAuth quando non viene trovato alcun metadato oauth.MCP_OAUTH_ON_AUTH_ERROR=true
MCP_OAUTH_DETECTION_TIMEOUTnumberTimeout per le richieste di rilevamento OAuth in millisecondi.MCP_OAUTH_DETECTION_TIMEOUT=5000
MCP_OAUTH_HANDLING_TIMEOUTnumberQuanto tempo LibreChat attende che un utente completi un flusso MCP OAuth prima del timeout. Predefinito: 600000 ms (10 minuti).MCP_OAUTH_HANDLING_TIMEOUT=600000
MCP_OAUTH_FLOW_TTLnumberPer quanto tempo viene conservato lo stato del flusso OAuth MCP. LibreChat lo imposta al di sopra di MCP_OAUTH_HANDLING_TIMEOUT in modo che i callback vicini alla scadenza possano comunque essere completati. Predefinito: 900000 ms (15 minuti).MCP_OAUTH_FLOW_TTL=900000
MCP_CONNECTION_CHECK_TTLnumberControlli dello stato della connessione alla cache per questo numero di millisecondi per evitare costose verifiche.MCP_CONNECTION_CHECK_TTL=30000
MCP_TOOLS_LIST_MAX_PAGESnumberNumero massimo di strumenti/pagine di elenco da richiedere quando un server MCP impagina il proprio elenco di strumenti (paginazione tramite cursore). Limita il ciclo di paginazione in modo che un server malfunzionante non possa bloccare l'individuazione degli strumenti. Limitato a un minimo di 1. Predefinito: 50.MCP_TOOLS_LIST_MAX_PAGES=50
MCP_SKIP_CODE_CHALLENGE_CHECKbooleanSalta la convalida del metodo di verifica del codice (code challenge). Se impostato su true, forza il code challenge S256 anche se non pubblicizzato in .well-known/openid-configurationMCP_SKIP_CODE_CHALLENGE_CHECK=false
MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTESnumberByte massimi consentiti in una risposta HTTP MCP streamable non-GET prima di rifiutarla. Impostare a 0 per disabilitare. Predefinito: 16777216 (16 MiB).# MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES=16777216
MCP_STREAMABLE_HTTP_MAX_LINE_BYTESnumberByte massimi consentiti in una singola riga SSE per risposte HTTP MCP streamabili non-GET. Impostare a 0 per disabilitare. Predefinito: 5242880 (5 MiB).# MCP_STREAMABLE_HTTP_MAX_LINE_BYTES=5242880

Altro

Redis

Redis fornisce significativi miglioramenti delle prestazioni e abilita funzionalità di scalabilità orizzontale per LibreChat.

Nota: Il supporto a Redis è sperimentale e potresti riscontrare alcuni problemi durante il suo utilizzo.

Importante: Se utilizzi Redis, dovresti svuotare la cache dopo aver modificato qualsiasi impostazione di LibreChat.

Per una configurazione dettagliata ed esempi, consulta: Redis Configuration Guide

KeyTypeDescriptionExample
USE_REDISbooleanAbilita Redis per la memorizzazione nella cache e delle sessioni. Quando è impostato su true, deve essere fornito REDIS_URI.USE_REDIS=true
USE_REDIS_STREAMSbooleanAbilita Redis per i flussi LLM riprendibili. Se non impostato, utilizza il valore predefinito di USE_REDIS. Imposta su false per utilizzare l'archiviazione in memoria per i flussi.# USE_REDIS_STREAMS=true
REDIS_URIstringURI di connessione Redis. Per istanza singola: `redis://host:port`. Per cluster: URI separati da virgola.REDIS_URI=redis://127.0.0.1:6379
USE_REDIS_CLUSTERbooleanAbilita la modalità cluster di Redis quando si utilizza un singolo URI# USE_REDIS_CLUSTER="true"
REDIS_CLUSTER_SAFE_DELETEbooleanElimina le chiavi della cache Redis singolarmente per evitare errori CROSSSLOT sui servizi Redis gestiti a endpoint singolo che suddividono le chiavi internamente.# REDIS_CLUSTER_SAFE_DELETE=true
REDIS_USERNAMEstringNome utente Redis per l'autenticazione. Sovrascrive il nome utente nell'URI se entrambi sono forniti.# REDIS_USERNAME=your_redis_username
REDIS_PASSWORDstringPassword Redis per l'autenticazione. Sovrascrive la password nell'URI se entrambe sono fornite.# REDIS_PASSWORD=your_redis_password
REDIS_CAstringPercorso del certificato CA per la verifica TLS quando si utilizza il protocollo rediss://.# REDIS_CA=/path/to/ca-cert.pem
REDIS_KEY_PREFIXstringPrefisso statico per tutte le chiavi Redis per prevenire la contaminazione tra diverse distribuzioni.# REDIS_KEY_PREFIX=librechat-prod-v2
REDIS_KEY_PREFIX_VARstringNome della variabile d'ambiente contenente il prefisso dinamico (es. K_REVISION per Cloud Run). Non può essere utilizzato con REDIS_KEY_PREFIX.# REDIS_KEY_PREFIX_VAR=K_REVISION
REDIS_MAX_LISTENERSnumberNumero massimo di event listener per client Redis. Previene perdite di memoria. Predefinito: 40.# REDIS_MAX_LISTENERS=40
REDIS_PING_INTERVALnumberIntervallo di ping in secondi per mantenere le connessioni. Predefinito: 0 (disabilitato). Impostare solo se si verificano timeout.# REDIS_PING_INTERVAL=300
FORCED_IN_MEMORY_CACHE_NAMESPACESstringChiavi di cache separate da virgole per forzare l'archiviazione in memoria anche quando Redis è abilitato.# FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES
REDIS_USE_ALTERNATIVE_DNS_LOOKUPbooleanAbilita dnsLookup alternativo per connessioni TLS con AWS Elasticache. Richiesto per cluster Elasticache con TLS.# REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true

Note:

  • Quando USE_REDIS=true, è necessario fornire REDIS_URI o l'applicazione genererà un errore.
  • Per la modalità Redis Cluster, fornisci più URI: redis://node1:7001,redis://node2:7002,redis://node3:7003 (la modalità cluster viene rilevata automaticamente).
  • Per i servizi Redis gestiti a endpoint singolo che suddividono le chiavi internamente (sharding), mantieni USE_REDIS_CLUSTER=false e imposta REDIS_CLUSTER_SAFE_DELETE=true se la pulizia della cache fallisce con errori CROSSSLOT.
  • Usa il protocollo rediss:// per le connessioni TLS e imposta REDIS_CA se la tua CA non è pubblicamente attendibile.
  • REDIS_KEY_PREFIX_VAR e REDIS_KEY_PREFIX si escludono a vicenda.
  • AWS Elasticache con TLS: Elasticache potrebbe richiedere l'utilizzo di un dnsLookup alternativo per le connessioni TLS. Imposta REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true se utilizzi Elasticache con TLS. Consulta la documentazione di ioredis per ulteriori dettagli.

Elezione del leader

Configura l'elezione del leader distribuito per distribuzioni multi-istanza con Redis. L'elezione del leader garantisce che solo un'istanza esegua determinate operazioni, come le attività pianificate.

KeyTypeDescriptionExample
LEADER_LEASE_DURATIONnumberDurata in secondi per cui il lease del leader è valido prima della scadenza. Predefinito: 25.LEADER_LEASE_DURATION=25
LEADER_RENEW_INTERVALnumberIntervallo in secondi in cui il leader rinnova il proprio lease. Predefinito: 10.LEADER_RENEW_INTERVAL=10
LEADER_RENEW_ATTEMPTSnumberNumero massimo di tentativi di riprova quando il rinnovo del lease fallisce. Predefinito: 3.LEADER_RENEW_ATTEMPTS=3
LEADER_RENEW_RETRY_DELAYnumberRitardo in secondi tra i tentativi di riprova durante il rinnovo del lease. Predefinito: 0.5.LEADER_RENEW_RETRY_DELAY=0.5

Note:

  • L'elezione del leader richiede che Redis sia abilitato (USE_REDIS=true).
  • Queste impostazioni sono rilevanti solo per distribuzioni multi-istanza.
  • Il leader lease deve essere rinnovato prima della scadenza per mantenere la leadership.
  • Se il rinnovo del lease fallisce dopo il numero massimo di tentativi, l'istanza rinuncerà alla leadership.

Com’è questa guida?

In questa pagina

Configurazione del ServerPortaTrust proxyConfigurazione delle credenzialiGestione dei file staticiControllo della cache dell'HTML dell'indiceDatabase MongoDBConfigurazione del pool di connessione MongoDBConfigurazione dello Schema MongoDBDomini di applicazioneImpedire ai motori di ricerca pubblici l'indicizzazioneLoggingFile di logVariabili d'ambienteAutorizzazioneTracciamento OpenTelemetryReal User Monitoring (Browser)Percorso di configurazione - librechat.yamlCompetenze di DeploymentConvalida della configurazioneGestione delle Eccezioni Non GestiteEndpointConfigurazione generaleEndpoint noti - librechat.yamlRicerca WebAnthropicAnthropic tramite Vertex AIAWS BedrockBingAIGoogleGenerazione di immagini con GeminiOpenAIAssistantsTavilyTraversaalWolframAlphaZapierOpenWeatherCode InterpreterArtifactsRicerca (Meilisearch)RAG APISpeech to Text & Text to SpeechLink condivisiSistema UtenteModerazioneImpostazioni di moderazione di baseImpostazioni di banLimitazione della frequenza di accesso e registrazionePunteggio per ogni violazioneLimitazione della frequenza dei messaggi (per utente e IP)LimitatoriLimitatore IP:Limitatore Utente:Limitazione della frequenza di importazione delle conversazioniLimitatore IP:Limitatore Utente:Limitazione della frequenza di forking delle conversazioniLimitatore IP:Limitatore Utente:Limitazione della frequenza di caricamento dei fileLimitatore IP:Limitatore Utente:Limite di velocità (rate limiting) per TTS (Text-to-Speech)Limitatore IP:Limitatore Utente:Limitazione della frequenza STT (Speech-to-Text)Limitatore IP:Limitatore Utente:SaldoGestione dei saldiRegistrazione e LoginSocial LoginsAutenticazione AppleAutenticazione DiscordAutenticazione FacebookAutenticazione GitHubAutenticazione GoogleOpenID ConnectRiutilizzo del token OpenID ConnectIntegrazione Microsoft Graph API / Entra IDIntegrazione SharePointSAMLAutenticazione LDAP/ADReimpostazione passwordConfigurazione di Mailgun (Consigliata)Configurazione SMTPFirebase CDNAmazon S3 e CloudFrontAzure Blob Storage CDNUIPulsante Aiuto e FAQTitolo dell'App e Piè di paginaCappellino di compleannoAnalisiGoogle Tag ManagerImportazione conversazioneAnteprime dei file in lineaMCP (Model Context Protocol)Configurazione del Server MCPAltroRedisElezione del leader