OCR dla dokumentów
Dowiedz się, jak skonfigurować optyczne rozpoznawanie znaków (OCR), aby usprawnić ekstrakcję tekstu w funkcjach przesyłania plików w LibreChat.
OCR (Optical Character Recognition) w LibreChat to opcjonalne rozszerzenie służące do ekstrakcji tekstu z plików.
Prześlij jako tekst
Funkcja "Upload as Text" (z poziomu czatu) działa w ten sam sposób:
- Pliki pasujące do
fileConfig.ocr.supportedMimeTypesużywają OCR, jeśli jest dostępny - W przypadku braku konfiguracji OCR, system przełącza się na analizę tekstu
- Szczególnie przydatne w przypadku obrazów z tekstem, zeskanowanych dokumentów oraz złożonych plików PDF
- Priorytet przetwarzania: OCR > STT > analiza tekstu
- Szczegółowe informacje znajdują się w dokumentacji Upload as Text.
Kontekst pliku (dla agentów)
Kiedy przesyłasz pliki przez sekcję File Context w Agent Builder:
- Tekst jest domyślnie wyodrębniany za pomocą parsowania tekstu (OCR/STT, jeśli skonfigurowano i plik jest zgodny)
- Wyodrębniony tekst jest przechowywany jako część instrukcji systemowych agenta
- Agent może odwoływać się do tego kontekstu we wszystkich konwersacjach
- Usługa OCR jest opcjonalna – funkcja działa bez niej, wykorzystując parsowanie tekstu
Pliki przesłane jako "File Context" są przetwarzane w celu wyodrębnienia tekstu, który jest następnie dodawany do instrukcji systemowych Agenta. Jest to idealne rozwiązanie w przypadku dokumentów, plików z kodem, plików PDF lub obrazów z tekstem, gdy potrzebujesz, aby pełna treść tekstowa została uwzględniona w instrukcjach agenta.
Uwaga: Wyodrębniony tekst jest zawarty w instrukcjach systemowych agenta.
Opcjonalna konfiguracja OCR
Zarówno Agent File Context, jak i Upload as Text działają od razu po uruchomieniu, wykorzystując parsowanie tekstu. Aby poprawić jakość ekstrakcji dla obrazów i zeskanowanych dokumentów, możesz opcjonalnie skonfigurować usługę 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"Uwaga: Funkcja context jest domyślnie włączona. Konfiguracja OCR (funkcja ocr) jest wymagana tylko wtedy, gdy chcesz uzyskać lepszą jakość ekstrakcji danych z obrazów i zeskanowanych dokumentów.
Przegląd możliwości OCR
Funkcjonalność OCR w LibreChat umożliwia:
- Wyodrębnianie tekstu z obrazów i dokumentów
- Zachowaj strukturę dokumentu i formatowanie
- Przetwarzaj złożone układy, w tym tekst wielokolumnowy
- Obsługa tabel, równań i innych specjalistycznych treści
- Praca z treściami wielojęzycznymi
Strategie OCR
LibreChat obsługuje wiele strategii OCR, aby sprostać różnym potrzebom i wymaganiom wdrożeniowym. Wybierz strategię, która najlepiej odpowiada Twojej infrastrukturze oraz wymogom zgodności.
1. Mistral OCR (Domyślne)
Domyślna strategia korzysta bezpośrednio z chmurowej usługi API Mistral. Jest to najprostsza konfiguracja, która wymaga jedynie klucza API od Mistral.
Zmienne środowiskowe:
# `.env`
OCR_API_KEY=your-mistral-api-key
# OCR_BASEURL=https://api.mistral.ai/v1 # this is the default valueKonfiguracja:
# `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"Kluczowe funkcje:
- Zachowanie struktury dokumentu: Utrzymuje formatowanie takie jak nagłówki, akapity, listy i tabele
- Obsługa wielu języków: Przetwarza tekst w wielu językach i alfabetach
- Obsługa złożonych układów: Obsługuje tekst wielokolumnowy oraz zawartość mieszaną
- Rozpoznawanie wyrażeń matematycznych: Dokładnie przetwarza równania i wzory
- Szybkie przetwarzanie: Przetwarza do 2000 stron na minutę
Uwagi:
- Koszt: Korzystanie z Mistral OCR może wiązać się z kosztami, ponieważ jest to płatna usługa API (choć mogą być dostępne bezpłatne wersje próbne)
- Prywatność danych: Dane przetwarzane za pośrednictwem Mistral OCR podlegają środowisku chmurowemu Mistral oraz ich warunkom świadczenia usług
- Ograniczenia dokumentu:
- Maksymalny rozmiar pliku: 50 MB
- Maksymalna długość dokumentu: 1000 stron
2. Azure Mistral OCR
W przypadku organizacji korzystających z Azure AI Foundry, można wdrożyć modele Mistral OCR w swojej infrastrukturze Azure. Obecnie model Mistral OCR 2503 jest dostępny do wdrożenia w Azure.
Konfiguracja:
# `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 strategyInformacje o modelu Azure: Możesz zapoznać się z najnowszym modelem Mistral OCR dostępnym w Azure AI Foundry tutaj (wymagana subskrypcja Azure):
https://ai.azure.com/explore/models/mistral-ocr-2503
3. Google Vertex AI Mistral OCR
W przypadku organizacji korzystających z Google Cloud Platform, można wdrożyć modele Mistral OCR w infrastrukturze Google Cloud Vertex AI.
Zmienne środowiskowe:
# `.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": "..."
}'Konfiguracja:
# `librechat.yaml`
ocr:
mistralModel: "mistral-ocr-2505" # Model name as deployed in Vertex AI
strategy: "vertexai_mistral_ocr" # Use Google Vertex AI strategyWymagania konfiguracyjne:
- Wdróż model Mistral OCR w Google Vertex AI (np. mistral-ocr-2505)
- Utwórz konto serwisowe z odpowiednimi uprawnieniami, aby uzyskać dostęp do endpoint Vertex AI
- Pobierz plik klucza JSON konta serwisowego
- Ustaw zmienną środowiskową
GOOGLE_SERVICE_KEY_FILEprzy użyciu jednej z obsługiwanych metod
4. Niestandardowe OCR (Planowane)
Wsparcie dla niestandardowych dostawców OCR oraz strategii definiowanych przez użytkownika jest planowane w przyszłych wydaniach.
5. Prześlij pliki do dostawcy (bezpośrednio)
W przypadku wspieranych dostawców LLM (OpenAI, AzureOpenAI, Anthropic, Google oraz AWS Bedrock) i ich odpowiednich modeli, pliki mogą być teraz przesyłane bezpośrednio do API dostawcy jako załączniki do wiadomości, co pozwala dostawcy na wykorzystanie własnych, natywnych implementacji OCR do przetwarzania plików przy użyciu opcji Upload to Provider w menu rozwijanym załączników.
Obecnie wszyscy pięciu wspomniani dostawcy oferują obsługę obrazów i plików PDF, przy czym Google zapewnia również wsparcie dla plików audio i wideo, gdy są one używane w połączeniu z kompatybilnymi modelami multimodalnymi. AWS Bedrock dodatkowo obsługuje dokumenty w formatach CSV, DOC, DOCX, XLS, XLSX, HTML, TXT oraz Markdown.
Ostrzeżenie dotyczące przesyłania plików PDF w Azure OpenAI
W przypadku punktów końcowych Azure OpenAI, opcja Upload to Provider dla plików PDF jest dostępna tylko podczas korzystania z Responses API. Chat Completions API w Azure OpenAI obsługuje obrazy, ale nie obsługuje załączników w formacie PDF.
Jeśli nie widzisz opcji „Upload to Provider” dla plików PDF w menu rozwijanym załączników na czacie z Azure OpenAI, upewnij się, że parametr Responses API jest włączony w panelu Parameters.
Uwaga: Standardowe endpointy OpenAI obsługują przesyłanie plików PDF zarówno w API Chat Completions, jak i Responses.
Limity przesyłania dokumentów w AWS Bedrock
AWS Bedrock obsługuje przesyłanie dokumentów za pośrednictwem Converse API dla następujących formatów: PDF, CSV, DOC, DOCX, XLS, XLSX, HTML, TXT oraz Markdown (.md)
Ograniczenia:
- Maksymalny rozmiar pliku na dokument: 4.5 MB
- Nazwy plików są oczyszczane, aby były zgodne z wymaganiami Bedrock dotyczącymi nazewnictwa (alfanumeryczne, spacje, myślniki, nawiasy okrągłe, nawiasy kwadratowe; maks. 200 znaków)
Aby uzyskać więcej szczegółów na temat konfiguracji Bedrock, zobacz przewodnik konfiguracji AWS Bedrock.
Szczegółowa konfiguracja
Aby uzyskać dodatkowe, szczegółowe opcje konfiguracji, zobacz OCR Config Object Structure.
Konfiguracja przetwarzania OCR
Kontroluj, które typy plików są przetwarzane za pomocą OCR, używając 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$"Pliki pasujące do tych wzorców będą używać OCR, gdy:
- Przesłano do kontekstu pliku agenta (zawsze, jeśli skonfigurowano OCR)
- Przesłano jako tekst na czacie (jeśli skonfigurowano OCR; w przeciwnym razie następuje powrót do parsowania tekstu)
Aby uzyskać więcej szczegółów na temat konfiguracji przetwarzania plików, zobacz File Config Object Structure.
Przypadki użycia kontekstu plików agenta
Kontekst plików agenta (Agent File Context) jest idealny dla:
- Trwała wiedza agenta (Persistent Agent Knowledge): Dodawaj dokumentację, zasady lub materiały referencyjne do instrukcji systemowych agenta
- Wyspecjalizowani agenci: Twórz agentów z wiedzą dziedzinową na podstawie dokumentów
- Asystenci oparci na dokumentach: Twórz agentów, którzy zawsze odwołują się do określonych instrukcji lub przewodników
- Pliki kodu: Dołącz przykłady kodu lub biblioteki w instrukcjach agenta
- Ustrukturyzowane dane: Dodaj pliki CSV, JSON lub inne ustrukturyzowane dane, do których agent będzie mógł się odwoływać
Gdy OCR jest skonfigurowany, File Context obsługuje również:
- Przetwarzanie zeskanowanych dokumentów: Wyodrębnianie i przechowywanie tekstu z obrazów lub zeskanowanych plików PDF
- Ekstrakcja tekstu z obrazów: Wyodrębnianie tekstu ze zrzutów ekranu lub zdjęć dokumentów
W przypadku pytań dotyczących dokumentów tymczasowych na czacie, zobacz Upload as Text.
Ograniczenia
- Dokładność ekstrakcji tekstu może się różnić w zależności od typu pliku, jakości obrazu, złożoności dokumentu oraz czytelności tekstu.
- Niektóre specjalistyczne formatowania lub nietypowe układy mogą nie zostać idealnie zachowane
- Bardzo duże dokumenty mogą zostać ucięte ze względu na ograniczenia liczby tokenów w używanych modelach AI.
- Aby uzyskać najlepsze rezultaty w przypadku obrazów i zeskanowanych dokumentów, skonfiguruj usługę OCR
Przyszłe ulepszenia
LibreChat planuje rozszerzyć możliwości OCR w przyszłych wydaniach:
- Obsługa niestandardowych dostawców OCR
- Opcja strategii
user_provided, która pozwoli użytkownikom na wybór preferowanej usługi OCR - Integracja z rozwiązaniami OCR typu open-source
- Rozszerzone opcje przetwarzania dokumentów
- Bardziej szczegółowa kontrola nad ustawieniami OCR
- Mistral planuje udostępnić swoje API OCR za pośrednictwem swoich partnerów chmurowych, takich jak GCP i AWS, oraz w ramach samodzielnego hostingu dla organizacji o rygorystycznych wymaganiach dotyczących prywatności danych (źródło)
- LibreChat obecnie nie uwzględnia w swoich odpowiedziach przetworzonej zawartości obrazu z procesu OCR, mimo że usługi takie jak Mistral's OCR API mogą je udostępniać w wynikach. Ta funkcja może zostać dodana w przyszłych aktualizacjach.
Aby uzyskać więcej informacji na temat konfiguracji OCR, zobacz Struktura obiektu konfiguracji OCR.
Jaka jest ta instrukcja?