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

ドキュメント用OCR

LibreChatのファイルアップロード機能におけるテキスト抽出を強化するための、光学式文字認識(OCR)の設定方法を学びます。

LibreChatにおけるOCR (Optical Character Recognition) は、ファイルからテキストを抽出するためのオプションの拡張機能です。

テキストとしてアップロード

(チャットからの)「テキストとしてアップロード」機能も同様に動作します:

  • fileConfig.ocr.supportedMimeTypes に一致するファイルは、利用可能な場合にOCRを使用します。
  • OCRが設定されていない場合は、テキスト解析にフォールバックします
  • テキストを含む画像、スキャンされたドキュメント、複雑なPDFに特に役立ちます
  • 処理優先度: OCR > STT > テキスト解析
  • 詳細は Upload as Text のドキュメントを参照してください。

ファイルコンテキスト (エージェント用)

Agent BuilderのFile Contextセクションからファイルをアップロードする場合:

  1. デフォルトではテキスト解析を使用してテキストが抽出されます(設定済みでファイルが適合する場合はOCR/STTが使用されます)
  2. 抽出されたテキストは、エージェントのシステム指示の一部として保存されます。
  3. エージェントはすべての会話でこのコンテキストを参照できます
  4. OCR serviceはオプションです - この機能はOCRなしでもテキスト解析を使用して動作します

「ファイルコンテキスト」としてアップロードされたファイルは、テキストを抽出するために処理され、そのテキストがAgentのシステム指示に追加されます。これは、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"

主な機能:

  • ドキュメント構造の保持: ヘッダー、段落、リスト、テーブルなどのフォーマットを維持します
  • 多言語サポート: 複数の言語やスクリプトのテキストを処理します
  • 複雑なレイアウトの処理: マルチカラムテキストや混在コンテンツを処理します
  • Mathematical Expression Recognition: 数式や計算式を正確に処理します
  • 高速処理: 1分あたり最大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 strategy

Azure モデル情報: 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

セットアップ要件:

  1. Google Vertex AIにMistral OCRモデル(例: mistral-ocr-2505)をデプロイする
  2. Vertex AI endpointにアクセスするための適切な権限を持つサービスアカウントを作成します。
  3. サービスアカウントのJSONキーファイルをダウンロードします
  4. サポートされているいずれかの方法を使用して、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 API と 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 File Context は、以下のような用途に最適です:

  • Persistent Agent Knowledge: エージェントのシステム指示にドキュメント、ポリシー、または参照資料を追加します
  • Specialized Agents: ドキュメントからドメイン固有の知識を持つエージェントを作成します
  • ドキュメントベースのアシスタント: 特定のマニュアルやガイドを常に参照するエージェントを構築します
  • 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は現在、OCRプロセスから解析された画像コンテンツをレスポンスに含めていません。これは、Mistral's OCR APIのようなサービスが結果としてそれらを提供する場合であっても同様です。この機能は将来のアップデートでサポートされる可能性があります。

OCRの設定に関する詳細については、OCR Config Object Structure を参照してください。

このガイドはいかがでしたか?