DEV Community

Vlad
Vlad

Posted on

I published my first Python package — a reusable RAG core library

If you've ever built a RAG (Retrieval-Augmented Generation) system, you know the pain: every new project means rewriting the same boilerplate — vector store setup, embeddings, chunking, LLM wiring. I got tired of it, so I packaged it up.
pyragcore is a modular RAG library built on FAISS and Ollama. The idea is simple: give you a solid foundation so you can focus on your actual use case instead of reinventing the plumbing every time.
What I'm most proud of is that it runs entirely locally — no external APIs, no data leaving your machine. Just Ollama for the LLM and SentenceTransformers for embeddings.

What's inside

  • FAISS vector store with persistence, deduplication, and metadata filtering
  • Semantic search with MMR support
  • Local LLM inference via Ollama
  • Modular installs — grab only what you need
  • Abstract base classes so you can extend it your way

How to install it:

pip install pyragcore[all]
Enter fullscreen mode Exit fullscreen mode
from pyragcore import BasePipeline

class MyPipeline(BasePipeline):
    def ingest(self, source: str) -> str:
        # your ingestion logic here
        ...

pipeline = MyPipeline(persist_dir="./memory", output_folder="./output")
source_id = pipeline.ingest("./my_document.pdf")
answer = pipeline.ask("What is this document about?", source_id=source_id)
print(answer)
Enter fullscreen mode Exit fullscreen mode

It's still early days (v0.1.11) and I'm actively working on it, but it's already powering a couple of projects I built — a document chat bot.

PyPI Link
GitHub Repo

Would love any feedback, ideas, or contributions. If you build something with it, let me know!

Top comments (0)