Skip to main content

Enterprise-grade SDK for extracting text, tables, structure, and entities from documents

Project description

OmniDoc PDF Intelligence SDK

Enterprise-grade PDF understanding for Agentic AI, RAG, and automation systems


🚀 Overview

OmniDoc is a production-ready PDF intelligence SDK designed to convert raw PDFs (documents, slides, brochures, scanned files) into clean, structured, agent-ready outputs.

It goes beyond OCR by applying layout intelligence, semantic normalization, metric extraction, and agent-native serialization.

Built for:

  • Agentic AI systems
  • RAG (Retrieval-Augmented Generation)
  • Knowledge Bases
  • Autonomous remediation & workflows
  • Enterprise document automation

🧠 Core Capabilities

Supported PDF Types

  • Digital PDFs
  • Slide decks & brochures
  • Scanned PDFs
  • Mixed-content PDFs

Intelligence Layers

  • PDF type detection (digital vs scanned)
  • OCR (Tesseract / AWS Textract)
  • Layout-aware block ordering
  • Vision-Language Models (Donut – optional)
  • Slide → report restructuring
  • Heading detection & paragraph merging
  • Bullet normalization
  • Table → metric extraction
  • Noise & artifact removal
  • RAG-ready chunking

Output Formats

  • Python-native Document
  • Enterprise JSON
  • Agent-native TOON

📦 Installation

pip install omnidoc

System Dependencies (macOS / Linux)

brew install poppler tesseract

Optional:

pip install pdf2image pytesseract

🏗️ Architecture

PDF
 │
 ├─ Detection (Digital / Scanned)
 │
 ├─ Extraction
 │   ├─ Text
 │   ├─ OCR
 │   └─ Layout ML
 │
 ├─ Cleaning & Normalization
 │
 ├─ Slide → Report Structuring
 │
 ├─ Table & Metric Processing
 │
 └─ Output
     ├─ Document
     ├─ JSON
     └─ TOON

🔧 Core API

extract_pdf()

extract_pdf(
    path: str,
    enable_layout: bool = True,
    enable_cloud_ocr: bool = False,
    enable_vlm: bool = False,
    enable_pii_masking: bool = False,
    output_format: str = "document"  # document | json | toon
)

📄 Example — Plain Text

from omnidoc.pdf.pipeline import extract_pdf

doc = extract_pdf("sample.pdf", enable_layout=True)
print(doc.raw_text)

📄 Example — JSON (RAG Ready)

from omnidoc.pdf.pipeline import extract_pdf
import json

result = extract_pdf(
    "sample.pdf",
    enable_layout=True,
    enable_cloud_ocr=True,
    output_format="json"
)

print(json.dumps(result, indent=2))

🤖 Example — TOON (Agent Output)

toon = extract_pdf(
    "sample.pdf",
    enable_layout=True,
    output_format="toon"
)

print(toon)

🧪 Real Use Case — RAG Pipeline

doc = extract_pdf("strategy.pdf", output_format="json")

for chunk in doc["chunks"]:
    vector_db.add(chunk["text"], metadata=chunk)

🔐 Enterprise Design

  • Deterministic output
  • No stdout hijacking
  • No numeric loss
  • Agent-safe serialization
  • Optional PII masking
  • Cloud OCR fallback

📜 License

© 2025 OmniDoc — Internal / Enterprise SDK

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omnidoc_sdk-0.2.6.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omnidoc_sdk-0.2.6-py3-none-any.whl (31.7 kB view details)

Uploaded Python 3

File details

Details for the file omnidoc_sdk-0.2.6.tar.gz.

File metadata

  • Download URL: omnidoc_sdk-0.2.6.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for omnidoc_sdk-0.2.6.tar.gz
Algorithm Hash digest
SHA256 142362acd3c3b87b7d4c98ec61301d8dbf2ded910a3f94becaa271236ce7a992
MD5 8ed00eef6951f3b86c2fb7c7326ea2a1
BLAKE2b-256 882e0fb3fbe34302cf8b119117b56bfeaaf3ed4e0b75bc98209b42fd83fe2905

See more details on using hashes here.

File details

Details for the file omnidoc_sdk-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: omnidoc_sdk-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 31.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for omnidoc_sdk-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c6250a7ec421e03c54ad205f7dfa97ae0d475f63dbdf3501987e191a053466a8
MD5 6571d8ac0dacfa5d64bc5bbe318b68fd
BLAKE2b-256 95ca90ac5c637858b9d1c32925720ed07f425a7b95ed35f4c97b9f5889dc6d54

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page