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

Struttura della configurazione

Nota: I campi non specificati esplicitamente come obbligatori sono facoltativi.

version

  • obbligatorio
KeyTypeDescriptionExample
versionStringSpecifica la versione del file di configurazione.version: 1.3.13

cache

KeyTypeDescriptionExample
cacheBooleanAttiva o disattiva la cache. Impostare su `true` per abilitare la cache (impostazione predefinita).cache: true

skillSync

KeyTypeDescriptionExample
skillSyncObjectConfigura il mirroring delle Skill esterne. Nella v1.3.13, è supportato GitHub Skill Sync.

vedi: Struttura dell'oggetto Skill Sync

messageFilter

KeyTypeDescriptionExample
messageFilterObjectConfigura i filtri dei messaggi lato server. Nella v1.3.13, `messageFilter.pii` può rifiutare il testo inviato che presenta il formato di credenziali prima delle chiamate al modello e della persistenza.

vedi: Struttura dell'oggetto filtro messaggi

fileStrategy

  • Opzioni: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
KeyTypeDescriptionExample
fileStrategyStringDetermina dove salvare i file caricati/generati dagli utenti. Se omesso, il valore predefinito è `"local"`.fileStrategy: "firebase"
  • Note:
    • "cloudfront" archivia i file in S3 e restituisce URL CloudFront per una distribuzione multimediale stabile, cookie firmati e download firmati.
    • "firebase" serve i file tramite le posizioni edge di Firebase Storage e Firebase Hosting.
    • S3 serve i file tramite presigned URLs (token firmati temporanei) che scadono. Una volta scaduti, qualsiasi immagine o avatar che fa riferimento a quell'URL apparirà interrotto nell'interfaccia utente. Questo rende S3 inadatto come strategia primaria per le risorse visive. Vedi la discussione correlata per i dettagli.
    • Per ottenere le migliori prestazioni con immagini e avatar, utilizza "cloudfront" o "firebase", oppure configura fileStrategies per instradare avatar e image verso una strategia basata su CDN.
    • Si prega di fare riferimento alla documentazione su File Storage & CDN per i dettagli sulla configurazione.

fileStrategies

Consente un controllo granulare sulle strategie di archiviazione dei file per diversi tipi di file.

  • Strategie disponibili: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
KeyTypeDescriptionExample
fileStrategiesObjectConfigura diverse strategie di archiviazione per diversi tipi di file. Più flessibile della singola opzione fileStrategy.

Sotto-chiavi:

KeyTypeDescriptionExample
defaultStringStrategia di archiviazione di fallback quando non è definito un tipo specifico. L'impostazione predefinita è "local".
avatarStringStrategia di archiviazione per le immagini degli avatar di utenti e agenti. Si consiglia di utilizzare una strategia basata su CDN (`"cloudfront"` o `"firebase"`) per prestazioni ottimali.
imageStringStrategia di archiviazione per le immagini caricate nelle chat. Si consiglia di utilizzare una strategia basata su CDN (`"cloudfront"` o `"firebase"`) per prestazioni ottimali.
documentStringStrategia di archiviazione per il caricamento di documenti (PDF, file di testo, ecc.).
skillsStringStrategia di archiviazione per i file inclusi negli Skills.
  • Note:
    • Questa impostazione ha la precedenza sulla singola opzione fileStrategy
    • Se un tipo di file specifico non è configurato, viene utilizzato il fallback su default, poi su fileStrategy e infine su "local".
    • Le immagini e gli avatar necessitano di URL persistenti e stabili per essere visualizzati correttamente nell'interfaccia utente. Gli URL pre-firmati S3 scadono (limite AWS: 7 giorni per utenti IAM, ore per credenziali basate su STS/ruoli), causando la rottura delle immagini nel selettore del modello e nell'interfaccia di chat. Consulta la discussione correlata per il contesto completo. Utilizza "cloudfront" o "firebase" per avatar e image per evitare questo problema.
    • S3 e Azure Blob Storage sono adatti per l'archiviazione di document, dove gli URL di download pre-firmati a breve termine sono appropriati.
    • Si prega di fare riferimento alla documentazione su File Storage & CDN per i dettagli di configurazione di ciascun provider di archiviazione.

Esempi:

# Use a single strategy for all file types
fileStrategies:
  default: 's3'
