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

OCR per documenti

Scopri come configurare il riconoscimento ottico dei caratteri (OCR) per migliorare l'estrazione del testo nelle funzionalità di caricamento file di LibreChat.

L'OCR (Optical Character Recognition) in LibreChat è un miglioramento opzionale per l'estrazione di testo dai file.

Carica come testo

La funzionalità "Upload as Text" (dalla chat) funziona allo stesso modo:

  • I file che corrispondono a fileConfig.ocr.supportedMimeTypes utilizzano l'OCR se disponibile
  • Ricorre all'analisi del testo se OCR non è configurato
  • Particolarmente utile per immagini con testo, documenti scansionati e PDF complessi
  • Priorità di elaborazione: OCR > STT > text parsing
  • Consulta la documentazione Upload as Text per i dettagli.

Contesto del file (per gli agenti)

Quando carichi file attraverso la sezione File Context dell'Agent Builder:

  1. Il testo viene estratto utilizzando il parsing del testo per impostazione predefinita (OCR/STT se configurato e se il file corrisponde)
  2. Il testo estratto viene archiviato come parte delle istruzioni di sistema dell'agente
  3. L'agente può fare riferimento a questo contesto in tutte le conversazioni
  4. Il servizio OCR è facoltativo - la funzionalità funziona senza di esso utilizzando l'analisi del testo

I file caricati come "File Context" vengono elaborati per estrarre il testo, che viene poi aggiunto alle istruzioni di sistema dell'Agent. Questa soluzione è ideale per documenti, file di codice, PDF o immagini contenenti testo di cui è necessario includere l'intero contenuto nelle istruzioni dell'agent.

Nota: Il testo estratto è incluso nelle istruzioni di sistema dell'agente.

Configurazione OCR opzionale

Sia Agent File Context che Upload as Text funzionano immediatamente utilizzando il parsing del testo. Per migliorare la qualità dell'estrazione per immagini e documenti scansionati, è possibile configurare facoltativamente un servizio 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 funzionalità context è abilitata per impostazione predefinita. È necessario configurare l'OCR (la funzionalità ocr) solo se si desidera una qualità di estrazione migliorata per immagini e documenti scansionati.

Panoramica delle funzionalità OCR

La funzionalità OCR in LibreChat consente:

  • Estrai testo da immagini e documenti
  • Mantenere la struttura e la formattazione del documento
  • Elabora layout complessi, inclusi testi a più colonne
  • Gestisci tabelle, equazioni e altri contenuti specializzati
  • Lavorare con contenuti multilingue

Strategie OCR

LibreChat supporta diverse strategie OCR per soddisfare differenti esigenze e requisiti di distribuzione. Scegli la strategia più adatta alla tua infrastruttura e ai tuoi requisiti di conformità.

1. Mistral OCR (Predefinito)

La strategia predefinita utilizza direttamente il servizio API cloud di Mistral. Questa è la configurazione più semplice e richiede solo una chiave API di Mistral.

Variabili d'ambiente:

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

Configurazione:

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

Caratteristiche principali:

  • Preservazione della struttura del documento: Mantiene la formattazione come intestazioni, paragrafi, elenchi e tabelle
  • Supporto multilingue: Elabora testo in molteplici lingue e sistemi di scrittura
  • Gestione di layout complessi: Gestisce testo a più colonne e contenuti misti
  • Riconoscimento di espressioni matematiche: Elabora accuratamente equazioni e formule
  • Elaborazione ad alta velocità: Elabora fino a 2000 pagine al minuto

Considerazioni:

  • Costo: L'utilizzo di Mistral OCR può comportare dei costi poiché si tratta di un servizio API a pagamento (sebbene possano essere disponibili prove gratuite).
  • Privacy dei dati: I dati elaborati tramite Mistral OCR sono soggetti all'ambiente cloud di Mistral e ai relativi termini di servizio
  • Limitazioni del documento:
    • Dimensione massima del file: 50 MB
    • Lunghezza massima del documento: 1.000 pagine

2. Azure Mistral OCR

Per le organizzazioni che utilizzano Azure AI Foundry, è possibile distribuire i modelli Mistral OCR sulla propria infrastruttura Azure. Attualmente, il modello Mistral OCR 2503 è disponibile per la distribuzione su Azure.

Configurazione:

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

Informazioni sul modello Azure: Puoi esplorare l'ultimo modello Mistral OCR disponibile su Azure AI Foundry qui (richiede un abbonamento Azure):

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

3. Google Vertex AI Mistral OCR

Per le organizzazioni che utilizzano Google Cloud Platform, è possibile distribuire i modelli Mistral OCR nell'infrastruttura Google Cloud Vertex AI.

Variabili d'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": "..."
}'

Configurazione:

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

Requisiti di configurazione:

  1. Distribuisci un modello Mistral OCR su Google Vertex AI (ad esempio, mistral-ocr-2505)
  2. Crea un service account con le autorizzazioni appropriate per accedere all'endpoint Vertex AI
  3. Scarica il file della chiave JSON dell'account di servizio
  4. Imposta la variabile d'ambiente GOOGLE_SERVICE_KEY_FILE utilizzando uno dei metodi supportati

4. OCR personalizzato (Pianificato)

