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-2-25: FlexRAG's LocalRetriever now supports loading from the HuggingFace Hub.
  • 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.11-cp313-cp313-win_amd64.whl (397.8 kB view details)

Uploaded CPython 3.13Windows x86-64

flexrag-0.1.11-cp313-cp313-win32.whl (393.0 kB view details)

Uploaded CPython 3.13Windows x86

flexrag-0.1.11-cp313-cp313-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

flexrag-0.1.11-cp313-cp313-musllinux_1_2_i686.whl (2.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

flexrag-0.1.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

flexrag-0.1.11-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

flexrag-0.1.11-cp312-cp312-win_amd64.whl (397.7 kB view details)

Uploaded CPython 3.12Windows x86-64

flexrag-0.1.11-cp312-cp312-win32.whl (393.0 kB view details)

Uploaded CPython 3.12Windows x86

flexrag-0.1.11-cp312-cp312-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

flexrag-0.1.11-cp312-cp312-musllinux_1_2_i686.whl (2.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

flexrag-0.1.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

flexrag-0.1.11-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

flexrag-0.1.11-cp311-cp311-win_amd64.whl (397.5 kB view details)

Uploaded CPython 3.11Windows x86-64

flexrag-0.1.11-cp311-cp311-win32.whl (392.6 kB view details)

Uploaded CPython 3.11Windows x86

flexrag-0.1.11-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

flexrag-0.1.11-cp311-cp311-musllinux_1_2_i686.whl (2.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

flexrag-0.1.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

flexrag-0.1.11-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

File details

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

File metadata

  • Download URL: flexrag-0.1.11-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 397.8 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.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 44f888bfdc9480b17d4f1ec3258b55b4bd3840e44ca3e625e061d7771c99940d
MD5 12cdda6d95c177e80920523f93e83812
BLAKE2b-256 9ea7904257718846698302dee15e517800ff891a662df1c09a8ecf8953e5d424

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.11-cp313-cp313-win32.whl
  • Upload date:
  • Size: 393.0 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.11-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 e13f1196f7494cdf181c6813ee231055f8d471ee1d91c7cc604a2cf475b1a2fe
MD5 7866da7c68439783eb50f06047136c3d
BLAKE2b-256 7823748103befeb9de7bbcaa0dc732f291bc4fa0d3eb0ea8de3edee5a287a356

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d4a39a6910e2ca626c7ca17af3e834516e9248f7be128b75ca094787b1ea3c7f
MD5 0df14d19106f73e7378cb16d9eaa9ae1
BLAKE2b-256 60bbf6355d87de728a665c43b988794350772800caad9909b0ace08d5af652d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 20ccc3dcbc1c654f50fb2111f870bb7ce5b4635f78b8b0dd32a07544ee0a0042
MD5 1471efda7d9e25c3fc7adbecbdc83c54
BLAKE2b-256 4cc5a40badc5f9d12b3e6ee2e11ef00b50b38896fab181ff945ef0f9f83fae47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b32578d2e07627e2b766404ddb324566081481ddeaea8de39979490f5ff11e20
MD5 c2e254c16d3c6357eb5778e6e263f6c0
BLAKE2b-256 536be139ab82afc02d9b3e1db37f02a56647a8a14c6bfde23d2b230fa6e11cba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 caeba7a718770875a58faf281a3f2c130d4cb7fc69a4d8e301c534065d3adb85
MD5 5baf784d0bc9db2fd2e136f328d3384d
BLAKE2b-256 56f97316084b6d140529305c36be79f2035e7e033c8d60549686e8b34424646b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.11-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 397.7 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.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a6366bd07e339659408386a314cba4068ac2d960382807c20c224ab933d03aff
MD5 e92440ed118e0ea5290440c7a006109d
BLAKE2b-256 08315684f90c8e5254b009cf98297da1600471440b02249b11e7f909cc738aec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.11-cp312-cp312-win32.whl
  • Upload date:
  • Size: 393.0 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.11-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 2a1e689c7deeab07b208ae2dc4d93307e1baef612ddff861db20fd5c40d36dff
MD5 8fa83b8968acff2c4df6d55c49d46d37
BLAKE2b-256 a52b6110019a5dbd5d664310f543748553cc9ed32f35a05b51bb34e57e469b19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 78ded0d43aa1bc7672952a4c415b9cb26d3095498a7cf631e0d273805e823cc3
MD5 5cfa3e0e237f0ff6a22595f6f4b1b390
BLAKE2b-256 9499b9dca4b0499455de4ab943d6263e73e45b55df3aa511442e2b0d525f84bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 3af5727c891b4040ccbf13a33bb326f132401681ef9e40366f159a884ab32d96
MD5 70da9098a421fe7701adf34657942522
BLAKE2b-256 7ce3d55e6ee6eddcbc35b630b6f2cad37e0c988ecb153d7c40b1a9c77b69f2e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e7fca6af5adddd7bf6f5f9c2d934d99c676e4a6144b57907efc51d202a81d98
MD5 a248f30b7071ef48ab4c8c13c97b402c
BLAKE2b-256 2967bba679fa84e04ad8e853135e66a98b2fb032612f5085cf0de3cabe2f358c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f4d9e576da48cf541584eabac4fc31ff3319da0541cf3e6ee9426b9b1452769a
MD5 c1b63d0c6c04c18591721c36c984eb89
BLAKE2b-256 f935cb2e9913739dca6d071a44e9f5a322145eaff921f5aa9db144ed0a4847b0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.11-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 397.5 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.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b4d5825a1728a67d6973d2a0b9ec0151b4106ea3ce47b9bdbcb141e689168f93
MD5 fd9c97a28c74e09263ca83d4e899103a
BLAKE2b-256 6dba75c09ad1462650c03f945b8b3f9111b4c820c836d895f3b217e89b4a6873

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.11-cp311-cp311-win32.whl
  • Upload date:
  • Size: 392.6 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.11-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 368fd257998b197d8ebf7a0f86c189d646e7f9d066f0c652c32cbc734c21498a
MD5 862d2f08e55c430fc6a04631ae1aaa3b
BLAKE2b-256 c5143e6063922263a3bf8361403d8d2061711776bdbcc200735dfe3c97cf57bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e36d664b828bbea0dcb7c3978995add9c240b89d34b8cf6d2fc11663d04c44f
MD5 77f571eafd0b24b2c416304c976df2bc
BLAKE2b-256 ad644090680487e422bbb08aab418a4a157315ba16a27bea4432acedad76f03d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f4f95bec6b15ccf33ac67cf3b7c744aeb70cc2d99e5a8e12149a8d1faa7762db
MD5 b5261e784324854fd8587559f7c03ea4
BLAKE2b-256 91500ea7b59cd927f203f397ce1b7d993b28b7474e92e98bd099e894bee2b86c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7e49eab9934740901319c1229d2e8bb392393fa2ed7abf2f4fe8e9fdda64b0a
MD5 6f21309a0d25a5721580c7d5428af2d0
BLAKE2b-256 4ab3ac578933e0143e0006e440a828c4e9c2bac37f8600329261f65af043d93a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.11-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 58e69c1b8f4970116b04dc89b7a6ff28055502fd062271f26d6df538406f25e4
MD5 67e8323060125de2a616cb2324388041
BLAKE2b-256 adf2984529311c97653d75169afb8a15f2aa5e3271118116f73e652a6efe6d30

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