# Route images and avatars to CDN, keep documents in object storage
fileStrategies:
  avatar: 'cloudfront' # CDN delivery for avatars
  image: 'cloudfront' # CDN delivery for generated/uploaded images
  document: 's3' # Object storage for documents
# Only configure specific types, others use default
fileStrategies:
  default: 'local'
  avatar: 'firebase' # Only avatars use Firebase CDN, everything else is local

cloudfront

Chiave:

KeyTypeDescriptionExample
cloudfrontObjectConfigura la distribuzione CloudFront per i file archiviati in S3.

Sottochiavi:

KeyTypeDescriptionExample
domainStringDominio della distribuzione CloudFront o CNAME. Obbligatorio quando una qualsiasi strategia di file utilizza `"cloudfront"`.domain: "https://cdn.example.com"
distributionIdStringID della distribuzione CloudFront. Obbligatorio quando `invalidateOnDelete` è true.distributionId: "E1234ABCD"
invalidateOnDeleteBooleanCrea un'invalidazione CloudFront per i file eliminati. Predefinito: false.invalidateOnDelete: false
imageSigningStringControlla l'accesso alle immagini/avatar in linea. Opzioni: `"none"` o `"cookies"`. `"url"` è riservato e non implementato per le immagini.imageSigning: "cookies"
cookieDomainStringDominio del cookie padre condiviso richiesto per i cookie firmati. Deve iniziare con un punto.cookieDomain: ".example.com"
cookieExpiryNumberDurata del cookie firmato in secondi. Predefinito: 1800, massimo: 604800.cookieExpiry: 1800
urlExpiryNumberDurata in secondi dell'URL di download firmato di CloudFront. Predefinito: 3600.urlExpiry: 3600
storageRegionStringEtichetta di regione opzionale utilizzata nelle chiavi degli oggetti generati quando i percorsi di regione sono abilitati.storageRegion: "us-east-2"
includeRegionInPathBooleanInclude la regione di archiviazione nelle chiavi degli oggetti appena generati. Predefinito: false.includeRegionInPath: false
requireSignedAccessBooleanRifiuta l'avvio quando l'accesso CloudFront tramite cookie firmato non può essere inizializzato. Predefinito: false.requireSignedAccess: true

vedi: Struttura dell'oggetto CloudFront e CloudFront con S3

filteredTools

KeyTypeDescriptionExample
filteredToolsArray of StringsFiltra strumenti specifici dagli endpoint sia dei Plugin che degli OpenAI Assistants.filteredTools: ["scholarai", "calculator"]
  • Note:
    • Se vengono specificati sia includedTools che filteredTools, verrà riconosciuto solo includedTools.
    • Influisce sia sugli endpoint gptPlugins che su quelli assistants
    • Puoi trovare i nomi degli strumenti da filtrare in api/app/clients/tools/manifest.json
      • Usa il valore pluginKey
    • Inoltre, qualsiasi elemento elencato nella directory ".well-known" api/app/clients/tools/.well-known
      • Utilizza il valore name_for_model

includedTools

KeyTypeDescriptionExample
includedToolsArray of StringsInclude strumenti specifici sia dagli endpoint Plugins che da quelli OpenAI Assistants.includedTools: ["calculator"]
  • Note:
    • Se vengono specificati sia includedTools che filteredTools, verrà riconosciuto solo includedTools.
    • Influisce sia sugli endpoint gptPlugins che su quelli assistants
    • Puoi trovare i nomi degli strumenti da filtrare in api/app/clients/tools/manifest.json
      • Usa il valore pluginKey
    • Inoltre, qualsiasi elemento elencato nella directory ".well-known" api/app/clients/tools/.well-known
      • Utilizza il valore name_for_model
KeyTypeDescriptionExample
secureImageLinksBooleanIndica se proteggere o meno l'accesso ai link delle immagini ospitate localmente dall'app. Predefinito: false.secureImageLinks: true

imageOutputType

  • Nota: Case-sensitive. L'endpoint Google supporta solo i tipi di output "jpeg" e "png".
  • Opzioni: "png" | "webp" | "jpeg"
KeyTypeDescriptionExample
imageOutputTypeStringIl tipo di output immagine per le risposte con immagini. Se omesso, il valore predefinito è "png".imageOutputType: "webp"

ocr

Chiave:

KeyTypeDescriptionExample
ocrObjectConfigura le impostazioni di Optical Character Recognition (OCR) per l'estrazione di testo dalle immagini.

Sottochiavi:

KeyTypeDescriptionExample
apiKeyStringLa chiave API per il servizio OCR.
baseURLStringL'URL di base per l'API del servizio OCR.
strategyStringLa strategia OCR da utilizzare. Le opzioni sono "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser" o "custom_ocr".
mistralModelStringIl modello Mistral da utilizzare per l'elaborazione OCR.

vedi: Struttura dell'oggetto di configurazione OCR

webSearch

Chiave:

KeyTypeDescriptionExample
webSearchObjectConfigura la funzionalità di ricerca web, inclusi i provider di ricerca, gli scraper di contenuti e i reranker dei risultati.

Sottochiavi:

KeyTypeDescriptionExample
serperApiKeyStringNome della variabile d'ambiente per la chiave API di Serper. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.
searxngInstanceUrlStringNome della variabile d'ambiente per l'URL dell'istanza SearXNG. Se non impostato nel file .env, agli utenti verrà richiesto di fornirlo tramite l'interfaccia utente.
searxngApiKeyStringNome della variabile d'ambiente per la chiave API di SearXNG. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.
tavilyApiKeyStringNome della variabile d'ambiente per la chiave API di Tavily. Utilizzata sia per la ricerca che per lo scraper. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.
tavilySearchUrlStringNome della variabile d'ambiente per un URL personalizzato dell'API di Tavily Search. Opzionale; se non impostato, viene utilizzata la ricerca ospitata da Tavily.
tavilyExtractUrlStringNome della variabile d'ambiente per un URL personalizzato dell'API Tavily Extract. Opzionale; se non impostato, viene utilizzato l'extract ospitato da Tavily.
firecrawlApiKeyStringNome della variabile d'ambiente per la chiave API di Firecrawl. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.
firecrawlApiUrlStringNome della variabile d'ambiente per l'URL dell'API Firecrawl. Se non impostato nel file .env, agli utenti verrà richiesto di fornirlo tramite l'interfaccia utente.
jinaApiKeyStringNome della variabile d'ambiente per la chiave API di Jina. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.
cohereApiKeyStringNome della variabile d'ambiente per la chiave API di Cohere. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.
searchProviderStringSpecifica quale provider di ricerca utilizzare. Opzioni: "serper", "searxng", "tavily".
scraperProviderStringSpecifica quale servizio di scraper utilizzare. Opzioni: "firecrawl", "serper", "tavily".
firecrawlVersionStringSpecifica la versione dell'API Firecrawl (v0 o v1).
rerankerTypeStringSpecifica quale servizio di reranker utilizzare. Impostare su "none" per saltare il reranking. Opzioni: "jina", "cohere", "none".
scraperTimeoutIntegerTimeout in millisecondi per le richieste dello scraper. Deve essere un numero intero non negativo.
safeSearchNumberLivello di filtro della ricerca sicura. 0 = OFF, 1 = MODERATE (predefinito), 2 = STRICT.

vedi: Struttura dell'oggetto Web Search

fileConfig

Chiave:

KeyTypeDescriptionExample
fileConfigObjectConfigura le impostazioni di gestione dei file per l'applicazione, inclusi i limiti di dimensione e le restrizioni sui tipi MIME.

Sottochiavi:

KeyTypeDescriptionExample
endpointsRecord/ObjectSpecifica le configurazioni di gestione dei file per i singoli endpoint, consentendo la personalizzazione su base endpoint.
serverFileSizeLimitNumberLa dimensione massima del file (in MB) che il server accetterà. Si applica globalmente a tutti gli endpoint, a meno che non venga sovrascritta da impostazioni specifiche per endpoint.
avatarSizeLimitNumberDimensione massima (in MB) per le immagini dell'avatar utente.
clientImageResizeObjectConfigura il ridimensionamento delle immagini lato client per ottimizzare i caricamenti dei file e prevenire errori di caricamento dovuti a dimensioni eccessive delle immagini.
ocrObjectImpostazioni per l'elaborazione dei file tramite riconoscimento ottico dei caratteri (OCR).
textObjectImpostazioni per l'analisi diretta di file di testo.
sttObjectImpostazioni per l'elaborazione dei file audio Speech-to-Text (STT).
fileTokenLimitNumberNumero massimo di token dai file di testo da includere nei prompt prima del troncamento.fileTokenLimit: 100000

