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

Estrutura do Objeto de Configuração de Arquivo

Visão geral

O objeto fileConfig permite que você configure as definições de manipulação de arquivos para a aplicação, incluindo limites de tamanho e restrições de tipo MIME. Esta seção fornece um detalhamento da estrutura do objeto fileConfig.

Existem 8 campos principais em fileConfig:

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

Notas:

  • No momento da redação, o endpoint Assistants suporta tipos de arquivo desta lista.
  • OpenAI, Azure OpenAI, Google e endpoints personalizados suportam arquivos através da RAG API.
  • Os endpoints OpenAI, Azure OpenAI, Anthropic, Google e AWS Bedrock suportam uploads diretos de arquivos via Upload to Provider.
  • As seções ocr, text e stt controlam o processamento de arquivos para recursos como Upload as Text e OCR
  • Quaisquer outros endpoints não mencionados, como Plugins, não suportam uploads de arquivos (ainda).
  • O endpoint Assistants possui um valor de endpoint definido como assistants. Todos os outros endpoints usam o valor definido default.
    • Para endpoints que não são assistants, você pode ajustar as configurações de arquivo para todos eles em default
    • Se você quiser ajustar as configurações para um endpoint específico, você pode listar seus nomes de endpoint correspondentes:
      • assistants
        • não usa "default", pois possui padrões definidos separadamente dos outros.
      • openAI
      • azureOpenAI
      • google
      • bedrock
      • YourCustomEndpointName
  • Você pode omitir valores, caso em que o aplicativo usará os valores padrão conforme definido por tipo de endpoint listado abaixo.
  • O LibreChat conta 1 megabyte da seguinte forma: 1 x 1024 x 1024

