Python 3.11 · MIT · local execution

Document intelligence,
visibly composed.

Parse, OCR, recover tables, extract fields, and search documents through shared typed models. Explore the architecture with a deterministic browser demo—no account, upload, or API key.

pip install doc-intel-kit
1shared data model
8composable capabilities
0keys needed for this demo
3.11supported Python

Why use doc-intel-kit?

Compose locally.
Inspect every boundary.

A composable, local-first Python integration layer with shared typed models across parsing, OCR, tables, extraction, optional LLM tasks, and small-scale RAG—without requiring a cloud document platform or hiding each backend behind one automatic pipeline.
Local document stacksInspectable intermediate resultsPrivacy-sensitive prototypesCustom backend evaluationTyped integration contracts
AlternativeStronger when you needWhy use this toolkit instead
DoclingMature multi-format conversion, advanced PDF understanding, rich exports, CLI/server options, and integrations.Independently callable Python capabilities with explicit branch control and shared Pydantic contracts.
UnstructuredPartition, chunk, clean, stage, and connector-oriented production ingestion.A compact SDK for direct local composition and typed OCR/document/table results.
LlamaParseHosted agentic OCR, complex layouts/charts, many formats, extraction, indexing, and document-agent services.Local execution for core paths, no required service account there, and ownership of each backend.
Amazon TextractManaged handwriting, forms, tables, queries, signatures, geometry, and AWS-scale operation.Cloud-neutral components, local Tesseract/Camelot paths, and custom backend registration.
Azure Document IntelligenceManaged prebuilt/custom models, key-value/table/layout extraction, and Azure integration.Infrastructure-neutral routing, storage, model choice, and inspectable local execution.
Google Document AIManaged specialized processors, cloud operations, and structured document output.A lightweight explicit toolkit for local prototypes outside a cloud document platform.

Honest boundary: this toolkit does not replace production connectors, managed scaling, human-review queues, mature layout services, governance, persistent vector infrastructure, or SLAs. Comparison wording is paraphrased from the linked official documentation.

Interactive sample mode

Watch the branches route

Hand-authored fictional scenarios animate the orchestration an application can build around the library. Nothing leaves your browser.

Static and private. All values are hand-authored fictional showcase data or computed in this page. No documents, keys, telemetry, Python OCR, ML models, or LLM requests are uploaded or executed.

Execution graph Ready: scanned supplier invoice
Ready
01

Input

path or bytes

Waiting
02

Parse

native text

Waiting
03

OCR

Tesseract branch

Waiting
04

Tables

PDF or sheet

Waiting
05

Extraction

typed fields

Waiting
06

RAG

in-memory search

Waiting
07

Claude

optional network client

Off
Running Complete Skipped
Extracted fieldsAwaiting run
status
Run a sample to populate
Normalized tableShared Table model
ColumnValue
Awaiting run
Semantic searchHand-authored sample scores

“Run a sample to search”

No results yet.

What this demo represents

Routing, stage timing, fields, tables, search scores, and optional Claude text are hand-authored fictional showcase data. In the Python package, OCR uses local Tesseract; extraction and RAG load ML models; Claude requires an explicit API key and network call. This static page performs none of those operations.

Real package architecture

Independent tools, shared contracts

Your code controls routing. The package does not silently run an automatic end-to-end pipeline.

01

Acquire

Parse native PDF, DOCX, PPTX, or HTML text; explicitly choose OCR for image-only content.

ParseResult · OcrResult
02

Structure

Load sheets or extract PDF tables into the same typed representation.

list[Table]
03

Understand

Ask first-page document questions or register your own extraction backend.

ExtractionResult
04

Retrieve

Embed native text or table rows into a process-local vector store for small-scale search.

RagSearchResult

Honest boundaries

Prototype clearly.
Ship deliberately.

  • Layout model outageDefault PubLayNet hosting is unavailable upstream; bring trusted local weights or another backend.
  • First page todayScalar `extract_fields()` answers currently use the first rendered page.
  • Memory, not persistenceDefault RAG vectors live only in the current Python process.
  • Downloads are explicit factsExtraction and RAG models may download on first use unless already cached.

Build the workflow you need

One typed layer across a fragmented document stack.

Read the capability matrix, system requirements, and current limitations before adopting v0.1.0.