clientImageResize

Chiave:

KeyTypeDescriptionExample
clientImageResizeObjectConfigura il ridimensionamento delle immagini lato client per ottimizzare i caricamenti dei file e prevenire errori di caricamento dovuti a dimensioni eccessive delle immagini.

Sottochiavi:

KeyTypeDescriptionExample
enabledBooleanAbilita o disabilita la funzionalità di ridimensionamento delle immagini lato client. Predefinito: false.enabled: true
maxWidthNumberLarghezza massima in pixel per le immagini ridimensionate. Le immagini più larghe di questo valore verranno ridimensionate. Predefinito: 1920.maxWidth: 1024
maxHeightNumberAltezza massima in pixel per le immagini ridimensionate. Le immagini più alte di questo valore verranno ridimensionate. Predefinito: 1080.maxHeight: 768
qualityNumberQualità di compressione JPEG (da 0.1 a 1.0). Valori più alti significano una qualità migliore ma dimensioni del file maggiori. Predefinito: 0.8.quality: 0.9
compressFormatStringFormato di output per le immagini compresse. Opzioni: "jpeg", "webp". Predefinito: "jpeg".compressFormat: "webp"

Descrizione:

La configurazione clientImageResize abilita il ridimensionamento automatico delle immagini lato client prima del caricamento. Questa funzionalità aiuta a:

  • Previeni errori di caricamento dovuti a file immagine di grandi dimensioni che superano i limiti del server
  • Riduci l'utilizzo della larghezza di banda comprimendo le immagini prima della trasmissione
  • Migliora le prestazioni di caricamento con dimensioni dei file ridotte
  • Mantieni la qualità dell'immagine ottimizzando al contempo le dimensioni del file

Quando abilitato, le immagini che superano le dimensioni maxWidth o maxHeight specificate vengono ridimensionate automaticamente lato client prima di essere caricate sul server. Il ridimensionamento mantiene le proporzioni originali, assicurando che l'immagine rientri nei limiti specificati.

Esempio:

fileConfig:
  clientImageResize:
    enabled: true
    maxWidth: 1920
    maxHeight: 1080
    quality: 0.8
    compressFormat: 'jpeg'

Note:

  • Si applica solo ai file immagine (JPEG, PNG, WebP, ecc.)
  • Il ridimensionamento avviene automaticamente quando le immagini superano le dimensioni specificate
  • Le proporzioni originali vengono mantenute durante il ridimensionamento
  • La funzionalità funziona con tutti gli endpoint di caricamento immagini supportati
  • L'impostazione della qualità si applica solo ai formati JPEG e WebP
  • Impostare la qualità su un valore troppo basso (< 0.5) potrebbe causare un notevole degrado dell'immagine

vedi: Struttura dell'oggetto di configurazione file

rateLimits

Chiave:

KeyTypeDescriptionExample
rateLimitsObjectDefinisce le policy di limitazione della frequenza (rate limiting) per prevenire abusi limitando il numero di richieste.

Sottochiavi:

KeyTypeDescriptionExample
fileUploadsObjectConfigura i limiti di velocità specificamente per le operazioni di caricamento file.
conversationsImportObjectConfigura i limiti di frequenza specificamente per le operazioni di importazione delle conversazioni.
sttObjectConfigura i limiti di frequenza specificamente per le richieste speech-to-text (stt)
ttsObjectConfigura i limiti di frequenza specificamente per le richieste text-to-speech (tts)

Sottochiavi fileUploads:

KeyTypeDescriptionExample
ipMaxNumberNumero massimo di caricamenti consentiti per indirizzo IP per finestra.
ipWindowInMinutesNumberFinestra temporale in minuti per il limite di caricamento basato su IP.
userMaxNumberNumero massimo di caricamenti consentiti per utente per finestra.
userWindowInMinutesNumberFinestra temporale in minuti per il limite di caricamento basato sull'utente.

Sottochiavi conversationsImport:

KeyTypeDescriptionExample
ipMaxNumberNumero massimo di importazioni consentite per indirizzo IP per finestra.
ipWindowInMinutesNumberFinestra temporale in minuti per il limite di importazioni basato su IP.
userMaxNumberNumero massimo di importazioni per utente per finestra.
userWindowInMinutesNumberFinestra temporale in minuti per il limite di importazioni basato sull'utente.

