Skip to main content

A RAG Framework for Information Retrieval and Generation.

Project description

Language Code Style Imports: isort github license Read the Docs PyPI - Version DOI

[ English | 中文 ]

FlexRAG is a flexible and high-performance framework designed for Retrieval-Augmented Generation (RAG) tasks, offering support for multimodal data, seamless configuration management, and out-of-the-box performance for both research and prototyping.

https://github.com/user-attachments/assets/4dfc0ec9-686b-40e2-b1f0-daa2b918e093

📖 Table of Contents

✨ Key Features

  • Multimodal RAG Support: FlexRAG isn't limited to just text-based Retrieval-Augmented Generation (RAG). It also supports multimodal RAG, opening up a wide range of application possibilities across different media types.
  • Diverse Data Types: FlexRAG enables seamless integration of multiple data formats, including text (e.g., CSV, JSONL), images, documents, web snapshots, and more, giving you flexibility in working with varied data sources.
  • Unified Configuration Management: Leveraging python dataclass and hydra-core, FlexRAG simplifies configuration management, making it easier to handle complex setups and customize your workflow.
  • Out-of-the-Box: With carefully optimized default configurations, FlexRAG delivers solid performance without the need for extensive parameter tuning.
  • High Performance: Built with persistent cache system and asynchronous methods to significantly improve speed and reduce latency in RAG workflows.
  • Research & Development Friendly: Supports multiple development modes and includes a companion repository, flexrag_examples, to help you reproduce various RAG algorithms with ease.
  • Lightweight: Designed with minimal overhead, FlexRAG is efficient and easy to integrate into your project.

📢 News

  • 2025-01-22: A new entrypoint run_retriever and four new information retrieval metrics (e.g., RetrievalMAP) are now available. Check out the documentation for more details.
  • 2025-01-08: We provide Windows wheels for FlexRAG. You can install FlexRAG via pip on Windows now.
  • 2025-01-08: The benchmark of FlexRAG on Single-hop QA tasks is now available. Check out the benchmarks for more details.
  • 2025-01-05: Documentation for FlexRAG is now available. Check out the documentation for more details.

🚀 Getting Started

To install FlexRAG via pip:

pip install flexrag

Visit our documentation to learn more.

🏗️ Architecture

FlexRAG is designed with a modular architecture, allowing you to easily customize and extend the framework to meet your specific needs. The following diagram illustrates the architecture of FlexRAG:

📊 Benchmarks

We have conducted extensive benchmarks using the FlexRAG framework. For more details, please refer to the benchmarks page.

🏷️ License

This repository is licensed under the MIT License. See the LICENSE file for details.

❤️ Acknowledgements

This project benefits from the following open-source projects:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

flexrag-0.1.7-cp313-cp313-win_amd64.whl (192.5 kB view details)

Uploaded CPython 3.13Windows x86-64

flexrag-0.1.7-cp313-cp313-win32.whl (187.7 kB view details)

Uploaded CPython 3.13Windows x86

flexrag-0.1.7-cp313-cp313-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

