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

OCR para Documentos

Aprenda a configurar o Reconhecimento Óptico de Caracteres (OCR) para aprimorar a extração de texto nos recursos de upload de arquivos do LibreChat.

OCR (Optical Character Recognition) no LibreChat é um aprimoramento opcional para extração de texto de arquivos.

Upload como Texto

O recurso "Upload as Text" (do chat) funciona da mesma maneira:

  • Arquivos que correspondem a fileConfig.ocr.supportedMimeTypes usam OCR se disponível
  • Recorre à análise de texto caso o OCR não esteja configurado
  • Especialmente útil para imagens com texto, documentos digitalizados e PDFs complexos
  • Prioridade de processamento: OCR > STT > análise de texto
  • Consulte a documentação Upload as Text para obter detalhes.

Contexto de arquivo (para agentes)

Quando você faz upload de arquivos através da seção File Context do Agent Builder:

  1. O texto é extraído usando análise de texto por padrão (OCR/STT se configurado e o arquivo corresponder)
  2. O texto extraído é armazenado como parte das instruções de sistema do agente
  3. O agente pode referenciar este contexto em todas as conversas
  4. O serviço de OCR é opcional - o recurso funciona sem ele usando análise de texto

Arquivos enviados como "File Context" são processados para extrair texto, que é então adicionado às instruções de sistema do Agent. Isso é ideal para documentos, arquivos de código, PDFs ou imagens com texto onde você precisa que o conteúdo completo do texto seja incluído nas instruções do agent.

Nota: O texto extraído é incluído nas instruções de sistema do agente.

Configuração Opcional de OCR

Tanto o Agent File Context quanto o Upload as Text funcionam nativamente usando análise de texto. Para melhorar a qualidade da extração de imagens e documentos digitalizados, você pode configurar opcionalmente um serviço 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: A capacidade context está habilitada por padrão. Você só precisa configurar o OCR (a capacidade ocr) se desejar uma qualidade de extração aprimorada para imagens e documentos digitalizados.

Visão geral das capacidades de OCR

A funcionalidade de OCR no LibreChat permite:

  • Extrair texto de imagens e documentos
  • Mantenha a estrutura e a formatação do documento
  • Processar layouts complexos, incluindo texto em múltiplas colunas
  • Lidar com tabelas, equações e outros conteúdos especializados
  • Trabalhe com conteúdo multilíngue

Estratégias de OCR

O LibreChat suporta múltiplas estratégias de OCR para atender a diferentes necessidades e requisitos de implantação. Escolha a estratégia que melhor se adapta à sua infraestrutura e aos seus requisitos de conformidade.

1. Mistral OCR (Padrão)

A estratégia padrão utiliza o serviço de API em nuvem da Mistral diretamente. Esta é a configuração mais simples e requer apenas uma chave de API da Mistral.

Variáveis de Ambiente:

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

Configuração:

# `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"

Principais Recursos:

  • Preservação da Estrutura do Documento: Mantém a formatação como cabeçalhos, parágrafos, listas e tabelas
  • Suporte multilíngue: Processa texto em vários idiomas e scripts
  • Tratamento de Layout Complexo: Lida com texto em múltiplas colunas e conteúdo misto
  • Reconhecimento de Expressões Matemáticas: Processa equações e fórmulas com precisão
  • Processamento de Alta Velocidade: Processa até 2000 páginas por minuto

Considerações:

  • Custo: O uso do Mistral OCR pode incorrer em custos, pois é um serviço de API pago (embora testes gratuitos possam estar disponíveis)
  • Privacidade de Dados: Os dados processados através do Mistral OCR estão sujeitos ao ambiente de nuvem da Mistral e aos seus termos de serviço
  • Limitações do Documento:
    • Tamanho máximo de arquivo: 50 MB
    • Comprimento máximo do documento: 1.000 páginas

2. Azure Mistral OCR

Para organizações que utilizam o Azure AI Foundry, você pode implantar modelos Mistral OCR em sua infraestrutura Azure. Atualmente, o modelo Mistral OCR 2503 está disponível para implantação no Azure.

Configuração:

# `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

Informações do Modelo Azure: Você pode explorar o modelo Mistral OCR mais recente disponível no Azure AI Foundry aqui (requer assinatura do Azure):

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

3. Google Vertex AI Mistral OCR

Para organizações que utilizam o Google Cloud Platform, você pode implantar modelos Mistral OCR na sua infraestrutura do Google Cloud Vertex AI.

Variáveis de Ambiente:

# `.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": "..."
}'

Configuração:

# `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 Configuração:

  1. Implante um modelo Mistral OCR no Google Vertex AI (por exemplo, mistral-ocr-2505)
  2. Crie uma conta de serviço com as permissões apropriadas para acessar o endpoint do Vertex AI
  3. Baixe o arquivo de chave JSON da conta de serviço
  4. Defina a variável de ambiente GOOGLE_SERVICE_KEY_FILE usando um dos métodos suportados

4. OCR Personalizado (Planejado)

O suporte para provedores de OCR personalizados e estratégias definidas pelo usuário está planejado para versões futuras.

