Skip to main content

Flexible RAG (Retrieval-Augmented Generation) framework for building AI applications.

Project description

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:

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.3.0-pp311-pypy311_pp73-win_amd64.whl (416.3 kB view details)

Uploaded PyPyWindows x86-64

flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (446.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (452.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

flexrag-0.3.0-cp313-cp313-win_amd64.whl (416.8 kB view details)

Uploaded CPython 3.13Windows x86-64

flexrag-0.3.0-cp313-cp313-win32.whl (411.8 kB view details)

Uploaded CPython 3.13Windows x86

flexrag-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

flexrag-0.3.0-cp313-cp313-musllinux_1_2_i686.whl (2.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

flexrag-0.3.0-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.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

flexrag-0.3.0-cp312-cp312-win_amd64.whl (416.8 kB view details)

Uploaded CPython 3.12Windows x86-64

flexrag-0.3.0-cp312-cp312-win32.whl (411.8 kB view details)

Uploaded CPython 3.12Windows x86

flexrag-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

flexrag-0.3.0-cp312-cp312-musllinux_1_2_i686.whl (2.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

flexrag-0.3.0-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.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

flexrag-0.3.0-cp311-cp311-win_amd64.whl (416.5 kB view details)

Uploaded CPython 3.11Windows x86-64

flexrag-0.3.0-cp311-cp311-win32.whl (411.3 kB view details)

Uploaded CPython 3.11Windows x86

flexrag-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

flexrag-0.3.0-cp311-cp311-musllinux_1_2_i686.whl (2.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

flexrag-0.3.0-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.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

File details

Details for the file flexrag-0.3.0-pp311-pypy311_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flexrag-0.3.0-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 c901de2b062ebb115772e2b46fe26f5ccc428d9f0b8598c3ef849d3bd9b2f492
MD5 fd42c4b9d613de033a587e73a77869ce
BLAKE2b-256 8ea144b23b258e5a818b746c080ca59b97056701a2165a34c14e661655923205

See more details on using hashes here.

File details

Details for the file flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5be344a1159c57f0751d3f9450a19ad418f42f887626f13d7a87394a97a757da
MD5 f134213bb2aee641ec9d62f84fb12fa4
BLAKE2b-256 3e5f468d6bad83d9c480eea0bc9137626fbfaef08c4a6edb54deaccea6b7ca3d

See more details on using hashes here.

File details

Details for the file flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for flexrag-0.3.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f0e6faee35e3f9153b969405df02e57f99c0eaaff01f85e6c6915b4725c47647
MD5 67f8922c48bbf03e1f0f7d8d95c70585
BLAKE2b-256 f865ee571f9d624c94e0b5406d8638bf7f257176ddd4051ce0ca13c18bbbcae2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 416.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.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e7a80dcebef6445f54dcd3c8fbeba0c308e0f6546310bb86bc08313fd50a04a9
MD5 f852257cd48a06bc50211cf4b4f3577f
BLAKE2b-256 774ee113e6b2787fa870634193416adf2ca7d06cf73bbac1dda28715381a1e21

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.3.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 411.8 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.3.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 18bbe07650277306ccfdb9d859fd25566dee5ebc799a1b8e0b9e16a0ddc364ff
MD5 b6963d809fd9b20684f378483a9f879e
BLAKE2b-256 3a08c6b782aad5837e6550d838bcd4df53806ad08d960e55a48c0b0c67b5f754

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 749f533c942d9d21d1f73503a52ff3b38560c50dca0f482e412f28b7413abc30
MD5 a3c24987c95ef9888c9530901be3d47e
BLAKE2b-256 8025f7d82da61d00f7f1e19c755e57cc36bdf3b9b8a1f5d8ebdd934361cea970

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 43e4b05e9a46437bfc3473b12a30c4e588c8d94d35bd3b719136118e906fc256
MD5 1f812bd287f95d0306ae46e8723a9a8b
BLAKE2b-256 2ff3934f39ca061cc20edf1c8c208ffa50f9ceb36c6bb8e2dde015c20f5ab76b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 938399ddd9ecfe217b1e9dd11652c51b341029f564ab7e45031c3f16b6606e8b
MD5 815f7db98143275a8352fb052a4e35fe
BLAKE2b-256 4901c2487191113a6c3e71b1308acecfb79385158c52c9cee92d3f4b3814ce5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d9f5b13fc714b669dd7f3f03c3d4d607cef39493960f5713d4b58294edbe5db8
MD5 f5dc2a48dae91e2b205f17ccd4beddcd
BLAKE2b-256 af85bb823f1cf110d44daf90dbd7e9e6f201dfe7d68b4c83da29356d9e1a5dd7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 416.8 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.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 38aa7f98e2bb1eede93ac692a7a708a856571ebd68b72468ba587748b7683f36
MD5 35ff6845adb7d7ae337add343f9840f9
BLAKE2b-256 7268e876577093b0f16a71db3c875ff7ea382e38deb64c121cd61043817bc5bd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.3.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 411.8 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.3.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 4c1bbb518d86f4ade89708ad862237bb4f9f8b44e6909e48bd49e4bd68740eaa
MD5 9065a3a810b50c13956d504d96317312
BLAKE2b-256 1ce5a6395d1bd3ffdaba87f8d0a1c1957f9f263c1c4e061e0891fe874633bb82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e3bea8396b0b2d57e4eccd802c79aa2a717949b53df5f93e59e82e634c43bf79
MD5 bbfa499069066aec0207e26f49ec9e1c
BLAKE2b-256 f6100d4020bad8f42e2b4a150accef6a5fa7c854df626502f09a043fd972eb37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 77d3705ec3905e62de697c14d490fe02537f17bf5206d6520fe28a5def8c7cb6
MD5 0628be7227f69fff28b47128846ebe44
BLAKE2b-256 27b5cc42bce46b90efe5a32fdcb6c5244f2645010dfe41d8e291c1fb880c77c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef844de594561147541c1895ef0353532588213e82c99ecffe4d1bc3aa16c7ee
MD5 4f8939f95b306dea3e1278e4672a4e21
BLAKE2b-256 1346885f17576a078746b4faaf50bd18c79a9def22ee58b3bc8552c5ca296cc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 12182cf7a4e13d49250f9275e5a8a882a1667780b7fd80a729729b36d9f4f670
MD5 8c9cc239ca7685cfb903b8cd3a8a4f83
BLAKE2b-256 6ccc198bda4fe7b5cabb71a21f8b46ead6c84cf0671d6986bdaf21c7f0fe0ca9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 416.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.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8a10404e16293107c67a8a0896d6c1c6b12c690adff961a15dfef4cb5acd1291
MD5 24e90c80fd3648e887d0eb56bb8ee9a1
BLAKE2b-256 c8858788c4c325acb82feacac648e0853d9722470c42af3263fc330cf147318e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.3.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 411.3 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.3.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f13ce1bf2d8a920e9a08f7d381362c44e8d350bd8d0794e6b1bcabdbf1d7d7c2
MD5 d9326d65705809b839c56fc6f5463f09
BLAKE2b-256 52e4bb6c7ebe5ec8199ef28ee1fa7f8638765b2b57fc37eb79a0a38b525f770d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 555d316996d4270b2181ebb5efa86b35304a641af95da946acc890a4841979f6
MD5 5a50ab11940cca7f5e24eefe1b76b10f
BLAKE2b-256 0c9f9210308541aba76ec0cd1d7a094253419f00fab71f0ccae0ad8078830b90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 163506439b50af394bbccf35782fb763d51bc4f95c74dc2ceb0543ea783db472
MD5 721fec28e5d87c3c46502ee02de3facd
BLAKE2b-256 25c09e4659129257f050c79a9cf2e72456c7ce3394d3801d270f6f7ecddcc023

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17dce39224fa691fd9b72be93797a77fba5a1b20fa584e42cc806ddc4d45ecec
MD5 112373cd9cb07b302232f12f94b10b3e
BLAKE2b-256 3feca0eca09af1a23e383602206b735bfc6991f0d34c65f183ce40a1f9915aa1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8a3972f116f7a4091a79af944c2cc1af75e43376cfa183a4d1ced82e461d45eb
MD5 a86be07ad3e24bf56ef2a4a99092bc8c
BLAKE2b-256 0dbe7bb233611d82d084d92e538d45a2d5ca7caf0f06fc410f489fa33289f155

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