📄 DocRAG LLM
Docling → Chroma → Ollama: Simple Local RAG Pipeline
🔎 What is DocRAG LLM?
DocRAG LLM is a 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 -- or any other model 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) you can always add the tag `-llm gpt-oss:20b` for better response assuming you have the computing power for it.
python -m docrag.cli ask "Summarize in 1 paragraph with 5 bullet points"
python -m docrag.cli ask "Summarize in 1 paragraph with 5 bullet points" -llm gpt-oss:20b
Python API - llama3.2:1b is just for testing, reccomend if you have the computing power to ues gpt-oss:20b you will get better results. change as needed, pull from ollama first.
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 vectorscollection→ logical collection nameembed_model→ embedding model (Ollama tag)llm_model→ LLM model (default:llama3.2:1b)chunk_chars/chunk_overlap→ chunking granularity
📊 Roadmap
-
model-checkCLI → 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
Metadata
Release files for docrag-llm 0.1.27
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| docrag_llm-0.1.27.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docrag_llm-0.1.27-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.7 kB
Release files / docrag_llm-0.1.27.tar.gz
| Download URL | docrag_llm-0.1.27.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
527f0b5a770053f8d790f1984265dbcf25fd1929d58f1134357bb917cd1ca683
|
|
BLAKE2b-256 checksum How to use checksums |
f5766ee854c433c116bdbdd54fb6ecffec918f04cd137e7d49b7ee5a1b601a76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|
Release files / docrag_llm-0.1.27-py3-none-any.whl
| Download URL | docrag_llm-0.1.27-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b3412fb3baee2e6dae2d14aa30d87b55cfd84df58a5218e650c02b2b1bdec61f
|
|
BLAKE2b-256 checksum How to use checksums |
beffd8339966cb9b030a6ca334997c7213fd80b7554eba5f5ae93bf49dba39d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|