Skip to content

Installation

ingestlib needs Python 3.12+, one system dependency for Office formats, and an OCR inference server for parsing. This page gets all three in place.

1. Install the package

uv add ingestlib
pip install ingestlib
git clone https://github.com/LangModule/ingestlib.git
cd ingestlib
uv sync

This installs the ingestlib command alongside the library — you'll use it in the Quickstart to scaffold and verify your setup.

The core install covers the full default stack, including sqlite vectors. Server-backed vector stores are extras — add the one you'll use:

uv add "ingestlib[qdrant]"     # or pinecone · pgvector · mongodb · milvus
                               #    · opensearch · weaviate · all

2. LibreOffice (DOCX/PPTX only)

Office documents are converted to PDF before parsing, which needs LibreOffice on the machine. PDFs and images work without it.

brew install --cask libreoffice
sudo apt install libreoffice-core libreoffice-writer libreoffice-impress

3. The OCR inference server

parse() (and therefore ingest()) runs PaddleOCR-VL-1.6 — a 0.9B vision model — behind an inference server on your own GPU. The first launch downloads ~1.8 GB of weights; later launches load from cache in seconds.

Served by mlx-vlm on the Metal GPU (installed automatically with ingestlib on macOS/arm64):

uv run python -m mlx_vlm.server --port 8111 --model PaddlePaddle/PaddleOCR-VL-1.6

Served by vLLM:

vllm serve PaddlePaddle/PaddleOCR-VL-1.6 --port 8111

Then set paddle_vl.backend: vllm-server in your config.yaml.

Only parsing needs the server

classify(), split(), extract(), and retrieve() all run without the OCR server. If you only see a server warning from ingestlib doctor, the rest of the pipeline still works.

A second, smaller layout model (PP-DocLayoutV3, ~126 MB) downloads automatically on your first parse.

Disk footprint

Component Size Location
Python dependencies ~1.4 GB core (+ your vector-store extra) your environment
PaddleOCR-VL-1.6 weights ~1.8 GB ~/.cache/huggingface/hub/
PP-DocLayoutV3 ~126 MB ~/.paddlex/official_models/
LibreOffice ~600 MB system

Next: Quickstart — configure a stack and get your first cited answer.