5. Fazer upload de arquivos para o provedor (Direto)

Para provedores de LLM suportados (OpenAI, AzureOpenAI, Anthropic, Google e AWS Bedrock) e seus respectivos modelos, os arquivos agora podem ser enviados diretamente para as APIs dos provedores como anexos de mensagem, permitindo que o provedor utilize suas próprias implementações nativas de OCR para analisar arquivos usando a opção Upload to Provider no menu suspenso de anexo de arquivo.

Atualmente, todos os cinco provedores mencionados oferecem suporte para imagens e PDFs, com o Google também incluindo suporte para arquivos de áudio e vídeo quando usados em conjunto com modelos multimodais compatíveis. O AWS Bedrock oferece suporte adicional para documentos CSV, DOC, DOCX, XLS, XLSX, HTML, TXT e Markdown.

Aviso sobre Upload de PDF no Azure OpenAI

Para endpoints do Azure OpenAI, a opção Upload to Provider para arquivos PDF só está disponível ao usar a Responses API. A Chat Completions API do Azure OpenAI oferece suporte a imagens, mas não oferece suporte a anexos de arquivos PDF.

Se você não vir 'Upload to Provider' como uma opção para PDFs no menu suspenso de anexos do seu chat com Azure OpenAI, certifique-se de que o parâmetro Responses API esteja ativado no painel Parameters.

Nota: Os endpoints padrão da OpenAI suportam uploads de PDF tanto nas APIs de Chat Completions quanto nas de Responses.

Limites de Upload de Documentos do AWS Bedrock

AWS Bedrock oferece suporte a uploads de documentos via Converse API para os seguintes formatos: PDF, CSV, DOC, DOCX, XLS, XLSX, HTML, TXT e Markdown (.md)

Restrições:

  • Tamanho máximo de arquivo por documento: 4.5 MB
  • Os nomes dos arquivos são higienizados para estarem em conformidade com os requisitos de nomenclatura do Bedrock (alfanumérico, espaços, hifens, parênteses, colchetes; máximo de 200 caracteres)

Para mais detalhes sobre a configuração do Bedrock, consulte o guia de configuração do AWS Bedrock.

Configuração Detalhada

Para opções de configuração adicionais e detalhadas, consulte a OCR Config Object Structure.

Configuração de Processamento de OCR

Controle quais tipos de arquivo são processados com 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$"

Arquivos que correspondem a esses padrões usarão OCR quando:

  • Enviado para o contexto de arquivo do agente (sempre, se o OCR estiver configurado)
  • Enviado como texto no chat (se o OCR estiver configurado; caso contrário, recorre à análise de texto)

Para mais detalhes sobre a configuração de processamento de arquivos, consulte File Config Object Structure.

Casos de uso para o contexto de arquivos de agentes

O Contexto de Arquivo do Agente é ideal para:

  • Conhecimento Persistente do Agente: Adicione documentação, políticas ou materiais de referência às instruções de sistema de um agente
  • Agentes Especializados: Crie agentes com conhecimento específico de domínio a partir de documentos
  • Assistentes Baseados em Documentos: Crie agentes que sempre consultam manuais ou guias específicos
  • Code Files: Inclua exemplos de código ou bibliotecas nas instruções do agente
  • Dados Estruturados: Adicione CSV, JSON ou outros dados estruturados para o agente consultar

Quando o OCR está configurado, o File Context também lida com:

  • Processamento de Documentos Escaneados: Extraia e armazene texto de imagens ou PDFs escaneados
  • Extração de Texto de Imagens: Extraia texto de capturas de tela ou fotos de documentos

Para perguntas sobre documentos temporários no chat, veja Upload as Text.

Limitações

  • A precisão da extração de texto pode variar dependendo do tipo de arquivo, qualidade da imagem, complexidade do documento e clareza do texto.
  • Algumas formatações especializadas ou layouts incomuns podem não ser preservados perfeitamente.
  • Documentos muito grandes podem ser truncados devido às limitações de tokens dos modelos de IA subjacentes.
  • Para obter melhores resultados com imagens e documentos digitalizados, configure um serviço de OCR

Melhorias Futuras

O LibreChat planeja expandir as capacidades de OCR em versões futuras:

  • Suporte para provedores de OCR personalizados
  • Uma opção de estratégia user_provided que permitirá aos usuários escolherem seu serviço de OCR preferido
  • Integração com soluções de OCR de código aberto
  • Opções aprimoradas de processamento de documentos
  • Controle mais granular sobre as configurações de OCR
  • A Mistral planeja disponibilizar sua API de OCR por meio de seus parceiros de nuvem, como GCP e AWS, e auto-hospedagem corporativa para organizações com requisitos rigorosos de privacidade de dados (fonte)
  • O LibreChat atualmente não inclui o conteúdo de imagem analisado do processo de OCR em suas respostas, embora serviços como a Mistral's OCR API may provide possam fornecê-los no resultado. Este recurso poderá ser suportado em futuras atualizações.

Para mais informações sobre como configurar o OCR, consulte a Estrutura do Objeto de Configuração OCR.

Como está este guia?