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

OCR para documentos

Aprende a configurar el Reconocimiento Óptico de Caracteres (OCR) para mejorar la extracción de texto en las funciones de carga de archivos de LibreChat.

OCR (Reconocimiento Óptico de Caracteres) en LibreChat es una mejora opcional para la extracción de texto a partir de archivos.

Cargar como texto

La función "Upload as Text" (desde el chat) funciona de la misma manera:

  • Los archivos que coinciden con fileConfig.ocr.supportedMimeTypes utilizan OCR si está disponible
  • Recurre al análisis de texto si OCR no está configurado
  • Especialmente útil para imágenes con texto, documentos escaneados y archivos PDF complejos
  • Prioridad de procesamiento: OCR > STT > análisis de texto
  • Consulta la documentación de Upload as Text para obtener más detalles.

Contexto de archivo (para agentes)

Cuando subes archivos a través de la sección File Context del Agent Builder:

  1. El texto se extrae mediante análisis de texto de forma predeterminada (OCR/STT si está configurado y el archivo coincide)
  2. El texto extraído se almacena como parte de las instrucciones del sistema del agente
  3. El agente puede hacer referencia a este contexto en todas las conversaciones
  4. El servicio OCR es opcional: la función funciona sin él utilizando análisis de texto

Los archivos subidos como "File Context" se procesan para extraer texto, el cual se añade posteriormente a las instrucciones del sistema del agente. Esto es ideal para documentos, archivos de código, archivos PDF o imágenes con texto donde necesites que el contenido completo del texto se incluya en las instrucciones del agente.

Nota: El texto extraído se incluye en las instrucciones del sistema del agente.

Configuración opcional de OCR

Tanto Agent File Context como Upload as Text funcionan de forma inmediata utilizando el análisis de texto. Para mejorar la calidad de la extracción en imágenes y documentos escaneados, puede configurar opcionalmente un servicio de OCR:

# librechat.yaml
endpoints:
  agents:
    capabilities:
      - "context"  # Enables both agent file context and upload as text
      - "ocr"      # Optionally enhances both with OCR
 
ocr:
  strategy: "mistral_ocr"
  apiKey: "${OCR_API_KEY}"
  baseURL: "https://api.mistral.ai/v1"
  mistralModel: "mistral-ocr-latest"

Nota: La capacidad context está habilitada de forma predeterminada. Solo necesitas configurar OCR (la capacidad ocr) si deseas una calidad de extracción mejorada para imágenes y documentos escaneados.

Descripción general de las capacidades de OCR

La funcionalidad OCR en LibreChat permite:

  • Extraer texto de imágenes y documentos
  • Mantenga la estructura y el formato del documento
  • Procesar diseños complejos, incluyendo texto en varias columnas
  • Manejar tablas, ecuaciones y otro contenido especializado
  • Trabajar con contenido multilingüe

Estrategias de OCR

LibreChat admite múltiples estrategias de OCR para satisfacer diferentes necesidades y requisitos de despliegue. Elija la estrategia que mejor se adapte a su infraestructura y requisitos de cumplimiento.

1. Mistral OCR (Predeterminado)

La estrategia predeterminada utiliza el servicio API en la nube de Mistral directamente. Esta es la configuración más sencilla y solo requiere una clave de API de Mistral.

Variables de entorno:

# `.env`
OCR_API_KEY=your-mistral-api-key
# OCR_BASEURL=https://api.mistral.ai/v1 # this is the default value

Configuración:

# `librechat.yaml`
ocr:
  mistralModel: "mistral-ocr-latest"       # Optional: Specify Mistral model, defaults to "mistral-ocr-latest"
  apiKey: "your-mistral-api-key"           # Optional: Defaults to OCR_API_KEY env variable
  baseURL: "https://api.mistral.ai/v1"     # Optional: Defaults to OCR_BASEURL env variable, or Mistral's API if no variable set
  strategy: "mistral_ocr"                  # Optional: Defaults to "mistral_ocr"

Características clave:

  • Preservación de la estructura del documento: Mantiene el formato como encabezados, párrafos, listas y tablas
  • Soporte multilingüe: Procesa texto en múltiples idiomas y alfabetos
  • Manejo de diseños complejos: Maneja texto en varias columnas y contenido mixto
  • Reconocimiento de expresiones matemáticas: Procesa ecuaciones y fórmulas con precisión
  • Procesamiento de alta velocidad: Procesa hasta 2000 páginas por minuto

