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

Struttura dell'oggetto di configurazione del file

Panoramica

L'oggetto fileConfig ti consente di configurare le impostazioni di gestione dei file per l'applicazione, inclusi i limiti di dimensione e le restrizioni sui tipi MIME. Questa sezione fornisce un'analisi dettagliata della struttura dell'oggetto fileConfig.

Ci sono 8 campi principali sotto fileConfig:

  • endpoints
  • serverFileSizeLimit
  • avatarSizeLimit
  • imageGeneration
  • fileTokenLimit
  • ocr
  • text
  • stt

Note:

  • Al momento della stesura, l'endpoint Assistants supporta i tipi di file da questo elenco.
  • OpenAI, Azure OpenAI, Google e gli endpoint personalizzati supportano i file tramite la RAG API.
  • Gli endpoint OpenAI, Azure OpenAI, Anthropic, Google e AWS Bedrock supportano il caricamento diretto di file tramite Upload to Provider.
  • Le sezioni ocr, text e stt controllano l'elaborazione dei file per funzionalità come Upload as Text e OCR
  • Qualsiasi altro endpoint non menzionato, come i Plugins, non supporta (ancora) il caricamento di file.
  • L'endpoint Assistants ha un valore di endpoint definito come assistants. Tutti gli altri endpoint utilizzano il valore definito default
    • Per gli endpoint non-assistants, è possibile regolare le impostazioni dei file per tutti loro sotto default
    • Se desideri regolare le impostazioni per un endpoint specifico, puoi elencare i nomi degli endpoint corrispondenti:
      • assistants
        • non utilizza "default" poiché ha definito impostazioni predefinite separate dalle altre.
      • openAI
      • azureOpenAI
      • google
      • bedrock
      • YourCustomEndpointName
  • Puoi omettere i valori; in tal caso, l'app utilizzerà i valori predefiniti come definito per tipo di endpoint elencato di seguito.
  • LibreChat conta 1 megabyte come segue: 1 x 1024 x 1024

Esempio

fileConfig:
  endpoints:
    assistants:
      fileLimit: 5
      fileSizeLimit: 10
      totalSizeLimit: 50
      supportedMimeTypes:
        - "image/.*"
        - "application/pdf"
    openAI:
      disabled: true
    default:
      totalSizeLimit: 20
    YourCustomEndpointName:
      fileLimit: 5
      fileSizeLimit: 1000
      supportedMimeTypes:
        - "image/.*"
  serverFileSizeLimit: 1000
  avatarSizeLimit: 2
  fileTokenLimit: 100000
  imageGeneration:
    percentage: 100
    px: 1024
  ocr:
    supportedMimeTypes:
      - "^image/(jpeg|gif|png|webp|heic|heif)$"
      - "^application/pdf$"
      - "^application/vnd\\.openxmlformats-officedocument\\.(wordprocessingml\\.document|presentationml\\.presentation|spreadsheetml\\.sheet)$"
      - "^application/vnd\\.ms-(word|powerpoint|excel)$"
      - "^application/epub\\+zip$"
  text:
    supportedMimeTypes:
      - "^text/(plain|markdown|csv|json|xml|html|css|javascript|typescript|x-python|x-java|x-csharp|x-php|x-ruby|x-go|x-rust|x-kotlin|x-swift|x-scala|x-perl|x-lua|x-shell|x-sql|x-yaml|x-toml)$"
  stt:
    supportedMimeTypes:
      - "^audio/(mp3|mpeg|mpeg3|wav|wave|x-wav|ogg|vorbis|mp4|x-m4a|flac|x-flac|webm)$"

serverFileSizeLimit

KeyTypeDescriptionExample
serverFileSizeLimitIntegerLa dimensione massima globale per qualsiasi file caricato sul server, specificata in megabyte (MB).Acts as an overarching limit for file uploads across all endpoints, ensuring that no file exceeds this size server-wide.
fileConfig:
  serverFileSizeLimit: 1000

avatarSizeLimit

KeyTypeDescriptionExample
avatarSizeLimitIntegerLa dimensione massima consentita per le immagini dell'avatar, specificata in megabyte (MB).Specifically tailored for user avatar uploads, allowing for control over image sizes to maintain consistent quality and loading times.
fileConfig:
  avatarSizeLimit: 2

imageGeneration

KeyTypeDescriptionExample
imageGenerationObjectImpostazioni relative alla qualità e alle dimensioni dell'output della generazione di immagini.Allows configuration of either output size as a percentage relative to some base size or as an explicit pixel dimension.

