enoch3712/ExtractThinker
enoch3712/ExtractThinker has 1,603 GitHub stars and 156 forks. GitHot measured -1 stars in 24 hours and 0 in 7 days. Last checked 2026-11-05 18:13 UTC. Last push 2026-09-16.
ExtractThinker is a Document Intelligence library for LLMs, offering ORM-style interaction for flexible and powerful document workflows.
Measured star growth
- in 24h
- -1
- in 7 days
- 0
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
Complex documents. Validated Python objects.
ExtractThinker is an open-source Python library for turning documents into typed data. Define a Pydantic contract, choose a document parser and LLM, then load, classify, split and extract.
Documentation · Quickstart · Contributing · 2026 roadmap
First extraction
pip install extract-thinker
Set EXTRACT_THINKER_MODEL to a model available to you and configure that provider's API key. Save this sample as invoice.txt:
Invoice: INV-2026-001
Supplier: Example Company
Total: 120.00 EUR
import os
from pydantic import Field
from extract_thinker import Contract, DocumentLoaderTxt, Extractor, LLM
class Invoice(Contract):
invoice_number: str
supplier: str
total: float = Field(ge=0)
currency: str
extractor = Extractor(
DocumentLoaderTxt(),
LLM(os.environ["EXTRACT_THINKER_MODEL"], token_limit=1000),
)
result = extractor.extract("invoice.txt", Invoice)
print(result.model_dump())
The result is a validated Invoice. Schema validity does not guarantee factual accuracy; evaluate results on your documents. Extraction uses the configured provider and may incur charges.
For PDFs, install pypdf and use DocumentLoaderPyPdf. Scanned documents need OCR or a vision-capable model. System MIME detection requires libmagic (brew install libmagic on macOS or apt-get install libmagic1 on Debian/Ubuntu). See the quickstart for a credential-free loading check and setup details.
Build a document workflow
| Need | Component |
|---|---|
| Read PDFs, images, tables and spreadsheets | Document loaders |
| Define fields, constraints and post-validation | Pydantic contracts |
| Classify and split mixed document bundles | Classification and splitters |
| Handle long inputs and incomplete responses | Completion strategies |
| Use local models | Ollama setup |
2026 additions on main
The repository now includes page retrieval with SQLite, parallel field extraction, configurable model routing, local entity masking, page events, PyMuPDF/Camelot/Tabula/Adobe loaders, and an MCP service with Docker Compose. These changes are not yet a new PyPI release. Install from a checkout to use them:
git clone https://github.com/enoch3712/ExtractThinker.git
cd ExtractThinker
pip install -e .
Read the 2026 update and compatibility notes, MCP setup, and issue-resolution evidence. The core supports Python 3.9–3.13; the optional MCP service requires Python 3.10+.
Contribute
Start with CONTRIBUTING.md. The offline core suite runs without provider credentials. Good contributions include reduced document fixtures, loader compatibility fixes, examples with expected outputs, and clear reports of model or parser limitations.
If ExtractThinker helps your project, a GitHub star helps others find it. The roadmap focuses on reliable onboarding, reproducible examples and contributor support.
Articles and project history
Stay updated and connect with the community:
- Scaling Document Extraction with o1, GPT-4o & Mini
- Claude 3.5 — The King of Document Intelligence
- Classification Tree for LLMs
- Advanced Document Classification with LLMs
- Phi-3 and Azure: PDF Data Extraction | ExtractThinker
- ExtractThinker: Document Intelligence for LLMs
License
Explore related projects
affaan-m/ECC
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
298,030 starsNousResearch/hermes-agent
The agent that grows with you
260,975 starsmultica-ai/andrej-karpathy-skills
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
229,991 starsfirecrawl/firecrawl
Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. 🔥
199,027 stars