Exemplo

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
serverFileSizeLimitIntegerO tamanho máximo global para qualquer arquivo enviado ao servidor, especificado em megabytes (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
avatarSizeLimitIntegerO tamanho máximo permitido para imagens de avatar, especificado em megabytes (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
imageGenerationObjectConfigurações relacionadas à qualidade e dimensões da saída de geração de imagens.Allows configuration of either output size as a percentage relative to some base size or as an explicit pixel dimension.

imageGeneration suporta os seguintes parâmetros:

  • percentage (Inteiro)

    • O tamanho de saída da imagem gerada expresso como uma porcentagem (por exemplo, 100 significa 100% do tamanho base).
    • Use isso para ajustar a escala da imagem de saída em relação a um tamanho padrão ou original.
  • px (Inteiro)

    • Especifica a dimensão da imagem de saída em pixels (por exemplo, 1024).
    • Use isso para definir explicitamente o tamanho da saída da imagem gerada, independentemente do tamanho base.

Você pode definir apenas um desses parâmetros (percentage ou px), não ambos, dependendo do seu caso de uso

Exemplo de configuração:

fileConfig:
  imageGeneration:
    percentage: 100
    px: 1024

fileTokenLimit

KeyTypeDescriptionExample
fileTokenLimitNumberNúmero máximo de tokens de arquivos de texto a serem incluídos nos prompts antes do truncamento.fileTokenLimit: 100000

Descrição: Ao anexar conteúdo de texto, o LibreChat trunca o texto em tempo de execução no limite de tokens configurado logo antes da construção do prompt.

Padrão: 100000

fileConfig:
  fileTokenLimit: 100000

ocr

KeyTypeDescriptionExample
ocrObjectConfigurações para processamento de arquivos com Reconhecimento Óptico de Caracteres (OCR).Configures which file types are processed using OCR.

Descrição: A seção ocr configura quais tipos de arquivo devem ser processados usando a funcionalidade de OCR para extração de texto de documentos visuais.

Nota: Esta seção controla a correspondência de tipos de arquivo para processamento de OCR. Para habilitar recursos de agente e configurar serviços de OCR, consulte:

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista de padrões de tipo MIME para arquivos que devem ser processados com OCR.Uses regular expressions to match file types.

Padrão: Imagens, PDFs e documentos do 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
textObjectConfigurações para análise direta de arquivos de texto sem OCR.Configures which file types are processed as plain text files for direct content extraction.

Descrição: A seção text configura quais tipos de arquivo devem ser processados usando extração direta de texto.

Nota: A análise de texto é o método padrão usado pelo recurso "Upload as Text" (controlado pela capacidade context). Ele tenta primeiro usar a biblioteca de análise de texto da RAG API e, se a RAG API não estiver conectada, ele recorre a um método de extração de texto mais simples, sem exigir serviços externos. Veja Upload as Text para mais informações.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista de padrões de tipo MIME para arquivos que devem ser analisados como texto simples.Uses regular expressions to match file types.

Padrão: Todos os arquivos de texto e linguagens de programação comuns

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
sttObjectConfigurações para processamento de arquivos de áudio de Speech-to-Text (STT).Configures which audio file types are processed using STT for transcription.

Descrição: A seção stt configura quais tipos de arquivos de áudio devem ser processados usando a funcionalidade de Speech-to-Text para converter áudio em texto.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista de padrões de tipo MIME para arquivos de áudio que devem ser transcritos com STT.Uses regular expressions to match audio file types.

Padrão: Formatos de áudio comuns

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

Notas:

  • Arquivos que correspondem aos padrões text são processados com extração de texto simples
  • Arquivos que correspondem aos padrões ocr são processados com o serviço de OCR fornecido
  • Arquivos que correspondem aos padrões stt são processados com transcrição de Speech-to-Text.
  • Precedência de processamento: OCR > STT > análise de texto > fallback
  • Arquivos que não corresponderem a nenhum padrão usarão a análise de texto como fallback

Prioridade de Processamento de Arquivos

O LibreChat processa arquivos enviados com base na correspondência de tipo MIME com a seguinte ordem de prioridade:

  1. OCR - Se o arquivo corresponder a ocr.supportedMimeTypes E o OCR estiver configurado
  2. STT - Se o arquivo corresponder a stt.supportedMimeTypes E o STT estiver configurado
  3. Análise de Texto - Se o arquivo corresponder a text.supportedMimeTypes
  4. Fallback - Análise de texto como último recurso

Esta ordem de processamento garante uma qualidade de extração ideal, mantendo a funcionalidade mesmo quando serviços especializados (OCR/STT) não estão configurados.

Exemplos de Processamento

Arquivo PDF com OCR configurado:

  • O arquivo corresponde a ocr.supportedMimeTypes
  • Usa OCR para extrair texto
  • Melhor qualidade para PDFs digitalizados e imagens

Arquivo PDF sem OCR configurado:

  • O arquivo corresponde a text.supportedMimeTypes (ou usa o fallback)
  • Usa a biblioteca de análise de texto
  • Funciona bem para PDFs digitais com texto selecionável

Arquivo Python:

  • O arquivo corresponde a text.supportedMimeTypes
  • Usa análise de texto (não é necessário OCR)
  • Extração direta de texto

Arquivo de áudio com STT configurado:

  • O arquivo corresponde a stt.supportedMimeTypes
  • Usa STT para transcrever áudio para texto

Arquivo de imagem sem OCR configurado:

  • O arquivo corresponde a ocr.supportedMimeTypes, mas o OCR não está disponível
  • Recorre à análise de texto
  • Capacidade de extração limitada sem OCR

Este sistema de prioridade permite que recursos como "Upload as Text" funcionem sem exigir configuração de OCR, enquanto ainda aproveita o OCR quando disponível para uma melhor qualidade de extração.

endpoints

KeyTypeDescriptionExample
endpointsRecord/ObjectConfigura as definições de manipulação de arquivos para endpoints individuais, permitindo a personalização por endpoint.Specifies file handling configurations for individual endpoints, allowing customization per endpoint basis.

Descrição: Cada objeto em endpoints é um registro que pode ter as seguintes configurações:

Visão geral

  • disabled
    • Se o tratamento de arquivos está desativado para o endpoint.
  • fileLimit
    • O número máximo de arquivos permitidos por solicitação de upload.
  • fileSizeLimit
    • O tamanho máximo para um único arquivo. Em unidades de MB (por exemplo, use 20 para 20 megabytes)
  • totalSizeLimit
    • O tamanho máximo total para todos os arquivos em uma única solicitação. Em unidades de MB (por exemplo, use 20 para 20 megabytes)
  • supportedMimeTypes
    • Uma lista de Regular Expressions especificando quais MIME types são permitidos para upload. Isso pode ser personalizado para restringir tipos de arquivo.

disabled

KeyTypeDescriptionExample
disabledBooleanIndica se o upload de arquivos está desativado para um endpoint específico.Setting this to `true` prevents any file uploads to the specified endpoint, overriding any other file-related settings.

Padrão: false

openAI:
  disabled: true

fileLimit

Chave:

KeyTypeDescriptionExample
fileLimitIntegerO número máximo de arquivos permitidos em uma única solicitação de upload.Helps control the volume of uploads and manage server load.

Padrão: Varia conforme o endpoint

assistants:
  fileLimit: 5

fileSizeLimit

Chave:

KeyTypeDescriptionExample
fileSizeLimitIntegerO tamanho máximo permitido para cada arquivo individual, especificado em megabytes (MB).This limit ensures that no single file exceeds the specified size, allowing for better resource allocation and management.

Padrão: Varia conforme o endpoint

YourCustomEndpointName:
  fileSizeLimit: 1000

totalSizeLimit

Chave:

KeyTypeDescriptionExample
totalSizeLimitIntegerO tamanho máximo total permitido para todos os arquivos em uma única solicitação, especificado em megabytes (MB).This setting is crucial for preventing excessive bandwidth and storage usage by any single upload request.

Padrão: Varia conforme o endpoint

assistants:
  totalSizeLimit: 50

supportedMimeTypes

Chave:

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsUma lista de expressões regulares que definem os tipos MIME permitidos para upload.This allows for precise control over the types of files that can be uploaded. Invalid regex is ignored.

Padrão: Varia conforme o endpoint

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

Como está este guia?