imageGeneration supporta i seguenti parametri:

  • percentage (Intero)

    • La dimensione di output dell'immagine generata espressa come percentuale (ad esempio, 100 significa il 100% della dimensione base).
    • Utilizzalo per ridimensionare l'immagine di output rispetto a una dimensione predefinita o originale.
  • px (Intero)

    • Specifica la dimensione dell'immagine in output in pixel (ad esempio, 1024).
    • Utilizzalo per impostare esplicitamente la dimensione di output dell'immagine generata, indipendentemente dalla dimensione di base.

È possibile impostare solo uno di questi parametri (percentage o px), non entrambi, a seconda del caso d'uso.

Esempio di configurazione:

fileConfig:
  imageGeneration:
    percentage: 100
    px: 1024

fileTokenLimit

KeyTypeDescriptionExample
fileTokenLimitNumberNumero massimo di token dai file di testo da includere nei prompt prima del troncamento.fileTokenLimit: 100000

Descrizione: Quando si allega contenuto testuale, LibreChat tronca il testo in fase di esecuzione al limite di token configurato appena prima della costruzione del prompt.

Predefinito: 100000

fileConfig:
  fileTokenLimit: 100000

ocr

KeyTypeDescriptionExample
ocrObjectImpostazioni per l'elaborazione dei file tramite riconoscimento ottico dei caratteri (OCR).Configures which file types are processed using OCR.

Descrizione: La sezione ocr configura quali tipi di file devono essere elaborati utilizzando la funzionalità OCR per estrarre testo da documenti visivi.

Nota: Questa sezione controlla la corrispondenza dei tipi di file per l'elaborazione OCR. Per abilitare le funzionalità degli agenti e configurare i servizi OCR, consultare:

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsElenco di pattern di tipo MIME per i file che devono essere elaborati con OCR.Uses regular expressions to match file types.

Predefinito: Immagini, PDF e documenti Office

fileConfig:
  ocr:
    supportedMimeTypes:
      - "^image/(jpeg|gif|png|webp|heic|heif)$"
      - "^application/pdf$"
      - "^application/vnd\\.openxmlformats-officedocument\\.(wordprocessingml\\.document|presentationml\\.presentation|spreadsheetml\\.sheet)$"
      - "^application/vnd\\.ms-(word|powerpoint|excel)$"
      - "^application/epub\\+zip$"

text

KeyTypeDescriptionExample
textObjectImpostazioni per l'analisi diretta di file di testo senza OCR.Configures which file types are processed as plain text files for direct content extraction.

Descrizione: La sezione text configura quali tipi di file devono essere elaborati utilizzando l'estrazione diretta del testo.

Nota: L'analisi del testo è il metodo predefinito utilizzato dalla funzionalità "Carica come testo" (controllata dalla funzionalità context). Tenta innanzitutto di utilizzare la libreria di analisi del testo dell'API RAG e, se l'API RAG non è connessa, ripiega su un metodo di estrazione del testo più semplice senza richiedere alcun servizio esterno. Vedi Carica come testo per ulteriori informazioni.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsElenco di pattern di tipo MIME per i file che dovrebbero essere analizzati come testo semplice.Uses regular expressions to match file types.

Predefinito: Tutti i file di testo e i linguaggi di programmazione comuni

fileConfig:
  text:
    supportedMimeTypes:
      - "^text/(plain|markdown|csv|json|xml|html|css|javascript|typescript|x-python|x-java|x-csharp|x-php|x-ruby|x-go|x-rust|x-kotlin|x-swift|x-scala|x-perl|x-lua|x-shell|x-sql|x-yaml|x-toml)$"

stt

KeyTypeDescriptionExample
sttObjectImpostazioni per l'elaborazione dei file audio Speech-to-Text (STT).Configures which audio file types are processed using STT for transcription.

Descrizione: La sezione stt configura quali tipi di file audio devono essere elaborati utilizzando la funzionalità Speech-to-Text per convertire l'audio in testo.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsElenco dei pattern di tipo MIME per i file audio che dovrebbero essere trascritti con STT.Uses regular expressions to match audio file types.

Predefinito: Formati audio comuni

fileConfig:
  stt:
    supportedMimeTypes:
      - "^audio/(mp3|mpeg|mpeg3|wav|wave|x-wav|ogg|vorbis|mp4|x-m4a|flac|x-flac|webm)$"

Note:

  • I file che corrispondono ai pattern text vengono elaborati con una semplice estrazione di testo
  • I file che corrispondono ai pattern ocr vengono elaborati con il servizio OCR fornito
  • I file che corrispondono ai pattern stt vengono elaborati con la trascrizione Speech-to-Text
  • Precedenza di elaborazione: OCR > STT > analisi del testo > fallback
  • I file che non corrispondono ad alcun pattern verranno analizzati come testo.