Sottochiavi tts:

KeyTypeDescriptionExample
ipMaxNumberNumero massimo di richieste consentite per indirizzo IP per finestra.
ipWindowInMinutesNumberFinestra temporale in minuti per il limite di richieste basato su IP.
userMaxNumberNumero massimo di richieste per utente per finestra.
userWindowInMinutesNumberFinestra temporale in minuti per il limite di richieste basato sull'utente.

Sottochiavi stt:

KeyTypeDescriptionExample
ipMaxNumberNumero massimo di richieste consentite per indirizzo IP per finestra.
ipWindowInMinutesNumberFinestra temporale in minuti per il limite di richieste basato su IP.
userMaxNumberNumero massimo di richieste per utente per finestra.
userWindowInMinutesNumberFinestra temporale in minuti per il limite di richieste basato sull'utente.
  • Esempio:
rateLimits:
  fileUploads:
    ipMax: 100
    ipWindowInMinutes: 60
    userMax: 50
    userWindowInMinutes: 60
  conversationsImport:
    ipMax: 100
    ipWindowInMinutes: 60
    userMax: 50
    userWindowInMinutes: 60
  stt:
    ipMax: 100
    ipWindowInMinutes: 1
    userMax: 50
    userWindowInMinutes: 1
  tts:
    ipMax: 100
    ipWindowInMinutes: 1
    userMax: 50
    userWindowInMinutes: 1

registration

Chiave:

KeyTypeDescriptionExample
registrationObjectConfigura le impostazioni relative alla registrazione per l'applicazione.

Sottochiavi:

KeyTypeDescriptionExample
socialLoginsConfigurazioni di accesso social.
allowedDomainsSpecifica i domini consentiti per la registrazione.

vedi anche:

memory

Chiave:

KeyTypeDescriptionExample
memoryObjectConfigura la memoria della conversazione e le funzionalità di personalizzazione per l'applicazione.

Sottochiavi:

KeyTypeDescriptionExample
disabledBooleanDisabilita la funzionalità di memoria quando impostato su true.
validKeysArray of StringsSpecifica quali chiavi sono valide per l'archiviazione della memoria.
tokenLimitNumberImposta il numero massimo di token per l'archiviazione e l'elaborazione della memoria.
charLimitNumberImposta il numero massimo di caratteri per l'archiviazione della memoria. Predefinito: 10000.
maxInputTokensNumberLimita i token delle chat recenti inviati all'agente di memoria automatica prima dell'estrazione. Predefinito: 12000.
personalizeBooleanAbilita o disabilita le funzionalità di personalizzazione.
messageWindowSizeNumberSpecifica il numero di messaggi recenti da includere nel contesto della memoria.
agentObject | UnionConfigura l'agente responsabile dell'elaborazione della memoria.

vedi: Struttura dell'oggetto Memory

summarization

Chiave:

KeyTypeDescriptionExample
summarizationObjectConfigura la riassunzione delle conversazioni e il pruning del contesto. Sostituisce i campi `summarize` e `summaryModel` per ogni endpoint.

Sottochiavi:

KeyTypeDescriptionExample
providerStringProvider LLM per le chiamate di riepilogo. Per impostazione predefinita utilizza il provider dell'agente.
modelStringModello per le chiamate di riepilogo. Utilizza come predefinito il modello dell'agente stesso.
parametersObjectParametri LLM aggiuntivi per le richieste di riepilogo.
promptStringPrompt personalizzato per la riassunzione iniziale.
updatePromptStringPrompt personalizzato per la ricompattazione quando esiste un riepilogo precedente.
triggerObjectDefinisce quando viene attivata la riassunzione (in base al rapporto tra token, token rimanenti o numero di messaggi).
maxSummaryTokensNumberToken di output massimi per la risposta del modello di riepilogo.
reserveRatioNumberFrazione del budget di token riservata come margine (0–1). Predefinito: 0.05.
contextPruningObjectConfigura il degrado dei risultati degli strumenti basato sulla posizione per i messaggi meno recenti.

vedi: Struttura dell'oggetto di riepilogo

actions

Chiave:

KeyTypeDescriptionExample
actionsObjectConfigura le impostazioni relative alle azioni, utilizzate da Agents e Assistants

