OCR cho Tài liệu
Tìm hiểu cách cấu hình Nhận dạng ký tự quang học (OCR) để tăng cường khả năng trích xuất văn bản trong các tính năng tải tệp lên của LibreChat.
OCR (Optical Character Recognition) trong LibreChat là một tính năng nâng cao tùy chọn để trích xuất văn bản từ các tệp tin.
Tải lên dưới dạng văn bản
Tính năng "Upload as Text" (từ khung chat) hoạt động theo cách tương tự:
- Các tệp khớp với
fileConfig.ocr.supportedMimeTypessẽ sử dụng OCR nếu có sẵn - Sử dụng phương thức phân tích văn bản dự phòng nếu OCR chưa được cấu hình
- Đặc biệt hữu ích cho hình ảnh có chứa văn bản, tài liệu đã quét và các tệp PDF phức tạp
- Thứ tự ưu tiên xử lý: OCR > STT > phân tích văn bản
- Xem tài liệu Upload as Text để biết thêm chi tiết.
Ngữ cảnh tệp (cho các tác nhân)
Khi bạn tải tệp lên thông qua phần File Context của Agent Builder:
- Văn bản được trích xuất bằng cách phân tích cú pháp văn bản theo mặc định (OCR/STT nếu được cấu hình và tệp khớp với yêu cầu)
- Văn bản được trích xuất sẽ được lưu trữ như một phần trong các hướng dẫn hệ thống của tác nhân (agent).
- Agent có thể tham chiếu ngữ cảnh này trong tất cả các cuộc hội thoại
- Dịch vụ OCR là tùy chọn - tính năng này vẫn hoạt động mà không cần nó bằng cách sử dụng phân tích cú pháp văn bản
Các tệp được tải lên dưới dạng "File Context" sẽ được xử lý để trích xuất văn bản, sau đó văn bản này sẽ được thêm vào các hướng dẫn hệ thống của Agent. Phương pháp này rất lý tưởng cho các tài liệu, tệp mã nguồn, tệp PDF hoặc hình ảnh có chứa văn bản mà bạn cần đưa toàn bộ nội dung văn bản vào hướng dẫn của agent.
Lưu ý: Văn bản được trích xuất sẽ được đưa vào hướng dẫn hệ thống (system instructions) của tác nhân (agent).
Cấu hình OCR tùy chọn
Cả Agent File Context và Upload as Text đều hoạt động ngay lập tức bằng cách sử dụng tính năng phân tích văn bản. Để nâng cao chất lượng trích xuất cho hình ảnh và tài liệu được quét, bạn có thể tùy chọn cấu hình dịch vụ 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"Lưu ý: Tính năng context được bật theo mặc định. Bạn chỉ cần cấu hình OCR (tính năng ocr) nếu muốn nâng cao chất lượng trích xuất cho hình ảnh và tài liệu được quét.
Tổng quan về các khả năng OCR
Chức năng OCR trong LibreChat cho phép:
- Trích xuất văn bản từ hình ảnh và tài liệu
- Duy trì cấu trúc và định dạng tài liệu
- Xử lý các bố cục phức tạp bao gồm văn bản đa cột
- Xử lý bảng, phương trình và các nội dung chuyên biệt khác
- Làm việc với nội dung đa ngôn ngữ
Các chiến lược OCR
LibreChat hỗ trợ nhiều chiến lược OCR để đáp ứng các nhu cầu và yêu cầu triển khai khác nhau. Hãy chọn chiến lược phù hợp nhất với cơ sở hạ tầng và các yêu cầu tuân thủ của bạn.
1. Mistral OCR (Mặc định)
Chiến lược mặc định sử dụng trực tiếp dịch vụ API đám mây của Mistral. Đây là thiết lập đơn giản nhất và chỉ yêu cầu một khóa API từ Mistral.
Các biến môi trường:
# `.env`
OCR_API_KEY=your-mistral-api-key
# OCR_BASEURL=https://api.mistral.ai/v1 # this is the default valueCấu hình:
# `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"Các tính năng chính:
- Bảo toàn cấu trúc tài liệu: Duy trì định dạng như tiêu đề, đoạn văn, danh sách và bảng
- Hỗ trợ đa ngôn ngữ: Xử lý văn bản bằng nhiều ngôn ngữ và hệ thống chữ viết khác nhau
- Xử lý bố cục phức tạp: Xử lý văn bản nhiều cột và nội dung hỗn hợp
- Nhận dạng biểu thức toán học: Xử lý chính xác các phương trình và công thức
- Xử lý tốc độ cao: Xử lý lên đến 2000 trang mỗi phút
Các lưu ý:
- Chi phí: Việc sử dụng Mistral OCR có thể phát sinh chi phí vì đây là dịch vụ API trả phí (mặc dù có thể có các bản dùng thử miễn phí).
- Quyền riêng tư dữ liệu: Dữ liệu được xử lý thông qua Mistral OCR phải tuân theo môi trường đám mây của Mistral và các điều khoản dịch vụ của họ
- Hạn chế của tài liệu:
- Kích thước tệp tối đa: 50 MB
- Độ dài tài liệu tối đa: 1.000 trang
2. Azure Mistral OCR
Đối với các tổ chức sử dụng Azure AI Foundry, bạn có thể triển khai các mô hình Mistral OCR vào cơ sở hạ tầng Azure của mình. Hiện tại, mô hình Mistral OCR 2503 đã khả dụng để triển khai trên Azure.
Cấu hình:
# `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 strategyThông tin mô hình Azure: Bạn có thể khám phá mô hình Mistral OCR mới nhất hiện có trên Azure AI Foundry tại đây (yêu cầu đăng ký Azure):
https://ai.azure.com/explore/models/mistral-ocr-2503
3. Google Vertex AI Mistral OCR
Đối với các tổ chức sử dụng Google Cloud Platform, bạn có thể triển khai các mô hình Mistral OCR vào cơ sở hạ tầng Google Cloud Vertex AI của mình.
Các biến môi trường:
# `.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": "..."
}'Cấu hình:
# `librechat.yaml`
ocr:
mistralModel: "mistral-ocr-2505" # Model name as deployed in Vertex AI
strategy: "vertexai_mistral_ocr" # Use Google Vertex AI strategyYêu cầu thiết lập:
- Triển khai mô hình Mistral OCR lên Google Vertex AI (ví dụ: mistral-ocr-2505)
- Tạo một tài khoản dịch vụ với các quyền thích hợp để truy cập endpoint Vertex AI
- Tải xuống tệp khóa JSON của tài khoản dịch vụ
- Thiết lập biến môi trường
GOOGLE_SERVICE_KEY_FILEbằng cách sử dụng một trong các phương thức được hỗ trợ
4. OCR tùy chỉnh (Đã lên kế hoạch)
Hỗ trợ cho các nhà cung cấp OCR tùy chỉnh và các chiến lược do người dùng xác định đã được lên kế hoạch cho các bản phát hành trong tương lai.
5. Tải tệp lên nhà cung cấp (Trực tiếp)
Đối với các Nhà cung cấp LLM được hỗ trợ (OpenAI, AzureOpenAI, Anthropic, Google và AWS Bedrock) cùng các mô hình tương ứng của họ, tệp tin giờ đây có thể được gửi trực tiếp đến API của nhà cung cấp dưới dạng tệp đính kèm trong tin nhắn, cho phép nhà cung cấp sử dụng các triển khai OCR gốc của riêng họ để phân tích tệp bằng tùy chọn Upload to Provider trong menu thả xuống của tệp đính kèm.
Hiện tại, tất cả năm nhà cung cấp nêu trên đều hỗ trợ hình ảnh và PDF, trong đó Google cũng bao gồm hỗ trợ cho các tệp âm thanh và video khi được sử dụng kết hợp với các mô hình đa phương thức tương thích. AWS Bedrock còn hỗ trợ thêm các tài liệu CSV, DOC, DOCX, XLS, XLSX, HTML, TXT và Markdown.
Lưu ý về tải lên PDF cho Azure OpenAI
Đối với các endpoint Azure OpenAI, tùy chọn Upload to Provider cho tệp PDF chỉ khả dụng khi sử dụng Responses API. Chat Completions API của Azure OpenAI hỗ trợ hình ảnh nhưng không hỗ trợ tệp đính kèm PDF.
Nếu bạn không thấy 'Upload to Provider' là một tùy chọn cho tệp PDF trong menu thả xuống tệp đính kèm của cuộc trò chuyện với Azure OpenAI, hãy đảm bảo rằng tham số Responses API đã được bật trong bảng Parameters.
Lưu ý: Các endpoint OpenAI tiêu chuẩn hỗ trợ tải lên tệp PDF trong cả API Chat Completions và Responses.
Giới hạn tải lên tài liệu của AWS Bedrock
AWS Bedrock hỗ trợ tải lên tài liệu thông qua Converse API cho các định dạng sau: PDF, CSV, DOC, DOCX, XLS, XLSX, HTML, TXT và Markdown (.md)
Các ràng buộc:
- Kích thước tệp tối đa cho mỗi tài liệu: 4.5 MB
- Tên tệp được làm sạch để tuân thủ các yêu cầu đặt tên của Bedrock (chữ và số, dấu cách, dấu gạch nối, dấu ngoặc đơn, dấu ngoặc vuông; tối đa 200 ký tự)
Để biết thêm chi tiết về cấu hình Bedrock, hãy xem hướng dẫn thiết lập AWS Bedrock.
Cấu hình chi tiết
Để biết thêm các tùy chọn cấu hình chi tiết, hãy xem OCR Config Object Structure.
Cấu hình xử lý OCR
Kiểm soát các loại tệp được xử lý bằng OCR bằng cách sử dụng 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$"Các tệp khớp với các mẫu này sẽ sử dụng OCR khi:
- Được tải lên ngữ cảnh tệp của agent (luôn luôn, nếu OCR đã được cấu hình)
- Được tải lên dưới dạng văn bản trong cuộc trò chuyện (nếu OCR đã được cấu hình; nếu không sẽ quay lại sử dụng phân tích văn bản)
Để biết thêm chi tiết về cấu hình xử lý tệp, hãy xem File Config Object Structure.
Các trường hợp sử dụng cho Ngữ cảnh tệp của Agent
Agent File Context là lựa chọn lý tưởng cho:
- Persistent Agent Knowledge: Thêm tài liệu, chính sách hoặc tài liệu tham khảo vào hướng dẫn hệ thống của một agent
- Các tác nhân chuyên biệt (Specialized Agents): Tạo các tác nhân với kiến thức chuyên môn từ tài liệu
- Trợ lý dựa trên tài liệu: Xây dựng các tác nhân luôn tham chiếu đến các hướng dẫn hoặc tài liệu cụ thể
- Code Files: Bao gồm các ví dụ về mã nguồn hoặc thư viện trong hướng dẫn của tác nhân (agent)
- Dữ liệu có cấu trúc: Thêm CSV, JSON hoặc các dữ liệu có cấu trúc khác để tác nhân (agent) tham chiếu
Khi OCR được cấu hình, File Context cũng xử lý:
- Xử lý tài liệu đã quét: Trích xuất và lưu trữ văn bản từ hình ảnh hoặc tệp PDF đã quét
- Trích xuất văn bản từ hình ảnh: Trích xuất văn bản từ ảnh chụp màn hình hoặc ảnh chụp tài liệu
Đối với các câu hỏi về tài liệu tạm thời trong trò chuyện, hãy xem Upload as Text.
Các hạn chế
- Độ chính xác khi trích xuất văn bản có thể thay đổi tùy thuộc vào loại tệp, chất lượng hình ảnh, độ phức tạp của tài liệu và độ rõ nét của văn bản.
- Một số định dạng chuyên biệt hoặc bố cục khác thường có thể không được bảo toàn hoàn hảo
- Các tài liệu rất lớn có thể bị cắt bớt do giới hạn token của các mô hình AI cơ bản.
- Để có kết quả tốt nhất với hình ảnh và tài liệu được quét, hãy cấu hình dịch vụ OCR
Các cải tiến trong tương lai
LibreChat có kế hoạch mở rộng các khả năng OCR trong các bản phát hành tương lai:
- Hỗ trợ các nhà cung cấp OCR tùy chỉnh
- Một tùy chọn chiến lược
user_providedcho phép người dùng chọn dịch vụ OCR ưa thích của họ - Tích hợp với các giải pháp OCR mã nguồn mở
- Các tùy chọn xử lý tài liệu nâng cao
- Kiểm soát chi tiết hơn đối với các cài đặt OCR
- Mistral có kế hoạch cung cấp OCR API của họ thông qua các đối tác đám mây, chẳng hạn như GCP và AWS, cũng như tự lưu trữ cho doanh nghiệp đối với các tổ chức có yêu cầu nghiêm ngặt về quyền riêng tư dữ liệu (nguồn)
- LibreChat hiện tại không bao gồm nội dung hình ảnh đã được phân tích từ quy trình OCR trong các phản hồi của mình, mặc dù các dịch vụ như Mistral's OCR API may provide có thể cung cấp những nội dung này trong kết quả. Tính năng này có thể được hỗ trợ trong các bản cập nhật tương lai.
Để biết thêm thông tin về cách cấu hình OCR, hãy xem Cấu trúc Đối tượng Cấu hình OCR.
Hướng dẫn này thế nào?