OCRBase — ドキュメントOCRと構造化データ抽出API
概要
ocrbaseはPDFや画像文書を入力として、OCR(文字認識)→ LLMによる構造化データ抽出 → Markdown/JSON形式での出力までを扱うドキュメント処理プラットフォームです。核となるOCRにはPaddleOCRを用い、抽出したテキストを大規模言語モデルでパースしてカスタムスキーマに沿ったJSONやMarkdownに変換します。リアルタイムなジョブステータスはWebSocketで配信され、OpenAPIドキュメントからType-safeなTypeScript SDKとReactフックを利用して簡単に統合できます。セルフホスト可能で、ドキュメント自動化ワークフローに適した実装例やツール群が揃っています。(約300字)
リポジトリの統計情報
- スター数: 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字)
リポジトリ情報:
- 名前: ocrbase
- 説明: 📄 PDF ->.MD/.JSON Document OCR and structured data extraction API. PaddleOCR + LLM-powered parsing. Real-time WebSocket updates. Type-safe TypeScript SDK with React hooks. Self-hostable.
- スター数: 11
- 言語: TypeScript
- URL: https://github.com/majcheradam/ocrbase
- オーナー: majcheradam
- アバター: https://avatars.githubusercontent.com/u/63547690?v=4
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…