flexrag-0.1.7-cp313-cp313-musllinux_1_2_i686.whl (2.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

flexrag-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (948.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

flexrag-0.1.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (942.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

flexrag-0.1.7-cp312-cp312-win_amd64.whl (192.5 kB view details)

Uploaded CPython 3.12Windows x86-64

flexrag-0.1.7-cp312-cp312-win32.whl (187.7 kB view details)

Uploaded CPython 3.12Windows x86

flexrag-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

flexrag-0.1.7-cp312-cp312-musllinux_1_2_i686.whl (2.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

flexrag-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (948.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

flexrag-0.1.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (942.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

flexrag-0.1.7-cp311-cp311-win_amd64.whl (192.2 kB view details)

Uploaded CPython 3.11Windows x86-64

flexrag-0.1.7-cp311-cp311-win32.whl (187.4 kB view details)

Uploaded CPython 3.11Windows x86

flexrag-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

flexrag-0.1.7-cp311-cp311-musllinux_1_2_i686.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

flexrag-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (949.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

flexrag-0.1.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (943.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

File details

Details for the file flexrag-0.1.7-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: flexrag-0.1.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 192.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for flexrag-0.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1d67ba77eabb1f69de41d83cb5848c7759de727f7a52bf2f4ca688b7a296ee21
MD5 048437194ff1dc870620cb0645ad99ac
BLAKE2b-256 e56f6012f8fe0feb35048caf441bd1dd8dcef503e6475bffddad943299c05972

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp313-cp313-win32.whl.

File metadata

  • Download URL: flexrag-0.1.7-cp313-cp313-win32.whl
  • Upload date:
  • Size: 187.7 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for flexrag-0.1.7-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 89209ca07e5b28c9b56fef0c63a90391fd90203e3304c9df8d1b854353d0913c
MD5 f860c563e63685bb22ce1bf2c66d7f5d
BLAKE2b-256 27533d1cd4e5b54f5e3774c05cea591b0139eda03be3f1c8dd4fa2d80563e9f7

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b942007bc2d89832b87a431edebc1f497880eab5f50c6e5553f92f3e8dbe401f
MD5 447e191d72f05bf54c6ad9241b8f22ca
BLAKE2b-256 706b8b757fc7e23fc7b16871b19f458c2ac1f1e8c662b6dfea3397576aefd398

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 256ec4d9a91bfbbded4cf91fb6a8cca69d46a46262909898fd6a36acbaf4c787
MD5 63f51d99fc5d1c0cc301b5036318d216
BLAKE2b-256 68f777908473a929b4807500111e33112a52aef076db46670918ab600c07f1bd

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 796ecf2eb1c35256e68a65a6e975d8c9ae864ec9151fb4c5e5c433291ebcb2aa
MD5 6b48492e0287f11636c7189959849eaa
BLAKE2b-256 08234b4f679f028776f11143883b125c83082d2377c34adea9606c78231d09ad

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 470f777da9e9650d90662d7555a3d393db10c6937562a1a74509745373b1e381
MD5 301573d92aece825c0293e54df0ad570
BLAKE2b-256 7f6d128df66ebf228059a6c9e5b4ed15f1c4735e472f620439139e488eea3116

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: flexrag-0.1.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 192.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for flexrag-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bbaa5532ebd48ed675e4dafbebe0b1083ede7cf87a2135f70769ef21c9c8c7a0
MD5 a319ad4ff496ab460bdd4b245270d7d0
BLAKE2b-256 672c7b160436c39ba7e44c070bd0004831f9933e8b4152e9641bd7f1af866b35

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp312-cp312-win32.whl.

File metadata

  • Download URL: flexrag-0.1.7-cp312-cp312-win32.whl
  • Upload date:
  • Size: 187.7 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for flexrag-0.1.7-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 49ffeb569ae9b08dcf8e7a1344b342548709e4b81b8ca3d82a2a340590030e4b
MD5 b43c704ab7344a6d42087fdcb390e5df
BLAKE2b-256 a366b2bf567ec096ed148fa36124119ae61679b62232d0d06f8cd4502a1b8ce4

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7c429713efd787124056948ead2f34a371a6436a632534eb3c1fef147fb1d6ad
MD5 5ccb7b6979e8333e6f1ebcf6e56d3e1c
BLAKE2b-256 50d628237631be9ec79e227d79db87a711005c42a5e47558c77f22bcf3f11ec8

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 405a3966370ebc9b1ab8fffcc6775633584ef8bc5725ccff9240ac6a43c469d6
MD5 47862a9a09b6491982fc015a39dcfde8
BLAKE2b-256 3a0ec73a614c96c9ef749dda442802127704d4541bc33d9fa89c80de7306ebba

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 42608f874ed8849e01f8d5cb517c3a5a7ae2cda673267a39e7d6d027bdfc193d
MD5 51f9afdcfca11c7f586ea9e6255b2af4
BLAKE2b-256 f501604125b75323aff8a23ee14e61d6ef780bbf35cedd1874f93170025bc5f3

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 352d51c52c4af452f57fd5d73b7201704f5f201983588626361874e261d5d272
MD5 08e266d35061fbab712d83ce399dc5ea
BLAKE2b-256 2d557aea9bda1438a62bd9d46439e1bafd6017e8faf2a8abcbb4070ec80ef217

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: flexrag-0.1.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 192.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for flexrag-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b2d1903152bcc0081bb28c9d46d49bf0aa9c6660f37d1878b722a3a72d15b1ea
MD5 3b4664e973bb45eac939c253465c59be
BLAKE2b-256 858b55b4525328c0f922d9ed7c09fb881a7a55de506f26d7f137487b9ce59a52

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp311-cp311-win32.whl.

File metadata

  • Download URL: flexrag-0.1.7-cp311-cp311-win32.whl
  • Upload date:
  • Size: 187.4 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for flexrag-0.1.7-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 833affef270fe78f48716f3b59ccb76a223bb1798d6a8f4896d3d95ecf3eff2f
MD5 887b767c52e1553fd37ef5882fc4c812
BLAKE2b-256 c56bc0d5faff4ef716debb2ccd9bef4467a3ea71fedea786611ae2084633607d

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dd8196fb8d2ef720c98db3e2450d6b314676c4826237fd73a6a72c81440442bf
MD5 92ecf04d4dbf4d358b8821c813a05166
BLAKE2b-256 209e575e4664f285d857b0e083759d6013999f126b902d404e35cc5eb6d01992

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 99a7df670712045ec1915626d2b12f52bacbdd9d26a820fa21d7bff5f88e0081
MD5 098328c4e6f9948614db0ca6e3032a69
BLAKE2b-256 7b11c91265b90e8aec87dbac52258e9ad0ea53d920ea547fc0aad7863121f1c8

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bd2053489433197f678010bd004e6d9bed90cbfc23a12c3398a3f63eca6890b9
MD5 777675dde2cf2a36d5709fb7b900410f
BLAKE2b-256 2ed82f24ab97f4da1510b5c353042aaad8191b36c607e22fd50a7651e9f8f52f

See more details on using hashes here.

File details

Details for the file flexrag-0.1.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for flexrag-0.1.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 63ef9af22c009417ebe43901dc0427a267024c2a97827e5013de776b1b55e969
MD5 f75fb1032b424cda606aa9c6068d8147
BLAKE2b-256 b4f69a7686156040421ccb00c46ef62be021754e1d463e6f6f5af939e7023a21

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page