Il supporto per provider OCR personalizzati e strategie definite dall'utente è previsto per le prossime versioni.

5. Caricamento file al provider (Diretto)

Per i provider LLM supportati (OpenAI, AzureOpenAI, Anthropic, Google e AWS Bedrock) e i relativi modelli, i file possono ora essere inviati direttamente alle API del provider come allegati ai messaggi, consentendo al provider di utilizzare le proprie implementazioni OCR native per analizzare i file tramite l'opzione Upload to Provider nel menu a discesa degli allegati.

Attualmente tutti e cinque i provider sopra menzionati offrono supporto per immagini e PDF, con Google che include anche il supporto per file audio e video quando utilizzati in combinazione con modelli multimodali compatibili. AWS Bedrock supporta inoltre documenti CSV, DOC, DOCX, XLS, XLSX, HTML, TXT e Markdown.

Avvertenza sul caricamento di PDF con Azure OpenAI

Per gli endpoint Azure OpenAI, l'opzione Upload to Provider per i file PDF è disponibile solo quando si utilizza la Responses API. La Chat Completions API di Azure OpenAI supporta le immagini ma non supporta gli allegati di file PDF.

Se non vedi 'Upload to Provider' come opzione per i PDF nel menu a discesa degli allegati della tua chat con Azure OpenAI, assicurati che il parametro Responses API sia abilitato nel pannello Parameters.

Nota: Gli endpoint standard OpenAI supportano il caricamento di PDF sia nelle API Chat Completions che in quelle Responses.

Limiti di caricamento documenti AWS Bedrock

AWS Bedrock supporta il caricamento di documenti tramite la Converse API per i seguenti formati: PDF, CSV, DOC, DOCX, XLS, XLSX, HTML, TXT e Markdown (.md)

Vincoli:

  • Dimensione massima del file per documento: 4.5 MB
  • I nomi dei file vengono sanificati per conformarsi ai requisiti di denominazione di Bedrock (alfanumerici, spazi, trattini, parentesi tonde, parentesi quadre; massimo 200 caratteri)

Per maggiori dettagli sulla configurazione di Bedrock, consulta la guida alla configurazione di AWS Bedrock.

Configurazione dettagliata

Per ulteriori opzioni di configurazione dettagliate, consultare la OCR Config Object Structure.

Configurazione dell'elaborazione OCR

Controlla quali tipi di file vengono elaborati con OCR utilizzando 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$"

I file che corrispondono a questi pattern utilizzeranno l'OCR quando:

  • Caricato nel contesto del file dell'agente (sempre, se l'OCR è configurato)
  • Caricato come testo nella chat (se l'OCR è configurato; altrimenti ricorre all'analisi del testo)

Per ulteriori dettagli sulla configurazione dell'elaborazione dei file, consulta File Config Object Structure.

Casi d'uso per il contesto dei file degli Agent

Il contesto dei file dell'agente (Agent File Context) è ideale per:

  • Conoscenza persistente dell'agente: Aggiungi documentazione, policy o materiali di riferimento alle istruzioni di sistema di un agente
  • Agenti specializzati: Crea agenti con conoscenze specifiche di dominio a partire da documenti
  • Assistenti basati su documenti: Crea agenti che fanno sempre riferimento a manuali o guide specifici
  • File di codice: Includi esempi di codice o librerie nelle istruzioni dell'agente
  • Dati strutturati: Aggiungi CSV, JSON o altri dati strutturati a cui l'agente può fare riferimento

Quando l'OCR è configurato, il File Context gestisce anche:

  • Elaborazione di documenti scansionati: Estrai e archivia il testo da immagini o PDF scansionati
  • Estrazione testo da immagini: Estrai testo da screenshot o foto di documenti

Per domande temporanee sui documenti in chat, consulta Upload as Text.

Limitazioni

  • La precisione dell'estrazione del testo può variare a seconda del tipo di file, della qualità dell'immagine, della complessità del documento e della chiarezza del testo.
  • Alcune formattazioni specializzate o layout insoliti potrebbero non essere preservati perfettamente
  • I documenti molto grandi potrebbero essere troncati a causa delle limitazioni dei token dei modelli AI sottostanti.
  • Per risultati ottimali con immagini e documenti scansionati, configura un servizio OCR

Miglioramenti futuri

LibreChat prevede di espandere le funzionalità OCR nelle versioni future:

  • Supporto per provider OCR personalizzati
  • Un'opzione di strategia user_provided che consentirà agli utenti di scegliere il loro servizio OCR preferito
  • Integrazione con soluzioni OCR open-source
  • Opzioni avanzate di elaborazione documenti
  • Controllo più granulare sulle impostazioni OCR
  • Mistral prevede di rendere la propria API OCR disponibile tramite i propri partner cloud, come GCP e AWS, e tramite self-hosting aziendale per le organizzazioni con rigorosi requisiti di privacy dei dati (fonte)
  • LibreChat attualmente non include il contenuto dell'immagine analizzato dal processo OCR nelle sue risposte, anche se servizi come Mistral's OCR API may provide potrebbero fornirli nel risultato. Questa funzionalità potrebbe essere supportata in futuri aggiornamenti.

Per ulteriori informazioni sulla configurazione dell'OCR, consulta la Struttura dell'oggetto di configurazione OCR.

Com’è questa guida?