# OneRAG

A production-ready Python and FastAPI retrieval-augmented-generation framework that swaps vector databases, language models, rerankers and caches with a one-line configuration change, running as a full Docker API server or as an offline local CLI chatbot with no API key required.

OneRAG is a retrieval-augmented-generation backend built so its main components can be swapped with a one-line configuration change: six vector databases (Weaviate, Pinecone, Qdrant, ChromaDB, pgvector and MongoDB), five language model providers (Gemini, OpenAI, Claude, Ollama and OpenRouter), six rerankers and three cache backends, all switched through environment variables or YAML rather than code changes.

A full Docker setup runs Weaviate with hybrid dense-and-BM25 search behind a FastAPI server with Swagger documentation; without Docker, a local command-line chatbot uses ChromaDB for storage and can run entirely offline against a local Ollama model with no API key. It exposes an OpenAI-compatible chat completions endpoint so existing OpenAI client code can point at it unchanged, and includes an extensive Pytest and Vitest test suite with CI gates covering more than 2,100 tests.

A quick-start sample data set of 25 documents loads automatically in the CLI mode so a new user can try hybrid search immediately.

Website: https://github.com/notadev-iamaura/OneRAG