Priorità di elaborazione dei file

LibreChat elabora i file caricati in base alla corrispondenza del tipo MIME con il seguente ordine di priorità:

  1. OCR - Se il file corrisponde a ocr.supportedMimeTypes E l'OCR è configurato
  2. STT - Se il file corrisponde a stt.supportedMimeTypes E STT è configurato
  3. Analisi del testo - Se il file corrisponde a text.supportedMimeTypes
  4. Fallback - Analisi del testo come ultima risorsa

Questo ordine di elaborazione garantisce una qualità di estrazione ottimale, mantenendo al contempo la funzionalità anche quando i servizi specializzati (OCR/STT) non sono configurati.

Esempi di elaborazione

File PDF con OCR configurato:

  • Il file corrisponde a ocr.supportedMimeTypes
  • Utilizza OCR per estrarre il testo
  • Migliore qualità per PDF scansionati e immagini

File PDF senza OCR configurato:

  • Il file corrisponde a text.supportedMimeTypes (o utilizza il fallback)
  • Utilizza la libreria di text parsing
  • Funziona bene per PDF digitali con testo selezionabile

File Python:

  • Il file corrisponde a text.supportedMimeTypes
  • Utilizza l'analisi del testo (non è necessario l'OCR)
  • Estrazione diretta del testo

File audio con STT configurato:

  • Il file corrisponde a stt.supportedMimeTypes
  • Utilizza STT per trascrivere l'audio in testo

File immagine senza OCR configurato:

  • Il file corrisponde a ocr.supportedMimeTypes ma l'OCR non è disponibile
  • Ripiega sull'analisi del testo
  • Capacità di estrazione limitata senza OCR

Questo sistema di priorità consente a funzionalità come "Upload as Text" di funzionare senza richiedere una configurazione OCR, sfruttando comunque l'OCR quando disponibile per una migliore qualità di estrazione.

endpoints

KeyTypeDescriptionExample
endpointsRecord/ObjectConfigura le impostazioni di gestione dei file per i singoli endpoint, consentendo la personalizzazione su base individuale.Specifies file handling configurations for individual endpoints, allowing customization per endpoint basis.

Descrizione: Ogni oggetto sotto endpoints è un record che può avere le seguenti impostazioni:

Panoramica

  • disabled
    • Se la gestione dei file è disabilitata per l'endpoint.
  • fileLimit
    • Il numero massimo di file consentiti per richiesta di caricamento.
  • fileSizeLimit
    • La dimensione massima per un singolo file. In unità di MB (ad esempio, usa 20 per 20 megabyte)
  • totalSizeLimit
    • La dimensione massima totale per tutti i file in una singola richiesta. In unità di MB (ad esempio, usa 20 per 20 megabyte)
  • supportedMimeTypes
    • Un elenco di Regular Expressions che specifica quali tipi MIME sono consentiti per il caricamento. Questo può essere personalizzato per limitare i tipi di file.

disabled

KeyTypeDescriptionExample
disabledBooleanIndica se il caricamento di file è disabilitato per uno specifico endpoint.Setting this to `true` prevents any file uploads to the specified endpoint, overriding any other file-related settings.

Predefinito: false

openAI:
  disabled: true

fileLimit

Chiave:

KeyTypeDescriptionExample
fileLimitIntegerIl numero massimo di file consentiti in una singola richiesta di caricamento.Helps control the volume of uploads and manage server load.

Predefinito: Varia in base all'endpoint

assistants:
  fileLimit: 5

fileSizeLimit

Chiave:

KeyTypeDescriptionExample
fileSizeLimitIntegerLa dimensione massima consentita per ogni singolo file, specificata in megabyte (MB).This limit ensures that no single file exceeds the specified size, allowing for better resource allocation and management.

Predefinito: Varia in base all'endpoint

YourCustomEndpointName:
  fileSizeLimit: 1000

totalSizeLimit

Chiave:

KeyTypeDescriptionExample
totalSizeLimitIntegerLa dimensione massima totale consentita per tutti i file in una singola richiesta, specificata in megabyte (MB).This setting is crucial for preventing excessive bandwidth and storage usage by any single upload request.

Predefinito: Varia in base all'endpoint

assistants:
  totalSizeLimit: 50

supportedMimeTypes

Chiave:

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsUn elenco di espressioni regolari che definisce i tipi MIME consentiti per il caricamento.This allows for precise control over the types of files that can be uploaded. Invalid regex is ignored.

Predefinito: Varia in base all'endpoint

assistants:
  supportedMimeTypes:
      - "image/.*"
      - "application/pdf"

Com’è questa guida?