Sottochiavi:

KeyTypeDescriptionExample
allowedDomainsArray of StringsWhitelist rigorosa dei domini per le azioni. Quando impostata, sono raggiungibili solo i domini elencati.
allowedAddressesArray of StringsElenco di esenzione SSRF (solo spazio IP privato). Consente specifici servizi host:porta privati senza limitare le destinazioni pubbliche quando `allowedDomains` non è configurato.

vedi anche:

interface

Chiave:

KeyTypeDescriptionExample
interfaceObjectConfigura gli elementi dell'interfaccia utente all'interno dell'applicazione, consentendo la personalizzazione della visibilità e del comportamento di vari componenti.

Sottochiavi:

KeyTypeDescriptionExample
privacyPolicyObjectContiene le impostazioni relative al link della privacy policy fornito.
termsOfServiceObjectContiene le impostazioni relative al link dei termini di servizio fornito.
modelSelectBooleanDetermina se la funzionalità di selezione del modello è disponibile.
parametersBooleanAttiva/disattiva la visibilità delle opzioni di configurazione dei parametri, note anche come impostazioni della conversazione.
presetsBooleanAbilita o disabilita il menu dei preset
promptsBoolean or ObjectAbilita o disabilita tutte le funzionalità relative ai prompt per tutti gli utenti
bookmarksBooleanAbilita o disabilita tutte le funzionalità relative ai segnalibri per tutti gli utenti
memoriesBooleanAbilita o disabilita la funzionalità memorie per tutti gli utenti
multiConvoBooleanAbilita o disabilita tutte le funzionalità relative al "multi convo", ovvero lo streaming di risposte multiple, per tutti gli utenti
agentsBoolean or ObjectAbilita o disabilita tutte le funzionalità degli agenti per tutti gli utenti
temporaryChatBooleanAbilita o disabilita la funzionalità di chat temporanea
temporaryChatRetentionNumberConfigura il periodo di conservazione per le chat temporanee in ore. Min: 1, Max: 8760. Predefinito: 720 (30 giorni).
autoSubmitFromUrlBooleanControlla se `/c/new?prompt=…&submit=true` invia automaticamente il prompt al modello. Quando è `false`, il prompt viene precompilato ma non inviato.
mcpServersObjectContiene le impostazioni relative alla selezione del server MCP e al controllo degli accessi.
customWelcomeStringMessaggio di benvenuto personalizzato visualizzato nell'interfaccia della chat.
runCodeBooleanAbilita o disabilita il pulsante "Run Code" per i blocchi di codice Markdown
webSearchBooleanAbilita o disabilita il pulsante di ricerca web nell'interfaccia di chat
fileSearchBooleanAbilita o disabilita il pulsante di ricerca file nell'interfaccia della chat
fileCitationsBooleanAbilita o disabilita globalmente le citazioni dei file per tutti gli utenti
peoplePickerObjectConfigura quali tipi di entità sono controlli disponibili nell'interfaccia di selezione delle persone
marketplaceObjectAbilita o disabilita l'accesso all'Agent Marketplace

vedi: Struttura dell'oggetto interfaccia

modelSpecs

Chiave:

KeyTypeDescriptionExample
modelSpecsObjectConfigura le Model Specs, consentendo una configurazione dettagliata e la personalizzazione dei modelli AI e dei loro comportamenti all'interno dell'applicazione.

Sottochiavi:

KeyTypeDescriptionExample
enforceBooleanDetermina se le Model Specs debbano sovrascrivere rigorosamente le altre impostazioni di configurazione.
prioritizeBooleanSpecifica se le Model Specs debbano avere la priorità sulla configurazione predefinita quando entrambe sono applicabili.
listArray of ObjectsContiene un elenco di specifiche dei singoli modelli che descrivono in dettaglio varie configurazioni e comportamenti.

vedi: Struttura dell'oggetto Model Specs

endpoints

Chiave:

KeyTypeDescriptionExample
endpointsObjectDefinisce endpoint API personalizzati per l'applicazione.

Sottochiavi:

KeyTypeDescriptionExample
customArray of ObjectsOgni oggetto nell'array rappresenta una configurazione endpoint univoca.
azureOpenAIObjectConfigurazione specifica dell'endpoint Azure OpenAI
assistantsObjectConfigurazione specifica per l'endpoint Assistants.
azureAssistantsObjectConfigurazione specifica dell'endpoint Azure Assistants.
agentsObjectConfigurazione specifica dell'endpoint Agents.
allObjectImpostazioni globali dell'endpoint che si applicano a tutti gli endpoint. Vedi Shared Endpoint Settings.
allowedAddressesArray of StringsElenco esenzioni SSRF (solo spazio IP privato). Consente ai baseURL forniti dall'utente di puntare a specifici servizi host:porta privati (es. Ollama self-hosted) senza disabilitare la protezione SSRF per tutto il resto.

Nota: Gli endpoint supportano Shared Endpoint Settings come streamRate, headers, titleModel, titleMethod, titlePrompt, titlePromptTemplate, titleEndpoint e maxToolResultChars. Questi possono essere configurati singolarmente per ogni endpoint o globalmente utilizzando la chiave all. Gli headers vengono uniti, con i valori a livello di endpoint che prevalgono in caso di collisione delle chiavi. La chiave all non accetta baseURL.

Nota: endpoints.allowedAddresses si applica ai valori baseURL forniti dall'utente (quando un amministratore configura un endpoint personalizzato con apiKey: 'user_provided' e baseURL: 'user_provided'). Ogni baseURL fornita dall'utente viene convalidata rispetto al blocco SSRF al momento della richiesta; le voci elencate qui sono esentate. Vedi mcpSettings.allowedAddresses per la semantica del campo: si applicano le stesse regole (solo spazio IP privato, porta richiesta, niente URL/percorsi/CIDR/host semplici/letterali IP pubblici).

mcpSettings

Chiave:

KeyTypeDescriptionExample
mcpSettingsObjectDefinisce le impostazioni globali per i server Model Context Protocol (MCP)

Sottochiavi:

KeyTypeDescriptionExample
allowedDomainsArray of StringsWhitelist rigorosa dei domini per le connessioni al server MCP. Quando impostata, sono raggiungibili solo le voci elencate.
allowedAddressesArray of StringsElenco di esenzione SSRF (solo spazio IP privato). Consente specifici servizi host:porta privati senza attivare la modalità strict-whitelist in `allowedDomains`.
  • Note:
    • Questa è una funzionalità di sicurezza per proteggere da abusi / utilizzi impropri di indirizzi interni tramite server MCP
    • Per impostazione predefinita, LibreChat impedisce ai server MCP di connettersi a indirizzi di rete interni, locali o privati.
    • I server MCP che utilizzano indirizzi IP locali o domini possono essere aggiunti alla whitelist rigorosa allowedDomains (che diventa quindi l'unico insieme raggiungibile), oppure, per mantenere raggiungibili le destinazioni pubbliche, possono essere esentati come servizi host:porta esatti tramite allowedAddresses
    • Come per tutte le modifiche alla configurazione yaml, è necessario riavviare LibreChat affinché abbiano effetto.
    • Supporta domini, sottodomini wildcard (*.example.com), domini Docker e indirizzi IP

Esempio:

mcpSettings:
  # Strict whitelist mode:
  # allowedDomains:
  #   - "example.com"           # Specific domain
  #   - "*.example.com"         # All subdomains
  #   - "http://mcp-server:3000" # Internal service, explicitly whitelisted

  # Default SSRF mode with private service exemptions:
  allowedAddresses:
    - 'host.docker.internal:8080' # Permit one private host on one port
    - '10.0.0.5:8000' # Permit one private IP on one port

vedi: Struttura dell'oggetto MCP Settings

mcpServers

Chiave:

KeyTypeDescriptionExample
mcpServersObjectDefinisce la configurazione per i server Model Context Protocol (MCP), consentendo l'integrazione dinamica dei server MCP all'interno dell'applicazione.

Sottochiavi:

KeyTypeDescriptionExample
<serverName>ObjectOgni chiave sotto `mcpServers` rappresenta una configurazione individuale di un server MCP, identificata da un nome univoco.
  • Note:
    • L'inizializzazione avviene all'avvio e l'app deve essere riavviata affinché le modifiche abbiano effetto.
    • <serverName> è un identificatore univoco per ogni configurazione del server MCP.
    • Ogni server MCP può essere configurato utilizzando uno dei quattro tipi di connessione:
      • stdio
      • websocket
      • sse
      • streamable-http
    • Il campo type specifica il tipo di connessione al server MCP.
    • Se type viene omesso, viene impostato come predefinito in base alla presenza e al formato di url o command:
      • Se url è specificato e inizia con http o https, type è impostato come sse per impostazione predefinita.
      • Se url è specificato e inizia con ws o wss, type è impostato per impostazione predefinita su websocket.
      • Se command è specificato, type è impostato come stdio per impostazione predefinita.
    • Ulteriori opzioni di configurazione includono:
      • timeout: Timeout in millisecondi per le richieste al server MCP. Determina quanto tempo attendere una risposta per le richieste di strumenti (tool).
      • initTimeout: Timeout in millisecondi per l'inizializzazione del server MCP. Determina quanto tempo attendere affinché il server si inizializzi.
      • serverInstructions: Controlla se le istruzioni del server sono incluse nel contesto dell'agente. Può essere true (usa quelle fornite dal server), false (disabilitato) o una stringa personalizzata (sovrascrive quelle fornite dal server).
      • customUserVars: (Opzionale) Definisce variabili personalizzate (ad esempio, chiavi API, URL) che i singoli utenti possono impostare per un server MCP. Questi valori per utente, forniti tramite l'interfaccia utente, possono quindi essere referenziati nelle configurazioni headers o env del server utilizzando la sintassi {{VARIABLE_NAME}}. Ciò consente l'autenticazione o la personalizzazione per utente per gli strumenti MCP.
    • vedi: Struttura dell'oggetto MCP Servers

Esempio:

mcpServers:
  everything:
    # type: sse # type can optionally be omitted
    url: http://localhost:3001/sse
    timeout: 30000
    initTimeout: 10000
    serverInstructions: true # Use server-provided instructions
  puppeteer:
    type: stdio
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-puppeteer'
    timeout: 30000
    initTimeout: 10000
    serverInstructions: 'Do not access any local files or local/internal IP addresses'
  filesystem:
    # type: stdio
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-filesystem'
      - /home/user/LibreChat/
    iconPath: /home/user/LibreChat/client/public/assets/logo.svg
  mcp-obsidian:
    command: npx
    args:
      - -y
      - 'mcp-obsidian'
      - /path/to/obsidian/vault
  streamable-http-example:
    type: streamable-http
    url: https://example.com/mcp
    headers:
      Authorization: 'Bearer ${API_TOKEN}'
    timeout: 30000
  per-user-crendentials-example:
    type: sse
    url: 'https//some.mcp/sse'
    headers:
      X-Custom-Auth-Token: '{{USER_API_KEY}}' # Placeholder for the user-provided API key, defined in `customUserVars` below.
    customUserVars:
      USER_API_KEY:
        title: 'Service API Key'
        description: "Your personal API key for this service. You can get it <a href='https://example.com/api-keys' target='_blank'>here</a>."
    serverInstructions: true

vedi: Struttura dell'oggetto MCP Servers

speech

Chiave:

KeyTypeDescriptionExample
speechObjectConfigura i provider di Text-to-Speech (TTS) e Speech-to-Text (STT) per l'applicazione.

Sottochiavi:

KeyTypeDescriptionExample
ttsObjectConfigurazioni del provider Text-to-Speech (OpenAI, Azure OpenAI, ElevenLabs, LocalAI).
sttObjectConfigurazioni del provider Speech-to-Text (OpenAI, Azure OpenAI).
speechTabObjectImpostazioni UI predefinite per le funzionalità vocali.

vedi: Struttura dell'oggetto Speech

turnstile

Chiave:

KeyTypeDescriptionExample
turnstileObjectConfigura Cloudflare Turnstile per la protezione dai bot nei moduli di registrazione e accesso.

Sottochiavi:

KeyTypeDescriptionExample
siteKeyStringLa tua site key di Cloudflare Turnstile (obbligatoria).
optionsObjectOpzioni aggiuntive del widget Turnstile (facoltativo).

vedi: Struttura dell'oggetto Turnstile

transactions

Chiave:

KeyTypeDescriptionExample
transactionsObjectControlla le funzionalità di registrazione delle transazioni e di visibilità.

Sottochiavi:

KeyTypeDescriptionExample
enabledBooleanAbilita o disabilita la registrazione delle transazioni. Predefinito: true.

vedi: Struttura dell'oggetto Transactions

Com’è questa guida?