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.supportedMimeTypesusam 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:
- O texto é extraído usando análise de texto por padrão (OCR/STT se configurado e o arquivo corresponder)
- O texto extraído é armazenado como parte das instruções de sistema do agente
- O agente pode referenciar este contexto em todas as conversas
- 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 valueConfiguraçã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 strategyInformaçõ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 strategyRequisitos de Configuração:
- Implante um modelo Mistral OCR no Google Vertex AI (por exemplo, mistral-ocr-2505)
- Crie uma conta de serviço com as permissões apropriadas para acessar o endpoint do Vertex AI
- Baixe o arquivo de chave JSON da conta de serviço
- Defina a variável de ambiente
GOOGLE_SERVICE_KEY_FILEusando 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_providedque 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?