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

Estructura del objeto de configuración de archivo

Descripción general

El objeto fileConfig le permite configurar los ajustes de manejo de archivos para la aplicación, incluyendo límites de tamaño y restricciones de tipos MIME. Esta sección proporciona un desglose detallado de la estructura del objeto fileConfig.

Hay 8 campos principales bajo fileConfig:

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

Notas:

  • En el momento de escribir este artículo, el endpoint Assistants admite los tipos de archivo de esta lista.
  • OpenAI, Azure OpenAI, Google y los endpoints personalizados admiten archivos a través de la RAG API.
  • Los endpoints de OpenAI, Azure OpenAI, Anthropic, Google y AWS Bedrock admiten la carga directa de archivos a través de Upload to Provider.
  • Las secciones ocr, text y stt controlan el procesamiento de archivos para funciones como Upload as Text y OCR
  • Cualquier otro endpoint no mencionado, como Plugins, no admite (todavía) la carga de archivos.
  • El endpoint Assistants tiene un valor de endpoint definido como assistants. Todos los demás endpoints utilizan el valor definido default.
    • Para los endpoints que no son assistants, puedes ajustar la configuración de archivos para todos ellos bajo default
    • Si deseas ajustar la configuración para un endpoint específico, puedes listar sus nombres de endpoint correspondientes:
      • assistants
        • no utiliza "default" ya que tiene valores predeterminados definidos por separado de los demás.
      • openAI
      • azureOpenAI
      • google
      • bedrock
      • YourCustomEndpointName
  • Puede omitir valores, en cuyo caso, la aplicación utilizará los valores predeterminados según se define para cada tipo de endpoint listado a continuación.
  • LibreChat cuenta 1 megabyte de la siguiente manera: 1 x 1024 x 1024

Ejemplo

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
serverFileSizeLimitIntegerEl tamaño máximo global para cualquier archivo subido al servidor, especificado en 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
avatarSizeLimitIntegerEl tamaño máximo permitido para las imágenes de avatar, especificado en 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
imageGenerationObjectConfiguración relacionada con la calidad y las dimensiones de la salida de generación de imágenes.Allows configuration of either output size as a percentage relative to some base size or as an explicit pixel dimension.

imageGeneration admite los siguientes parámetros:

  • percentage (Entero)

    • El tamaño de salida de la imagen generada expresado como un porcentaje (por ejemplo, 100 significa el 100% del tamaño base).
    • Utilice esto para escalar la imagen de salida en relación con un tamaño predeterminado u original.
  • px (Entero)

    • Especifica la dimensión de la imagen de salida en píxeles (p. ej., 1024).
    • Utilice esto para establecer explícitamente el tamaño de salida de la imagen generada, independientemente del tamaño base.

Puede establecer solo uno de estos parámetros (percentage o px), no ambos, dependiendo de su caso de uso.

Ejemplo de configuración:

fileConfig:
  imageGeneration:
    percentage: 100
    px: 1024

fileTokenLimit

KeyTypeDescriptionExample
fileTokenLimitNumberNúmero máximo de tokens de archivos de texto a incluir en los prompts antes del truncamiento.fileTokenLimit: 100000

Descripción: Al adjuntar contenido de texto, LibreChat trunca el texto en tiempo de ejecución según el límite de tokens configurado justo antes de la construcción del prompt.

Predeterminado: 100000

fileConfig:
  fileTokenLimit: 100000

ocr

KeyTypeDescriptionExample
ocrObjectConfiguración para el procesamiento de archivos mediante Reconocimiento Óptico de Caracteres (OCR).Configures which file types are processed using OCR.

Descripción: La sección ocr configura qué tipos de archivos deben procesarse utilizando la funcionalidad OCR para extraer texto de documentos visuales.

Nota: Esta sección controla la coincidencia de tipos de archivo para el procesamiento OCR. Para habilitar las capacidades de agente y configurar los servicios de OCR, consulte:

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista de patrones de tipo MIME para archivos que deben procesarse con OCR.Uses regular expressions to match file types.

Predeterminado: Imágenes, archivos PDF y documentos de 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
textObjectConfiguración para el análisis directo de archivos de texto sin OCR.Configures which file types are processed as plain text files for direct content extraction.

Descripción: La sección text configura qué tipos de archivo deben procesarse mediante extracción directa de texto.

Nota: El análisis de texto es el método predeterminado utilizado por la función "Upload as Text" (controlada por la capacidad context). Primero intenta utilizar la biblioteca de análisis de texto de la RAG API y, si la RAG API no está conectada, recurre a un método de extracción de texto más sencillo sin requerir servicios externos. Consulta Upload as Text para obtener más información.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista de patrones de tipo MIME para archivos que deben analizarse como texto plano.Uses regular expressions to match file types.

Predeterminado: Todos los archivos de texto y lenguajes de programación comunes

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
sttObjectConfiguración para el procesamiento de archivos de audio de voz a texto (STT).Configures which audio file types are processed using STT for transcription.

Descripción: La sección stt configura qué tipos de archivos de audio deben procesarse utilizando la funcionalidad de Speech-to-Text para convertir audio a texto.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista de patrones de tipo MIME para archivos de audio que deben ser transcritos con STT.Uses regular expressions to match audio file types.

