Skip to main content

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

| Introduction Video | README (chinese) | Documentation | Retrievers | Examples |

FlexRAG is an innovative open-source framework designed to streamline the rapid reproduction, development, and evaluation of Retrieval-Augmented Generation (RAG) systems. It provides comprehensive support for various RAG scenarios, including text-based, multimodal, and web-accessible applications. With an end-to-end pipeline covering everything from data preparation to system evaluation, FlexRAG empowers researchers to efficiently share their work with the community and swiftly develop demonstrative prototypes based on their algorithms.


📖 Table of Contents

✨ Key Features

📢 News

  • 2025-03-24: The Chinese documentation is now available! Please visit the documentation for more details.
  • 2025-02-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.

🖋️ Citation

If you use FlexRAG in your research, please cite our project:

@software{Zhang_FlexRAG_2025,
author = {Zhang, Zhuocheng and Feng, Yang and Zhang, Min},
doi = {10.5281/zenodo.14593327},
month = jan,
title = {{FlexRAG}},
url = {https://github.com/ictnlp/FlexRAG},
year = {2025}
}

❤️ Acknowledgements

This project benefits from the following open-source projects:

Metadata

Release files for flexrag 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for flexrag 0.3.0
File
flexrag-0.3.0-pp311-pypy311_pp73-win_amd64.whl PyPy 3.11 PyPy 3.11 7.3 Windows x86-64 Details
flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-32 Details
flexrag-0.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
flexrag-0.3.0-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details
flexrag-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
flexrag-0.3.0-cp313-cp313-musllinux_1_2_i686.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-32 Details
flexrag-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
flexrag-0.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-32 Details
flexrag-0.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
flexrag-0.3.0-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
flexrag-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
flexrag-0.3.0-cp312-cp312-musllinux_1_2_i686.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-32 Details
flexrag-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
flexrag-0.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-32 Details
flexrag-0.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
flexrag-0.3.0-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
flexrag-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
flexrag-0.3.0-cp311-cp311-musllinux_1_2_i686.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-32 Details
flexrag-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
flexrag-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-32 Details

Total release size: 24.2 MB

Release files / flexrag-0.3.0-pp311-pypy311_pp73-win_amd64.whl

Download URL flexrag-0.3.0-pp311-pypy311_pp73-win_amd64.whl
Size 416.3 kB
Tags PyPy 3.11 PyPy 3.11 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
c901de2b062ebb115772e2b46fe26f5ccc428d9f0b8598c3ef849d3bd9b2f492
BLAKE2b-256 checksum
How to use checksums
8ea144b23b258e5a818b746c080ca59b97056701a2165a34c14e661655923205
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 446.7 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
5be344a1159c57f0751d3f9450a19ad418f42f887626f13d7a87394a97a757da
BLAKE2b-256 checksum
How to use checksums
3e5f468d6bad83d9c480eea0bc9137626fbfaef08c4a6edb54deaccea6b7ca3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Size 452.7 kB
Tags Linux glibc 2.17+ x86-32 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
f0e6faee35e3f9153b969405df02e57f99c0eaaff01f85e6c6915b4725c47647
BLAKE2b-256 checksum
How to use checksums
f865ee571f9d624c94e0b5406d8638bf7f257176ddd4051ce0ca13c18bbbcae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp313-cp313-win_amd64.whl

Download URL flexrag-0.3.0-cp313-cp313-win_amd64.whl
Size 416.8 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e7a80dcebef6445f54dcd3c8fbeba0c308e0f6546310bb86bc08313fd50a04a9
BLAKE2b-256 checksum
How to use checksums
774ee113e6b2787fa870634193416adf2ca7d06cf73bbac1dda28715381a1e21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / flexrag-0.3.0-cp313-cp313-win32.whl

Download URL flexrag-0.3.0-cp313-cp313-win32.whl
Size 411.8 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
18bbe07650277306ccfdb9d859fd25566dee5ebc799a1b8e0b9e16a0ddc364ff
BLAKE2b-256 checksum
How to use checksums
3a08c6b782aad5837e6550d838bcd4df53806ad08d960e55a48c0b0c67b5f754
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / flexrag-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL flexrag-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
749f533c942d9d21d1f73503a52ff3b38560c50dca0f482e412f28b7413abc30
BLAKE2b-256 checksum
How to use checksums
8025f7d82da61d00f7f1e19c755e57cc36bdf3b9b8a1f5d8ebdd934361cea970
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp313-cp313-musllinux_1_2_i686.whl

Download URL flexrag-0.3.0-cp313-cp313-musllinux_1_2_i686.whl
Size 2.3 MB
Tags CPython 3.13 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
43e4b05e9a46437bfc3473b12a30c4e588c8d94d35bd3b719136118e906fc256
BLAKE2b-256 checksum
How to use checksums
2ff3934f39ca061cc20edf1c8c208ffa50f9ceb36c6bb8e2dde015c20f5ab76b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexrag-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
938399ddd9ecfe217b1e9dd11652c51b341029f564ab7e45031c3f16b6606e8b
BLAKE2b-256 checksum
How to use checksums
4901c2487191113a6c3e71b1308acecfb79385158c52c9cee92d3f4b3814ce5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL flexrag-0.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.2 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
d9f5b13fc714b669dd7f3f03c3d4d607cef39493960f5713d4b58294edbe5db8
BLAKE2b-256 checksum
How to use checksums
af85bb823f1cf110d44daf90dbd7e9e6f201dfe7d68b4c83da29356d9e1a5dd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp312-cp312-win_amd64.whl

Download URL flexrag-0.3.0-cp312-cp312-win_amd64.whl
Size 416.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
38aa7f98e2bb1eede93ac692a7a708a856571ebd68b72468ba587748b7683f36
BLAKE2b-256 checksum
How to use checksums
7268e876577093b0f16a71db3c875ff7ea382e38deb64c121cd61043817bc5bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / flexrag-0.3.0-cp312-cp312-win32.whl

Download URL flexrag-0.3.0-cp312-cp312-win32.whl
Size 411.8 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
4c1bbb518d86f4ade89708ad862237bb4f9f8b44e6909e48bd49e4bd68740eaa
BLAKE2b-256 checksum
How to use checksums
1ce5a6395d1bd3ffdaba87f8d0a1c1957f9f263c1c4e061e0891fe874633bb82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / flexrag-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL flexrag-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e3bea8396b0b2d57e4eccd802c79aa2a717949b53df5f93e59e82e634c43bf79
BLAKE2b-256 checksum
How to use checksums
f6100d4020bad8f42e2b4a150accef6a5fa7c854df626502f09a043fd972eb37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp312-cp312-musllinux_1_2_i686.whl

Download URL flexrag-0.3.0-cp312-cp312-musllinux_1_2_i686.whl
Size 2.3 MB
Tags CPython 3.12 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
77d3705ec3905e62de697c14d490fe02537f17bf5206d6520fe28a5def8c7cb6
BLAKE2b-256 checksum
How to use checksums
27b5cc42bce46b90efe5a32fdcb6c5244f2645010dfe41d8e291c1fb880c77c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexrag-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ef844de594561147541c1895ef0353532588213e82c99ecffe4d1bc3aa16c7ee
BLAKE2b-256 checksum
How to use checksums
1346885f17576a078746b4faaf50bd18c79a9def22ee58b3bc8552c5ca296cc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL flexrag-0.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.2 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
12182cf7a4e13d49250f9275e5a8a882a1667780b7fd80a729729b36d9f4f670
BLAKE2b-256 checksum
How to use checksums
6ccc198bda4fe7b5cabb71a21f8b46ead6c84cf0671d6986bdaf21c7f0fe0ca9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp311-cp311-win_amd64.whl

Download URL flexrag-0.3.0-cp311-cp311-win_amd64.whl
Size 416.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8a10404e16293107c67a8a0896d6c1c6b12c690adff961a15dfef4cb5acd1291
BLAKE2b-256 checksum
How to use checksums
c8858788c4c325acb82feacac648e0853d9722470c42af3263fc330cf147318e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / flexrag-0.3.0-cp311-cp311-win32.whl

Download URL flexrag-0.3.0-cp311-cp311-win32.whl
Size 411.3 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
f13ce1bf2d8a920e9a08f7d381362c44e8d350bd8d0794e6b1bcabdbf1d7d7c2
BLAKE2b-256 checksum
How to use checksums
52e4bb6c7ebe5ec8199ef28ee1fa7f8638765b2b57fc37eb79a0a38b525f770d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / flexrag-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL flexrag-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
555d316996d4270b2181ebb5efa86b35304a641af95da946acc890a4841979f6
BLAKE2b-256 checksum
How to use checksums
0c9f9210308541aba76ec0cd1d7a094253419f00fab71f0ccae0ad8078830b90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp311-cp311-musllinux_1_2_i686.whl

Download URL flexrag-0.3.0-cp311-cp311-musllinux_1_2_i686.whl
Size 2.3 MB
Tags CPython 3.11 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
163506439b50af394bbccf35782fb763d51bc4f95c74dc2ceb0543ea783db472
BLAKE2b-256 checksum
How to use checksums
25c09e4659129257f050c79a9cf2e72456c7ce3394d3801d270f6f7ecddcc023
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL flexrag-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
17dce39224fa691fd9b72be93797a77fba5a1b20fa584e42cc806ddc4d45ecec
BLAKE2b-256 checksum
How to use checksums
3feca0eca09af1a23e383602206b735bfc6991f0d34c65f183ce40a1f9915aa1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / flexrag-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL flexrag-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.2 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
8a3972f116f7a4091a79af944c2cc1af75e43376cfa183a4d1ced82e461d45eb
BLAKE2b-256 checksum
How to use checksums
0dbe7bb233611d82d084d92e538d45a2d5ca7caf0f06fc410f489fa33289f155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Security for flexrag 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page