ExtractThinker

enoch3712Apache-2.0活跃维护

面向 LLM 的文档智能库,用 ORM 风格接口编排文档解析、OCR 与信息抽取流程,让复杂文档工作流更灵活可控。

ExtractThinker is a Document Intelligence library for LLMs, offering ORM-style interaction for flexible and powerful document workflows.

v0.1.14发布于 2025-06-09 15:42 UTC1,604star156fork同步于 2026-11-07 07:31 UTC

怎么上手

由 README 提炼,执行前请确认
pip install extract-thinker
硬件要求按 README 说明

README 未说明具体显存或 GPU 型号要求;可接入 Ollama 本地模型,也可用云端 LLM 提供商。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把文档变成带校验的 Python 对象的 LLM 文档抽取库,定义 Pydantic 契约即可抽取

面向 LLM 的文档智能库,用 ORM 风格接口编排文档解析、OCR 与信息抽取流程,让复杂文档工作流更灵活可控。

核心能力

  • 用 Pydantic 契约定义字段、约束与后置校验
  • 支持加载 PDF、图片、表格和电子表格
  • 可对混合文档包做分类与拆分
  • 提供补全策略处理长输入和不完整响应
  • 支持 Ollama 本地模型接入

容易踩的坑

需设置环境变量 EXTRACT_THINKER_MODEL 并配置对应提供商的 API key;处理 PDF 需额外安装 pypdf 并使用 DocumentLoaderPyPdf,扫描件还需 OCR 或视觉模型;系统 MIME 检测依赖 libmagic;2026 新增功能尚未发布到 PyPI,需从仓库 pip install -e . 安装

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.1.14
  1. v0.1.14最新正式版2025-06-09 · 2025-06-09 15:42 UTC

    What's Changed

    New Contributors

    Full Changelog: https://github.com/enoch3712/ExtractThinker/compare/v0.1.13...v0.1.14

  2. v0.1.132025-04-24 · 2025-04-24 12:33 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/enoch3712/ExtractThinker/compare/v0.1.12...v0.1.13

  3. v0.1.122025-04-16 · 2025-04-16 13:35 UTC
    查看更新说明
  4. v0.1.112025-04-08 · 2025-04-08 11:52 UTC
    查看更新说明
  5. v0.1.102025-04-07 · 2025-04-07 13:52 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/enoch3712/ExtractThinker/compare/v0.1.9...v0.1.10

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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

    Python 3.9–3.13 License: Apache 2.0 Last commit

    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

    NeedComponent
    Read PDFs, images, tables and spreadsheetsDocument loaders
    Define fields, constraints and post-validationPydantic contracts
    Classify and split mixed document bundlesClassification and splitters
    Handle long inputs and incomplete responsesCompletion strategies
    Use local modelsOllama 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:

    License

    Apache License 2.0.