OCRBase — ドキュメントOCRと構造化データ抽出API

AI/ML

概要

ocrbaseはPDFや画像文書を入力として、OCR(文字認識)→ LLMによる構造化データ抽出 → Markdown/JSON形式での出力までを扱うドキュメント処理プラットフォームです。核となるOCRにはPaddleOCRを用い、抽出したテキストを大規模言語モデルでパースしてカスタムスキーマに沿ったJSONやMarkdownに変換します。リアルタイムなジョブステータスはWebSocketで配信され、OpenAPIドキュメントからType-safeなTypeScript SDKとReactフックを利用して簡単に統合できます。セルフホスト可能で、ドキュメント自動化ワークフローに適した実装例やツール群が揃っています。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 11
  • フォーク数: 0
  • ウォッチャー数: 11
  • コミット数: 21
  • ファイル数: 20
  • メインの言語: TypeScript

主な特徴

  • PaddleOCRによる高品質なドキュメントOCRと後処理のパイプライン
  • LLM(大規模言語モデル)を使ったスキーマ駆動の構造化データ抽出
  • WebSocketでのリアルタイムジョブ更新とREST/OpenAPIによる操作性
  • Type-safeなTypeScript SDKとReactフックでフロントエンド統合が容易

技術的なポイント

ocrbaseは「OCRエンジン」と「LLMベースのパーサ」を明確に分離したアーキテクチャを採用しています。まずPaddleOCRでページ単位の文字認識とレイアウト情報を抽出し(ページ、ブロック、行、バウンディングボックス等)、その認識結果を中間フォーマットとして保持します。次に、LLMに認識テキストと(必要に応じて)カスタムスキーマを与え、意図したフィールドを抽出・正規化することで、自由形式の文書から構造化JSONやMarkdownを生成します。

運用面では、ファイルアップロード→ジョブ作成→OCR実行→解析→結果出力の各フェーズをREST APIで制御し、進捗やログはWebSocketでクライアントへ逐次送信します。OpenAPI準拠の仕様からTypeScriptの型安全なSDKを生成し、さらにReact用のフックを用意しているため、フロントエンド開発者は型付きで容易にジョブの作成や状態監視、結果取得ができます。

拡張性としてはカスタムスキーマの定義を受け入れる設計になっており、業務固有のフォーム・請求書・契約書等に合わせた抽出ルールを実装可能です。また、セルフホストを想定した環境変数管理(.env.example)やツール設定ファイル(lintrc/formatter設定)によりローカルやクラウドへ展開しやすくなっています。TypeScript中心の実装は型安全性を高め、SDK利用時の開発体験を良くします。セキュリティ・スケーラビリティ面では、OCR処理やLLM呼び出しを分離してワーカー化することで負荷分散やスケールアウトが容易になる設計が読み取れます。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .claude: dir
  • .env.example: file
  • .gitignore: file
  • .oxfmtrc.jsonc: file
  • .oxlintrc.json: file

…他 15 ファイル

まとめ

セルフホスト可能で型安全なOCR→LLMパイプラインを手軽に試せる実用的なプロジェクトです。(約50字)

リポジトリ情報:

READMEの抜粋:

OCRBase

A powerful OCR document processing and structured data extraction API built with modern TypeScript tooling.

Overview

OCRBase provides:

  • Document OCR using PaddleOCR for accurate text extraction
  • AI-powered structured data extraction using LLMs
  • Custom schema support for targeted data extraction
  • Real-time job status updates via WebSocket
  • RESTful API with OpenAPI documentation
  • Type-safe TypeScript SDK with React hooks

Architecture

![Architecture Diagram](docs/arc…