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

Uploaded CPython 3.13Windows x86-64

flexrag-0.1.10-cp313-cp313-win32.whl (205.6 kB view details)

Uploaded CPython 3.13Windows x86

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

Uploaded CPython 3.13musllinux: musl 1.2+ i686

flexrag-0.1.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (966.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

flexrag-0.1.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (959.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

flexrag-0.1.10-cp312-cp312-win_amd64.whl (210.3 kB view details)

Uploaded CPython 3.12Windows x86-64

flexrag-0.1.10-cp312-cp312-win32.whl (205.5 kB view details)

Uploaded CPython 3.12Windows x86

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

Uploaded CPython 3.12musllinux: musl 1.2+ i686

flexrag-0.1.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (966.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

flexrag-0.1.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (960.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

flexrag-0.1.10-cp311-cp311-win_amd64.whl (210.0 kB view details)

Uploaded CPython 3.11Windows x86-64

flexrag-0.1.10-cp311-cp311-win32.whl (205.2 kB view details)

Uploaded CPython 3.11Windows x86

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

Uploaded CPython 3.11musllinux: musl 1.2+ i686

flexrag-0.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (967.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

flexrag-0.1.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (961.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

File details

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

File metadata

  • Download URL: flexrag-0.1.10-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 210.4 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.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f05b87d080d1a9189e6cc8711446ab8119eb1ae4aa4108489a38a49c91562a28
MD5 d065b9de7c2746a95de921e268691347
BLAKE2b-256 5113851825a3b225c6f1a6a2853b37e96fdc382b379a7c6123e52e269b4e681f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.10-cp313-cp313-win32.whl
  • Upload date:
  • Size: 205.6 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.10-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 3f42f7e950b818c6e924c6dfd2b312a3ca49528bd9e40c5a883693eb6d2b8e5d
MD5 0e44aaed8ca2c7ffa22a4be5a047e8d1
BLAKE2b-256 4f1d0abcb85bc4b9e7879435659c2dadd137da88149dc477c6f8223fc7a34ad0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d1afc0142aafeb73655aec513edbdc78190c9a9937b84f03273f827e92878948
MD5 456f26f90f49460fd81150c5940ca287
BLAKE2b-256 d5c9b2ff41df0b7a534731ab3c82c7ce6067cfce0142f3107fe1a176d9b391c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2f92266d56ea6a8918b997c45152a6ef9f91baa3d1dc5792cbfdbde148fda2f3
MD5 b6ae87112016869a2f4101f0ca8e8baa
BLAKE2b-256 76f252fa03349033b8f9fb990a424587fe638d18dd95e8121735c95dc4a2a877

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2df44f06fbd348646e390bfe6c18e16fbc94a8a94684307cdf31c5f9cfac0b99
MD5 a19b33710665e1b721fa1643f37bb8b3
BLAKE2b-256 35b8e904f2e38eac01af544786306ed082d44b1fd9fcf8e35ef6c90bd44f8bff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b7452ec94d6bbf22992a70a8b4c3015506bc61c5da85bee25a55b748de82d61a
MD5 981fc330c37018c6ebc0a46455d78850
BLAKE2b-256 38520e2e273ab53c1ed0e17242b84d9bd5f09ed36c54ef58d32896e36f1bd3c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 210.3 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.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b25de06f46ff98511850c35bc38ecb902648ee1bb06306cd607cae4f93424abc
MD5 3c17e15aff9985bed363e6e83d4b3f81
BLAKE2b-256 787e453cd72fc728e79bffbe3b119d2ed2bd8d65541e2a6a20abdadee27ac0a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.10-cp312-cp312-win32.whl
  • Upload date:
  • Size: 205.5 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.10-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 8d26658cb2cf66547261733b8e18c429593855ba2fb472e67f80da2fb1b82321
MD5 60abe423341ac0aa7017a5be355697f0
BLAKE2b-256 ac1f1209949a9a2c5def67c230eef9ec7c66fc1d568426c71893d6b9232a4bb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9997106dcfc4f1aec8326118633454abff3faebab69b57a9d8e56951eaa6d56e
MD5 c23367dbe8143ebb84981753e35229ea
BLAKE2b-256 aab12e18eaf7d5c1a407faf7fdc47547f9241a0037c2009521c8ed757e96a99b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f9822a317ffce83e0d656ff184724be86a6fa4610540bc91462893092b97c98c
MD5 648b0830296e022c830d317616abd83a
BLAKE2b-256 3653ff131fdbc4719340f1c58b5165b82e521e55fb77d259dc638273c9a49cf7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a8208d295b40feb266d6b0a83dedb33bd024a8209155a2d73cd09f58dd5a05f
MD5 55de76f987010a807272cae472ad5047
BLAKE2b-256 a0dc07d42a2b4d8d88800ed1e363428aa1fbc97873b1d50bccf8bc01d0112c7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 24849c2d4d14b1f33174ce0ae722e8bc216a293fa07c2d28fb47c3ad80a1c983
MD5 9b1d1744cc374f34b57f86809dc20e57
BLAKE2b-256 a94a921e4ccd57ecebf1699f4b2d2eb4ce1ff9cdf62530568d0189e9ad506cd5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.10-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 210.0 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.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 95300b60b937340056c880ad5f3d7074a392029708d34d0cd96bc473de579413
MD5 e857474175cab5c90cf92fe97d6a09a4
BLAKE2b-256 d1e3a2c2bfdbe75ed4ff41bf9b683402e88efd4fbcbbc2a1c37a648e1e1f6b99

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.10-cp311-cp311-win32.whl
  • Upload date:
  • Size: 205.2 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.10-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 53e074754a92a3a91846b47e431427da178660010ba8db0678c22c28e7ba187f
MD5 990079ad729ce615c9989fef3acbac12
BLAKE2b-256 8504cd475f252e05f4c061b504a23963599add6c587184cfaf9883c161cd4465

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f50656e9b14d149c59291cdedc91d467096d57f5e20852636b48b1be779d3fc9
MD5 d7b23a5c72fb6c2487cd298fa491b08c
BLAKE2b-256 25972b3972210977e3b346fb9b6ec1385aa544dffc48e4f71fd49ce40770ac64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d90b3102930674b3164a32b1fc147baedda7f5499c6b01bd3f787a1b065ca37e
MD5 adbba3a3e30a23808e60ffc8d08fa70c
BLAKE2b-256 b7e1791e76d1fe00bf9a343ce1da90026d6a7eb5fbe994843cd73a9e72f4ca75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 011b3d0c3a7741e93ae6dda0bd66f3fc5c3427ecc366c76dd6b8a8dd99688ec4
MD5 65556aa7200d58cb1302ce0302a57e13
BLAKE2b-256 0688248c455fe0f7759e40b08e5065fba2139c931aee482dd11fbeb45a04f64b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c74fb179d193777b4af23b3e5d68ab19d3429bfacbcbcb5fc9b7aa1d02e3e8c3
MD5 308ef3356d274febac60e98557e18f2a
BLAKE2b-256 556f5d8f66e2726ba198087ee463207f751d9cdb348b2ec3f2d5f4b2a8c62ef6

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