/nanorag

Simple RAG framework, inspired on llama-index

Primary LanguageJupyter NotebookMIT LicenseMIT

nanorag

Library Objectives

  • Being a lightweight option of RAG, with just the necessary dependencies.
  • Focused on RAG with local and open source models, not focused on API calls.
  • Try out different strategies and data-structures that can be used to have better results. (Such as dataframes, can try out with polars as its really performant)
  • Multimodal support, combine image, text and audio to get the best results
  • Solve some of the storage challenges RAG faces, and provide good solutions for updating documents and embeddings as well as loading them.
  • Use it as a educational library to demostrate on some of the main concepts llama-index or other RAG framworks use.
  • The base for the implementation of some agentic strategies I will try out on other library.
  • Offer support for local models with CPU like llama-cpp

Install

pip install nanorag

Learning

You can take a look at the notebooks to understand how it works.