문서용 OCR
LibreChat의 파일 업로드 기능에서 텍스트 추출을 향상하기 위해 광학 문자 인식(OCR)을 구성하는 방법을 알아보세요.
LibreChat의 OCR (Optical Character Recognition)은 파일에서 텍스트를 추출하기 위한 선택적 기능입니다.
텍스트로 업로드
(채팅에서) "Upload as Text" 기능도 동일한 방식으로 작동합니다:
fileConfig.ocr.supportedMimeTypes와 일치하는 파일은 사용 가능한 경우 OCR을 사용합니다.- OCR이 구성되지 않은 경우 텍스트 파싱으로 대체합니다
- 텍스트가 포함된 이미지, 스캔된 문서, 복잡한 PDF에 특히 유용합니다
- 처리 우선순위: OCR > STT > 텍스트 파싱
- 자세한 내용은 Upload as Text 문서를 참조하세요.
파일 컨텍스트 (에이전트용)
Agent Builder의 File Context 섹션을 통해 파일을 업로드할 때:
- 기본적으로 텍스트 파싱을 사용하여 텍스트가 추출됩니다(설정되어 있고 파일이 일치하는 경우 OCR/STT 사용).
- 추출된 텍스트는 에이전트의 시스템 지침의 일부로 저장됩니다.
- 에이전트는 모든 대화에서 이 컨텍스트를 참조할 수 있습니다.
- OCR 서비스는 선택 사항입니다 - 이 기능은 OCR 없이 텍스트 파싱을 사용하여 작동합니다.
"File Context"로 업로드된 파일은 텍스트를 추출하도록 처리되며, 추출된 텍스트는 Agent의 시스템 지침에 추가됩니다. 이는 에이전트의 지침에 전체 텍스트 내용을 포함해야 하는 문서, 코드 파일, PDF 또는 텍스트가 포함된 이미지에 이상적입니다.
참고: 추출된 텍스트는 에이전트의 시스템 지침에 포함됩니다.
선택적 OCR 설정
Agent File Context와 Upload as Text는 모두 텍스트 파싱을 사용하여 즉시 작동합니다. 이미지 및 스캔된 문서의 추출 품질을 향상하려면 선택적으로 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"참고: context 기능은 기본적으로 활성화되어 있습니다. 이미지 및 스캔된 문서에 대해 향상된 추출 품질을 원할 경우에만 OCR(ocr 기능)을 구성하면 됩니다.
OCR 기능 개요
LibreChat의 OCR 기능은 다음을 지원합니다:
- 이미지 및 문서에서 텍스트 추출
- 문서 구조와 서식을 유지하세요
- 다단 텍스트를 포함한 복잡한 레이아웃 처리
- 표, 수식 및 기타 특수 콘텐츠 처리
- 다국어 콘텐츠 작업하기
OCR 전략
LibreChat은 다양한 배포 요구 사항과 필요를 충족하기 위해 여러 OCR 전략을 지원합니다. 귀하의 인프라 및 규정 준수 요구 사항에 가장 적합한 전략을 선택하십시오.
1. Mistral OCR (기본값)
기본 전략은 Mistral의 클라우드 API 서비스를 직접 사용합니다. 이는 가장 간단한 설정이며 Mistral의 API 키만 있으면 됩니다.
환경 변수:
# `.env`
OCR_API_KEY=your-mistral-api-key
# OCR_BASEURL=https://api.mistral.ai/v1 # this is the default value구성:
# `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"주요 기능:
- 문서 구조 보존: 헤더, 단락, 목록, 표와 같은 서식을 유지합니다.
- 다국어 지원: 여러 언어 및 문자로 된 텍스트를 처리합니다.
- 복잡한 레이아웃 처리: 다단 텍스트 및 혼합 콘텐츠를 처리합니다.
- 수학적 표현 인식: 방정식과 공식을 정확하게 처리합니다
- 고속 처리: 분당 최대 2000페이지 처리
고려 사항:
- 비용: Mistral OCR은 유료 API 서비스이므로 사용 시 비용이 발생할 수 있습니다(무료 체험판을 이용할 수 있는 경우도 있습니다).
- 데이터 개인정보 보호: Mistral OCR을 통해 처리된 데이터는 Mistral의 클라우드 환경 및 해당 서비스 약관의 적용을 받습니다.
- 문서 제한 사항:
- 최대 파일 크기: 50 MB
- 최대 문서 길이: 1,000페이지
2. Azure Mistral OCR
Azure AI Foundry를 사용하는 조직의 경우, Mistral OCR 모델을 Azure 인프라에 배포할 수 있습니다. 현재 Mistral OCR 2503 모델을 Azure에 배포할 수 있습니다.
구성:
# `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 strategyAzure 모델 정보: Azure AI Foundry에서 제공되는 최신 Mistral OCR 모델은 여기에서 살펴볼 수 있습니다 (Azure 구독 필요):
https://ai.azure.com/explore/models/mistral-ocr-2503
3. Google Vertex AI Mistral OCR
Google Cloud Platform을 사용하는 조직의 경우, Mistral OCR 모델을 Google Cloud Vertex AI 인프라에 배포할 수 있습니다.
환경 변수:
# `.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": "..."
}'구성:
# `librechat.yaml`
ocr:
mistralModel: "mistral-ocr-2505" # Model name as deployed in Vertex AI
strategy: "vertexai_mistral_ocr" # Use Google Vertex AI strategy설정 요구 사항:
- Google Vertex AI에 Mistral OCR 모델(예: mistral-ocr-2505) 배포하기
- Vertex AI endpoint에 액세스할 수 있는 적절한 권한을 가진 서비스 계정을 생성하세요.
- 서비스 계정 JSON 키 파일을 다운로드하세요
- 지원되는 방법 중 하나를 사용하여
GOOGLE_SERVICE_KEY_FILE환경 변수를 설정하세요.
4. 사용자 지정 OCR (계획 중)
사용자 지정 OCR 공급자 및 사용자 정의 전략에 대한 지원은 향후 릴리스에서 계획되어 있습니다.
5. 공급자에게 파일 업로드 (직접)
지원되는 LLM 제공업체(OpenAI, AzureOpenAI, Anthropic, Google 및 AWS Bedrock)와 해당 모델의 경우, 이제 파일을 메시지 첨부 파일로 제공업체 API에 직접 전송할 수 있습니다. 이를 통해 파일 첨부 드롭다운 메뉴에서 Upload to Provider 옵션을 사용하여 제공업체가 자체적인 기본 OCR 구현을 통해 파일을 파싱하도록 할 수 있습니다.
현재 위에서 언급한 5개 제공업체 모두 이미지와 PDF를 지원하며, Google은 호환되는 멀티모달 모델과 함께 사용할 경우 오디오 및 비디오 파일에 대한 지원도 포함합니다. AWS Bedrock은 추가로 CSV, DOC, DOCX, XLS, XLSX, HTML, TXT 및 Markdown 문서를 지원합니다.
Azure OpenAI PDF 업로드 주의 사항
Azure OpenAI 엔드포인트의 경우, PDF 파일에 대한 'Upload to Provider(공급자에게 업로드)' 옵션은 Responses API를 사용할 때만 이용할 수 있습니다. Azure OpenAI의 Chat Completions API는 이미지는 지원하지만 PDF 파일 첨부는 지원하지 않습니다.
Azure OpenAI를 사용하는 채팅의 첨부 파일 드롭다운 메뉴에서 PDF에 대한 'Upload to Provider' 옵션이 보이지 않는다면, Parameters 패널에서 Responses API 매개변수가 활성화되어 있는지 확인하세요.
참고: 표준 OpenAI endpoint는 Chat Completions 및 Responses API 모두에서 PDF 업로드를 지원합니다.
AWS Bedrock 문서 업로드 제한
AWS Bedrock은 Converse API를 통해 다음 형식의 문서 업로드를 지원합니다: PDF, CSV, DOC, DOCX, XLS, XLSX, HTML, TXT 및 Markdown (.md)
제약 사항:
- 문서당 최대 파일 크기: 4.5 MB
- 파일 이름은 Bedrock의 명명 규칙(영숫자, 공백, 하이픈, 괄호, 대괄호; 최대 200자)을 준수하도록 정리됩니다.
Bedrock 구성에 대한 자세한 내용은 AWS Bedrock 설정 가이드를 참조하세요.
상세 설정
추가적인 상세 구성 옵션은 OCR Config Object Structure를 참조하세요.
OCR 처리 구성
fileConfig를 사용하여 OCR로 처리할 파일 형식을 제어하세요:
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$"다음 패턴과 일치하는 파일은 다음과 같은 경우 OCR을 사용합니다:
- 에이전트 파일 컨텍스트에 업로드됨 (OCR이 구성된 경우 항상)
- 채팅에서 텍스트로 업로드됨 (OCR이 구성된 경우; 그렇지 않으면 텍스트 파싱으로 대체됨)
파일 처리 구성에 대한 자세한 내용은 File Config Object Structure를 참조하세요.
Agent 파일 컨텍스트의 사용 사례
Agent File Context는 다음과 같은 경우에 이상적입니다:
- Persistent Agent Knowledge: 에이전트의 시스템 지침에 문서, 정책 또는 참조 자료를 추가합니다.
- Specialized Agents: 문서에서 도메인별 지식을 학습한 에이전트를 생성하세요
- 문서 기반 어시스턴트(Document-Based Assistants): 특정 매뉴얼이나 가이드를 항상 참조하는 에이전트를 구축하세요.
- Code Files: 에이전트 지침에 코드 예제나 라이브러리를 포함합니다.
- Structured Data: 에이전트가 참조할 수 있도록 CSV, JSON 또는 기타 구조화된 데이터를 추가하세요.
OCR이 구성되면, 파일 컨텍스트(File Context)는 다음 사항도 처리합니다:
- 스캔된 문서 처리: 이미지나 스캔된 PDF에서 텍스트를 추출하고 저장합니다.
- 이미지 텍스트 추출: 스크린샷이나 문서 사진에서 텍스트를 추출합니다.
채팅 내 일시적인 문서 질문에 대해서는 Upload as Text를 참조하세요.
제한 사항
- 텍스트 추출 정확도는 파일 형식, 이미지 품질, 문서 복잡성 및 텍스트 선명도에 따라 달라질 수 있습니다.
- 일부 특수한 서식이나 일반적이지 않은 레이아웃은 완벽하게 보존되지 않을 수 있습니다.
- 매우 큰 문서는 기본 AI 모델의 토큰 제한으로 인해 잘릴 수 있습니다.
- 이미지 및 스캔된 문서에서 최상의 결과를 얻으려면 OCR 서비스를 구성하세요.
향후 개선 사항
LibreChat은 향후 릴리스에서 OCR 기능을 확장할 계획입니다:
- 사용자 지정 OCR 공급자 지원
- 사용자가 선호하는 OCR 서비스를 선택할 수 있도록 하는
user_provided전략 옵션 - 오픈 소스 OCR 솔루션과의 통합
- 향상된 문서 처리 옵션
- OCR 설정에 대한 더 세밀한 제어
- Mistral은 GCP 및 AWS와 같은 클라우드 파트너를 통해 OCR API를 제공하고, 엄격한 데이터 개인정보 보호 요구 사항을 가진 조직을 위해 기업용 자체 호스팅을 제공할 계획입니다 (source)
- LibreChat은 현재 Mistral의 OCR API가 제공할 수 있는 결과와 같은 OCR 프로세스에서 파싱된 이미지 콘텐츠를 응답에 포함하지 않습니다. 이 기능은 향후 업데이트에서 지원될 수 있습니다.
OCR 구성에 대한 자세한 내용은 OCR Config Object Structure를 참조하세요.
이 가이드는 어떤가요?