RAGWire¶
Production-grade RAG toolkit for document ingestion and retrieval with hybrid search support.
RAGWire handles the full RAG pipeline — from loading raw documents to storing and retrieving them from a vector database — so you can focus on building your application.

Features¶
- Document Loading — PDF, DOCX, XLSX, PPTX and more via MarkItDown
- LLM Metadata Extraction — extracts company, doc type, and fiscal period automatically
- Smart Text Splitting — markdown-aware and recursive chunking strategies
- Multiple Embedding Providers — Ollama, OpenAI, HuggingFace, Google, FastEmbed
- Qdrant Vector Store — dense, sparse, and hybrid search
- Advanced Retrieval — similarity, MMR, and hybrid search
- SHA256 Deduplication — at both file and chunk level — no duplicate ingestion
Architecture¶

Installation¶
pip install ragwire
# With Ollama support (local, no API key)
pip install "ragwire[ollama]"
# With all providers
pip install "ragwire[all]"
Quick Start¶
from ragwire import RAGWire
rag = RAGWire("config.yaml")
# Ingest documents
stats = rag.ingest_documents(["data/Apple_10k_2025.pdf"])
print(f"Chunks created: {stats['chunks_created']}")
# Retrieve
results = rag.retrieve("What is Apple's total revenue?", top_k=5)
for doc in results:
print(doc.metadata.get("company_name"), doc.page_content[:200])
Supported Providers¶
| Provider | Embeddings | LLM | Free |
|---|---|---|---|
| Ollama | Yes | Yes | Yes (local) |
| OpenAI | Yes | Yes | No |
| Google Gemini | Yes | Yes | Free tier |
| Groq | No | Yes | Free tier |
| Anthropic | No | Yes | No |
| HuggingFace | Yes | No | Yes (local) |
| FastEmbed | Yes | No | Yes (local) |
Links¶
- GitHub: github.com/laxmimerit/RAGWire
- PyPI: pypi.org/project/ragwire
- YouTube: youtube.com/kgptalkie
- Website: kgptalkie.com