/R2R

The Supabase for RAG - R2R lets you build, scale, and manage user-facing Retrieval-Augmented Generation applications in production.

Primary LanguagePythonMIT LicenseMIT

Docs Discord Github Stars Commits-per-week License: MIT

R2R Answer Engine

Build, scale, and manage user-facing Retrieval-Augmented Generation applications in production.

About

R2R was designed to bridge the gap between local LLM experimentation and scalable, production-ready Retrieval-Augmented Generation (RAG) applications. R2R provides a the latest techniques in RAG and is built around a RESTful API for ease of use.

For a more complete view of R2R, check out the full documentation.

Key Features

  • 📁 Multimodal Support: Ingest files ranging from .txt, .pdf, .json to .png, .mp3, and more.
  • 🔍 Hybrid Search: Combine semantic and keyword search with reciprocal rank fusion for enhanced relevancy.
  • 🔗 Graph RAG: Automatically extract relationships and build knowledge graphs.
  • 🗂️ App Management: Efficiently manage documents and users with full authentication.
  • 🔭 Observability: Observe and analyze your RAG engine performance.
  • 🧩 Configurable: Provision your application using intuitive configuration files.
  • 🔌 Extensibility: Develop your application further with easy builder + factory pattern.
  • 🖥️ Dashboard: Use the R2R Dashboard, an open-source React+Next.js app with optional authentication, to interact with R2R via GUI.

Install with pip

The recommended way to get started with R2R is by using our CLI.

pip install r2r

Then, after installing R2R, it is recommended to launch with Docker, if possible:

# export OPENAI_API_KEY=sk-...
r2r serve --docker

Alternatively, you may run R2R directly from the python package, but additional dependencies like Postgres+pgvector must be configured:

# export OPENAI_API_KEY=sk-...
# export POSTGRES...
r2r --config-name=default serve

Quickstart

After installing, the R2R Quickstart is your go to for a step-by-step guide to get up and running with R2R in minutes. The guide demonstrates R2R's Retrieval-Augmented Generation (RAG) system by ingesting sample documents and then showcasing features for search, RAG, logging, analytics, and document management.

Getting Started

To get started with R2R, we recommend starting with the quickstart and then moving on to specific cookbooks.

API & SDKs

Auth & Admin Features

  • User Auth: A cookbook showing how to authenticate users using R2R.
  • Analytics & Observability: A cookbook showing R2Rs end to end logging and analytics.
  • Dashboard: A how-to guide on connecting with the R2R Admin/User Dashboard.

RAG Cookbooks

  • Multiple LLMs: A simple cookbook showing how R2R supports multiple LLMs.
  • Hybrid Search: A brief introduction to running hybrid search with R2R.
  • Multimodal RAG: A cookbook on multimodal RAG with R2R.
  • Knowledge Graphs: A walkthrough of automatic knowledge graph generation with R2R.
  • Advanced Graphs: A walkthrough of R2Rs advanced RAG features.
  • Local RAG: A quick cookbook demonstration of how to run R2R with local LLMs.
  • Reranking: A short guide on how to apply reranking to R2R results.

Community

Join our Discord server to get support and connect with both the R2R team and other developers in the community. Whether you're encountering issues, looking for advice on best practices, or just want to share your experiences, we're here to help.

Contributing

We welcome contributions of all sizes! Here's how you can help:

Our Contributors