Skip to main content

Docling → Chroma → Ollama: Simple RAG pipeline

Project description

📄 DocRAG LLM

Docling → Chroma → Ollama: Simple Local RAG Pipeline

PyPI
Python
License
Tests


🔎 What is DocRAG LLM?

DocRAG LLM is a lightweight, local-first Retrieval-Augmented Generation (RAG) pipeline.
It connects Docling for parsing → ChromaDB for vector storage → Ollama for local LLM inference.

No cloud lock-in. No API costs. Just local docs → local vectors → local LLMs.


✨ Features

  • 🔍 Parse documents with Docling (PDF, DOCX, PPTX, HTML, etc.)
  • 📑 Intelligent chunking for retrieval
  • 🧠 Store embeddings in ChromaDB
  • 🤖 Answer questions using Ollama (default: llama3.2:1b)
  • 🛡️ Privacy-first → all local execution
  • 🖥️ Use as a CLI tool or Python library

📦 Installation

pip install docrag-llm

Requirements:

  • Python 3.10+
  • Ollama installed & running
  • Local models:
    ollama pull llama3.2:1b
    ollama pull nomic-embed-text
    

🚀 Quickstart

CLI – Ingest and Ask

# Ingest a document (default collection: demo)
python -m docrag.cli ingest https://arxiv.org/pdf/2508.20755

# Ask a question (default LLM: llama3.2:1b)
python -m docrag.cli ask "Summarize in 1 paragraph with 5 bullet points"

Python API

from docrag import DocragSettings, RAGPipeline

cfg = DocragSettings(
    persist_path="./.chroma",
    collection="demo",
    embed_model="nomic-embed-text",
    llm_model="llama3.2:1b",
)

pipeline = RAGPipeline(cfg)

# Ingest
n_chunks = pipeline.ingest("https://arxiv.org/pdf/2508.20755")
print(f"Ingested {n_chunks} chunks")

# Ask
answer = pipeline.ask("Give a concise bullet summary of the paper's contributions.")
print(answer)

⚙️ Configuration

Both CLI & Python API let you customize:

  • persist_path → where ChromaDB stores vectors
  • collection → logical collection name
  • embed_model → embedding model (Ollama tag)
  • llm_model → LLM model (default: llama3.2:1b)
  • chunk_chars / chunk_overlap → chunking granularity

📊 Roadmap

  • model-check CLI → list installed Ollama models
  • Support multiple backends (Weaviate, Milvus)
  • Streaming output for long answers
  • Expanded test suite (large document regression cases)
  • Example notebooks & Hugging Face demo

🤝 Contributing

PRs and issues welcome!

pip install "docrag-llm[dev]"
ruff check .
pytest

📜 License

MIT License © 2025 Armando Medina


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

docrag_llm-0.1.24.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

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

docrag_llm-0.1.24-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file docrag_llm-0.1.24.tar.gz.

File metadata

  • Download URL: docrag_llm-0.1.24.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for docrag_llm-0.1.24.tar.gz
Algorithm Hash digest
SHA256 5859655c6a1af2e2e8ba1f1c2f38352fa8825a39bb5350b05fcf3f7b6dd06207
MD5 3f61852643f6ffd7ff2fe11989601fac
BLAKE2b-256 02ae24bb150320c7d8a7a9c4e02955845dca9ffcc07de3e69aa14de424ea68c7

See more details on using hashes here.

File details

Details for the file docrag_llm-0.1.24-py3-none-any.whl.

File metadata

  • Download URL: docrag_llm-0.1.24-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for docrag_llm-0.1.24-py3-none-any.whl
Algorithm Hash digest
SHA256 aa4604f6cc683c8818b724ba7e0e892a0458181ee154c48f3b7432f9ace4040f
MD5 75a28cedd28427759a1c4bc384bd6843
BLAKE2b-256 a1fc57e6911fc9ad2fb7a6b9225583b3e8363fc7b636c2d5751b3082eaef469e

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