Every RAG library launch post leads with capability. We're leading with scope, because scope is the thing that actually determines whether a library fits your project — and most launch posts quietly skip it.
The technical case for narrow scope
ragleap-rag does retrieval-augmented generation. It does not do agentic tool-calling, multi-step orchestration, or human-in-the-loop approval gates. That's not a v1.0 limitation we're apologizing for — it's a deliberate boundary, because bolting agent reasoning onto a retrieval library usually means neither part is done well.
If you need that, it's a separate, not-yet-built package (ragleap-agents, ragleap-flows) on the roadmap — not a half-implemented feature living inside this one.
What v0.11.1 actually ships
Retrieval: hybrid dense (pgvector cosine) + sparse (Postgres full-text) fused via Reciprocal Rank Fusion. hybrid=False for dense-only when you want one query instead of two.
Reranking: cross-encoder via ONNX Runtime, CPU-only, ~23MB. No torch, no CUDA — the model most reranking libraries pull in defaults to a 2GB+ install even if you never touch a GPU.
Vector backends: 6 total, merged directly into core rather than kept as a separate package. pgvector and FAISS are live-verified against real services today. Pinecone, Weaviate, Qdrant, and Milvus are code-complete but not yet live-tested — we're not claiming parity until they are.
Reliability: chained fallbacks (not just one), real per-call token/cost numbers pulled from the provider's own response, async twins for every method, connection pooling, Redis-backed distributed query caching for multi-process deployments.
Ingestion: 28 file formats, URLs (via trafilatura for clean extraction), images (OCR + vision captioning), audio and video (ffmpeg extraction + pluggable transcription), concurrent mixed-type batch ingestion with per-item failure isolation.
Testing: 238 automated tests, real CI on every PR, up from 72 at the last major checkpoint.
python
pip install ragleap-rag
from ragleap import RagLeap, ProviderConfig, EmbeddingConfig
rag = RagLeap(
database_url="postgresql://user:pass@localhost/mydb",
embedder=EmbeddingConfig(provider="gemini", api_key="..."),
primary=ProviderConfig(provider="gemini", api_key="..."),
)
rag.init_schema()
result = rag.ingest("handbook.pdf", raw_bytes)
answer = rag.ask("What's our PTO policy?")
What's next
ragleap-graph (knowledge-graph-augmented retrieval via Neo4j) and ragleap-integrations (MCP-native + curated connectors) are next on the roadmap. ragleap-agents and ragleap-flows come after — deliberately sequenced, not rushed in to chase a feature-parity headline against LangChain.
Repo: github.com/antonyrag/ragleap-core PyPI: pypi.org/project/ragleap-rag
Genuinely interested in what breaks when you try it on something real — that's what the issue tracker is for.


Top comments (0)