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.8-cp313-cp313-win_amd64.whl (201.3 kB view details)

Uploaded CPython 3.13Windows x86-64

flexrag-0.1.8-cp313-cp313-win32.whl (196.5 kB view details)

Uploaded CPython 3.13Windows x86

flexrag-0.1.8-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.8-cp313-cp313-musllinux_1_2_i686.whl (2.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

flexrag-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (957.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

flexrag-0.1.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (950.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

flexrag-0.1.8-cp312-cp312-win_amd64.whl (201.2 kB view details)

Uploaded CPython 3.12Windows x86-64

flexrag-0.1.8-cp312-cp312-win32.whl (196.4 kB view details)

Uploaded CPython 3.12Windows x86

flexrag-0.1.8-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.8-cp312-cp312-musllinux_1_2_i686.whl (2.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

flexrag-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (957.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

flexrag-0.1.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (951.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

flexrag-0.1.8-cp311-cp311-win_amd64.whl (200.9 kB view details)

Uploaded CPython 3.11Windows x86-64

flexrag-0.1.8-cp311-cp311-win32.whl (196.1 kB view details)

Uploaded CPython 3.11Windows x86

flexrag-0.1.8-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.8-cp311-cp311-musllinux_1_2_i686.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

flexrag-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (958.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

flexrag-0.1.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (952.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

File details

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

File metadata

  • Download URL: flexrag-0.1.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 201.3 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.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a5d875ca17239091ac1ec6bb8dcf1639327abde651df97a5fa9419fafc6c9f14
MD5 c6bc9746cc1a70673f50ceee73744d2e
BLAKE2b-256 11ab799dd9cb16ff91537fdee3f1101ff4e066800c0f4d124529af16a669d9b0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.8-cp313-cp313-win32.whl
  • Upload date:
  • Size: 196.5 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.8-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 2ddcd7d0fd68626b0f533f3be1e20b1ea4b244ffdd53d175480915224940c565
MD5 b4a568fe9b3ed03e2f5d562ce58c2bed
BLAKE2b-256 20f3be9621a097de5f22845b9e939affb75e46ea45dbd24ba70139438d445ed5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a527c38836b78d85512b0042f94717e397939272dd3d20f072663d84e6e61278
MD5 f08a5789b60ed94809eacbd30444be7f
BLAKE2b-256 fd22742144cb2d66dcd291010e0dc09794bbae4b4365f46ec232e491a4222e5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 404a161b86776f00ea5ec4ac16e48329c32e5bf8504a35234f831ef1dc85c8ca
MD5 7712cbf39e026a72985f57a9a19d3a19
BLAKE2b-256 518efcadacec4c8904b6ab66c7508662b7bb0693a4de2a9570c8c3e0fccf1248

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48d19dc07a5af91fe63af2a41d07d09c09632c6344e02b4516b61fcae479a777
MD5 30bb5b276d58a5fd132424637ed8aee5
BLAKE2b-256 49b8936527a31266291656512dcdac130c874912c2bb25934f9feee535b95091

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 686d7c8a0ca37b4b414b2524fa9cb34424e7735ab6f0c942baedaef06db314ec
MD5 3efa293181978dd2f82d9e029a1abf00
BLAKE2b-256 e769236c7d3364c6003636b74f1c5c232cbb1a06f3c480b065bd91a8cdaf2cc1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 201.2 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.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 118619b8a56ce7cac5599150fe8520d71e4a6554d8ab9e635359b7a6e0f4fe8d
MD5 b1a5df1c08ae4ac4d1a1aef13df255f8
BLAKE2b-256 aa30cb8ea727e5f9161e98fde6b7ed1ef1666a616265d570914caa2b1b99d363

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.8-cp312-cp312-win32.whl
  • Upload date:
  • Size: 196.4 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.8-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f8528b8766fb3aaab530ababfbc9aed8e2716fef658641526f56c1e05a2fcf95
MD5 cf7e73a8bcf5075540124d787d8ebb1f
BLAKE2b-256 beaf705ccd20b5191a0f754904b49a658f8e8b8fa9241603a0a28b6c8ac0c6b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c8ceda010ad8b34a7074b8d2f7873b5a67ffa907fa1351fa21d305636f331238
MD5 680008f9b3d190a3fb01005981f5e7a8
BLAKE2b-256 c3c66fbb5bf3ffa55611a6604174518016bc58700785bab1804c53eca7539b9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b36e9cfba966dc53ecf44f6b439222682ede1fabc400ee17131ab0b37f108564
MD5 15cbdd5b6a60ee97e52bf2fd8f86c45e
BLAKE2b-256 c4cbafdd8e6d3a953a11241f0324e0bc75ec9d15e09250e0ac17cfe4ef544e1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4db04ae719868de7a862e91b10476c52990f6a454bb672a9c0113f78348d8516
MD5 ab1ab46920581d6e5c3f5bc41d4e9c42
BLAKE2b-256 9a016230a1259c633a43ede78e483f48005366a2580f48f94a957a6245559757

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d676a6f9832efd0cfefeed2c88cf1e867dc0285ec0e5caf29b00db94aa9cc6db
MD5 7c038c576ed579fb89ada54852b2311a
BLAKE2b-256 9110533b71a4a840259f90eacfbc1afa4c4764b40f0f6cc98b086a660a0e5d06

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 200.9 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.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 021edf5c82be0e7b3a3109ff3f9cad3d7b08818bd44300ea9330856be387c074
MD5 5cbdff8f2f298c05d63b191bfbf3e43d
BLAKE2b-256 4a57cbc11641aa48a2583cef742b6179773e3a458db144eb429f5be2efe65f7b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.8-cp311-cp311-win32.whl
  • Upload date:
  • Size: 196.1 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.8-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 cb1263b579bb836d014c2beb65a7a620b5979f9fe272c59eda0f9cfed9716b7c
MD5 ae0f6c342429fb73cad636122d65d70d
BLAKE2b-256 c336ce010efc065add3e455946741ee9c31ee21a1ba59cb536ead08bb3be0de9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 06e304d1ce4598d9fe9fdb3f96c097c26f28313c8daebcd3c1e1150b901524e2
MD5 5e8e9cb164141a7805ae2abee5a83dc8
BLAKE2b-256 5f5ef1b85437712cb412adb69cca8c72941fb25595508d38ced6c6406f8b9cb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 44e60e03fe8e76357027bf3bd4b5e24a2283adb82e54322b646e979baa9099e0
MD5 95e0340e01427c4b47a4b5dc6e0defce
BLAKE2b-256 a7af37a868fa7a29aec85469734c09bfe62e28eb7443c2c488b9cef1fd9a0866

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9e6a61006c0d1bb031a0f9e279d1f7e561033c1da01e01f7b983efc436fbf12
MD5 d65e9f869dae626b5ae4a346ef80ca0a
BLAKE2b-256 18baeed6f34676152fc5bbcaf1cd8f5b8c62c3dc355d1627a8e2e37e596feb02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 147b48ed43bc4bfed39b60139bcd3fd8c4da83044cf604be53b7ee881ac1b526
MD5 ef756291f8d705276571f53500000e79
BLAKE2b-256 037393eb6594c3aa27fca02a472a407dba3036eef2c2133d60f4f01925d7859f

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