Predeterminado: Formatos de audio comunes

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

Notas:

  • Los archivos que coinciden con los patrones text se procesan con extracción de texto simple
  • Los archivos que coinciden con los patrones ocr se procesan con el servicio de OCR proporcionado
  • Los archivos que coinciden con los patrones stt se procesan con transcripción de voz a texto (Speech-to-Text).
  • Precedencia de procesamiento: OCR > STT > análisis de texto > fallback
  • Los archivos que no coincidan con ningún patrón recurrirán al análisis de texto.

Prioridad de procesamiento de archivos

LibreChat procesa los archivos subidos basándose en la coincidencia de tipo MIME con el siguiente orden de prioridad:

  1. OCR - Si el archivo coincide con ocr.supportedMimeTypes Y OCR está configurado
  2. STT - Si el archivo coincide con stt.supportedMimeTypes Y STT está configurado
  3. Análisis de texto - Si el archivo coincide con text.supportedMimeTypes
  4. Fallback - Análisis de texto como último recurso

Este orden de procesamiento garantiza una calidad de extracción óptima mientras mantiene la funcionalidad incluso cuando los servicios especializados (OCR/STT) no están configurados.

Ejemplos de procesamiento

Archivo PDF con OCR configurado:

  • El archivo coincide con ocr.supportedMimeTypes
  • Utiliza OCR para extraer texto
  • Mejor calidad para PDFs escaneados e imágenes

Archivo PDF sin OCR configurado:

  • El archivo coincide con text.supportedMimeTypes (o utiliza el respaldo)
  • Utiliza la biblioteca de análisis de texto
  • Funciona bien para PDFs digitales con texto seleccionable

Archivo de Python:

  • El archivo coincide con text.supportedMimeTypes
  • Utiliza análisis de texto (no se requiere OCR)
  • Extracción directa de texto

Archivo de audio con STT configurado:

  • El archivo coincide con stt.supportedMimeTypes
  • Utiliza STT para transcribir audio a texto

Archivo de imagen sin OCR configurado:

  • El archivo coincide con ocr.supportedMimeTypes pero OCR no está disponible
  • Recurre al análisis de texto
  • Capacidad de extracción limitada sin OCR

Este sistema de prioridad permite que funciones como "Upload as Text" funcionen sin necesidad de una configuración de OCR, al mismo tiempo que aprovecha el OCR cuando está disponible para una mejor calidad de extracción.

endpoints

KeyTypeDescriptionExample
endpointsRecord/ObjectConfigura los ajustes de manejo de archivos para endpoints individuales, permitiendo la personalización por cada endpoint.Specifies file handling configurations for individual endpoints, allowing customization per endpoint basis.

Descripción: Cada objeto bajo endpoints es un registro que puede tener los siguientes ajustes:

Descripción general

  • disabled
    • Si el manejo de archivos está deshabilitado para el endpoint.
  • fileLimit
    • El número máximo de archivos permitidos por solicitud de carga.
  • fileSizeLimit
    • El tamaño máximo para un solo archivo. En unidades de MB (por ejemplo, use 20 para 20 megabytes)
  • totalSizeLimit
    • El tamaño máximo total para todos los archivos en una sola solicitud. En unidades de MB (por ejemplo, use 20 para 20 megabytes)
  • supportedMimeTypes
    • Una lista de Regular Expressions que especifica qué tipos MIME están permitidos para la carga. Esto se puede personalizar para restringir los tipos de archivo.

disabled

KeyTypeDescriptionExample
disabledBooleanIndica si la carga de archivos está deshabilitada para un endpoint específico.Setting this to `true` prevents any file uploads to the specified endpoint, overriding any other file-related settings.

Predeterminado: false

openAI:
  disabled: true

fileLimit

Clave:

KeyTypeDescriptionExample
fileLimitIntegerEl número máximo de archivos permitidos en una sola solicitud de carga.Helps control the volume of uploads and manage server load.

Predeterminado: Varía según el endpoint

assistants:
  fileLimit: 5

fileSizeLimit

Clave:

KeyTypeDescriptionExample
fileSizeLimitIntegerEl tamaño máximo permitido para cada archivo individual, especificado en megabytes (MB).This limit ensures that no single file exceeds the specified size, allowing for better resource allocation and management.

Predeterminado: Varía según el endpoint

YourCustomEndpointName:
  fileSizeLimit: 1000

totalSizeLimit

Clave:

KeyTypeDescriptionExample
totalSizeLimitIntegerEl tamaño máximo total permitido para todos los archivos en una sola solicitud, especificado en megabytes (MB).This setting is crucial for preventing excessive bandwidth and storage usage by any single upload request.

Predeterminado: Varía según el endpoint

assistants:
  totalSizeLimit: 50

supportedMimeTypes

Clave:

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsUna lista de expresiones regulares que definen los tipos MIME permitidos para la carga.This allows for precise control over the types of files that can be uploaded. Invalid regex is ignored.

Predeterminado: Varía según el endpoint

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

¿Qué te parece esta guía?