Consideraciones:

  • Costo: El uso de Mistral OCR puede generar costos, ya que es un servicio de API de pago (aunque es posible que haya pruebas gratuitas disponibles).
  • Privacidad de datos: Los datos procesados a través de Mistral OCR están sujetos al entorno en la nube de Mistral y a sus términos de servicio.
  • Limitaciones del documento:
    • Tamaño máximo de archivo: 50 MB
    • Longitud máxima del documento: 1.000 páginas

2. Azure Mistral OCR

Para las organizaciones que utilizan Azure AI Foundry, pueden implementar modelos Mistral OCR en su infraestructura de Azure. Actualmente, el modelo Mistral OCR 2503 está disponible para su implementación en Azure.

Configuración:

# `librechat.yaml`
ocr:
  mistralModel: "deployed-mistral-ocr-2503"              # Should match your Azure deployment name
  apiKey: "${AZURE_MISTRAL_OCR_API_KEY}"                 # Reference to your Azure API key in .env
  baseURL: "https://your-deployed-endpoint.models.ai.azure.com/v1"  # Your Azure endpoint
  strategy: "azure_mistral_ocr"                          # Use Azure strategy

Información del modelo Azure: Puedes explorar el último modelo Mistral OCR disponible en Azure AI Foundry aquí (requiere suscripción a Azure):

https://ai.azure.com/explore/models/mistral-ocr-2503

3. Google Vertex AI Mistral OCR

Para organizaciones que utilizan Google Cloud Platform, pueden implementar modelos Mistral OCR en su infraestructura de Google Cloud Vertex AI.

Variables de entorno:

# `.env`
# Option 1: File path
GOOGLE_SERVICE_KEY_FILE=/path/to/your/service-account-key.json
 
# Option 2: URL to fetch the key
GOOGLE_SERVICE_KEY_FILE=https://your-secure-server.com/service-account-key.json
 
# Option 3: Base64 encoded JSON
GOOGLE_SERVICE_KEY_FILE=eyJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsICJwcm9qZWN0X2lkIjogInlvdXItcHJvamVjdC1pZCIsIC4uLn0=
 
# Option 4: Raw JSON string
GOOGLE_SERVICE_KEY_FILE='{
  "type": "service_account",
  "project_id": "your-project-id",
  "private_key_id": "...",
  "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
  "client_email": "...",
  "client_id": "...",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "..."
}'

Configuración:

# `librechat.yaml`
ocr:
  mistralModel: "mistral-ocr-2505"                        # Model name as deployed in Vertex AI
  strategy: "vertexai_mistral_ocr"                       # Use Google Vertex AI strategy

Requisitos de configuración:

  1. Desplegar un modelo Mistral OCR en Google Vertex AI (p. ej., mistral-ocr-2505)
  2. Cree una cuenta de servicio con los permisos adecuados para acceder al endpoint de Vertex AI
  3. Descargue el archivo de clave JSON de la cuenta de servicio
  4. Establezca la variable de entorno GOOGLE_SERVICE_KEY_FILE utilizando uno de los métodos admitidos

4. OCR personalizado (Planeado)

El soporte para proveedores de OCR personalizados y estrategias definidas por el usuario está planificado para futuras versiones.

5. Subir archivos al proveedor (Directo)

Para los proveedores de LLM compatibles (OpenAI, AzureOpenAI, Anthropic, Google y AWS Bedrock) y sus respectivos modelos, los archivos ahora pueden enviarse directamente a las API de los proveedores como archivos adjuntos en los mensajes, lo que permite al proveedor utilizar sus propias implementaciones nativas de OCR para analizar los archivos mediante la opción Upload to Provider en el menú desplegable de archivos adjuntos.

Actualmente, los cinco proveedores mencionados anteriormente ofrecen soporte para imágenes y archivos PDF, y Google también incluye soporte para archivos de audio y video cuando se utilizan junto con modelos multimodales compatibles. AWS Bedrock admite adicionalmente documentos CSV, DOC, DOCX, XLS, XLSX, HTML, TXT y Markdown.

Advertencia sobre la carga de PDF en Azure OpenAI

Para los endpoints de Azure OpenAI, la opción Upload to Provider para archivos PDF solo está disponible cuando se utiliza la Responses API. La Chat Completions API de Azure OpenAI admite imágenes, pero no admite archivos adjuntos PDF.

Si no ves 'Upload to Provider' como una opción para archivos PDF en el menú desplegable de archivos adjuntos de tu chat con Azure OpenAI, asegúrate de que el parámetro de la API Responses esté habilitado en el panel de Parameters.

Nota: Los endpoints estándar de OpenAI admiten la carga de archivos PDF tanto en las API de Chat Completions como en las de Responses.

Límites de carga de documentos de AWS Bedrock

AWS Bedrock admite la carga de documentos a través de la Converse API para los siguientes formatos: PDF, CSV, DOC, DOCX, XLS, XLSX, HTML, TXT y Markdown (.md)

Restricciones:

  • Tamaño máximo de archivo por documento: 4.5 MB
  • Los nombres de archivo se depuran para cumplir con los requisitos de nomenclatura de Bedrock (alfanuméricos, espacios, guiones, paréntesis, corchetes; máximo 200 caracteres)

Para obtener más detalles sobre la configuración de Bedrock, consulta la guía de configuración de AWS Bedrock.

Configuración detallada

Para opciones de configuración adicionales y detalladas, consulte la OCR Config Object Structure.

Configuración de procesamiento OCR

Controle qué tipos de archivos se procesan con OCR usando fileConfig:

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$"

Los archivos que coincidan con estos patrones utilizarán OCR cuando:

  • Subido al contexto de archivo del agente (siempre, si OCR está configurado)
  • Subido como texto en el chat (si OCR está configurado; de lo contrario, recurre al análisis de texto)

Para obtener más detalles sobre la configuración del procesamiento de archivos, consulta File Config Object Structure.

Casos de uso para el contexto de archivos de agentes

El contexto de archivos del agente (Agent File Context) es ideal para:

  • Conocimiento persistente del agente: Agregue documentación, políticas o materiales de referencia a las instrucciones del sistema de un agente
  • Agentes especializados: Cree agentes con conocimientos específicos de dominio a partir de documentos
  • Asistentes basados en documentos: Cree agentes que siempre hagan referencia a manuales o guías específicos
  • Archivos de código: Incluya ejemplos de código o bibliotecas en las instrucciones del agente
  • Datos estructurados: Añada CSV, JSON u otros datos estructurados para que el agente los consulte

Cuando OCR está configurado, File Context también maneja:

  • Procesamiento de documentos escaneados: Extraer y almacenar texto de imágenes o archivos PDF escaneados
  • Extracción de texto de imágenes: Extrae texto de capturas de pantalla o fotos de documentos

Para preguntas sobre documentos temporales en el chat, consulta Upload as Text.

Limitaciones

  • La precisión de la extracción de texto puede variar según el tipo de archivo, la calidad de la imagen, la complejidad del documento y la claridad del texto.
  • Es posible que algunos formatos especializados o diseños inusuales no se conserven a la perfección.
  • Los documentos muy extensos pueden truncarse debido a las limitaciones de tokens de los modelos de IA subyacentes.
  • Para obtener los mejores resultados con imágenes y documentos escaneados, configure un servicio de OCR

Mejoras futuras

LibreChat planea expandir las capacidades de OCR en futuras versiones:

  • Soporte para proveedores de OCR personalizados
  • Una opción de estrategia user_provided que permitirá a los usuarios elegir su servicio de OCR preferido
  • Integración con soluciones OCR de código abierto
  • Opciones mejoradas de procesamiento de documentos
  • Control más granular sobre la configuración de OCR
  • Mistral planea hacer que su API de OCR esté disponible a través de sus socios en la nube, como GCP y AWS, y mediante autoalojamiento empresarial para organizaciones con requisitos estrictos de privacidad de datos (fuente)
  • LibreChat actualmente no incluye el contenido de imagen analizado del proceso de OCR en sus respuestas, a pesar de que servicios como la API de OCR de Mistral pueden proporcionar estos resultados. Es posible que esta función sea compatible en futuras actualizaciones.

Para obtener más información sobre la configuración de OCR, consulte la Estructura del objeto de configuración OCR.

¿Qué te parece esta guía?