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

Uploaded CPython 3.13Windows x86-64

flexrag-0.1.6-cp313-cp313-win32.whl (185.0 kB view details)

Uploaded CPython 3.13Windows x86

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

Uploaded CPython 3.13musllinux: musl 1.2+ i686

flexrag-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (945.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

flexrag-0.1.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (939.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

flexrag-0.1.6-cp312-cp312-win_amd64.whl (189.7 kB view details)

Uploaded CPython 3.12Windows x86-64

flexrag-0.1.6-cp312-cp312-win32.whl (184.9 kB view details)

Uploaded CPython 3.12Windows x86

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

Uploaded CPython 3.12musllinux: musl 1.2+ i686

flexrag-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (945.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

flexrag-0.1.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (940.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

flexrag-0.1.6-cp311-cp311-win_amd64.whl (189.4 kB view details)

Uploaded CPython 3.11Windows x86-64

flexrag-0.1.6-cp311-cp311-win32.whl (184.6 kB view details)

Uploaded CPython 3.11Windows x86

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

Uploaded CPython 3.11musllinux: musl 1.2+ i686

flexrag-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (947.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

flexrag-0.1.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (941.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

File details

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

File metadata

  • Download URL: flexrag-0.1.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 189.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.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 97e9ae979bda1d0f341e41ab39c5f56a72b0cf25a989f7f962a8e568a541829c
MD5 e207f754000e5fbfc683ca30e7316524
BLAKE2b-256 e1e7b78c070007079c5afb570a92ab735e79b1e3a900c0f71c76514adbdab52e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.6-cp313-cp313-win32.whl
  • Upload date:
  • Size: 185.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.6-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 fa73ad53ad78e30bc5015afd2d944f6fc8c6e682534a8cfbe2a7ad97792b3ff3
MD5 e1af260a7660df8d5302d36bd0e4d122
BLAKE2b-256 40a626c82d001e12b47455386d1951b4081d1c02e865d10ffb84074256e079b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 40cd07de2c3e224728d3615a4b0f84c9759ebb1f84592a3ef9624c296466864e
MD5 57733f3f0ad04633800ba4304d5c3a82
BLAKE2b-256 0844fd1579e81bb1d283e66e3852b69cfa3c1ef9ae9054b07242ce1e80edf274

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b08c02c93f6addf294b5d612d37269a90bb73230c7715972658217e967daf66b
MD5 83176da6f9f1159fe51c0202ae05afa7
BLAKE2b-256 fe5195a5e82245111f059f789e61126378a77bd6e1c49df8a67c220dad8853c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5cae912fc87979e77cdd0476ac9c4ad57faae0feb1f149fc4d12cc07a2f2f60f
MD5 66b85b48247013d53b5a98326b89c115
BLAKE2b-256 4184eff670f796a378b206dd98f43b2ac2ae1c7ae726303f65555b0d28a9fa10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 27d5ba29e08349b35128e333e0168a4b8da67feb6b4a88ee4511b940363e85be
MD5 9afa5aa49c3b803e1915e92b968d6a6d
BLAKE2b-256 bdfea7e380d0faaf8abe98814fcb3881135d757b51971421337adc0cb730f6f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 189.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.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 33e42eb904f8d4b66d4c73ec179c0ebbdc0a7b1bd4a52f30672abfa02f6918c8
MD5 88b814ecc42cb3998a56898c5ec07af0
BLAKE2b-256 80f54b240c11b2ed2c65253f1c82b88b95f58c708784beb7eaebd7a1ba200e44

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.6-cp312-cp312-win32.whl
  • Upload date:
  • Size: 184.9 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.6-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 5639959a1ae1f0cc9bef3bebf77be1804ff48593676e5efb7afa2ecf8e8d9d95
MD5 8188fc9a08db8f75ffb86e2bdf168f60
BLAKE2b-256 549822d7d1772b960bceae0fa2aa2fffcd1a14ac6f5e28cc1a4452d3cfcabd38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0347d312866b47d17b8b36f1e677136e4b844a946cf374509c88203705de7d1b
MD5 391d7400bc2c8df84faecd196d04a7be
BLAKE2b-256 3b60a457cdc3c54e92a3cd3370aef15206ee69725994b1ffdfdbf0e65dafcbef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1aa616cb26f8fe9aa114e0b0d874fccb9ceb889265255b82caa722d3c06041ef
MD5 fcc954311d6c1c28ca32bb29a96028bb
BLAKE2b-256 9f5730c9a8a3be119a031b810e678ff61fd0d5e1affa162b45804590377a6c2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c03432a08d8240ccc5dbe3c6f01d22b286522e9411d27ffab83f2985f2e5199
MD5 28aff2d386ea58020cb8932bedb5ce60
BLAKE2b-256 9fbc0a47edc4d9684ec18aaf092830d636dcb7de042263aabc1ccaadbb607201

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fa27227ea305e4a5a3c51433781486d31064a8a47fbe22334c5949483081ea08
MD5 297b6eb76b0f86c92a464d900ec5a04d
BLAKE2b-256 8fa078ca01f161d58fbc754fb75d8ef8f7598184e3202c4baf57cc3b49b08fc2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 189.4 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.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bb699ee8e7615460c31799b6d4c33f2de8ca0b5f36b86b82dbf2e461794d9997
MD5 9e3226adc61330959923d1749713dfb3
BLAKE2b-256 3016c916735fe0d5662decf110cf2428296c0051539f38cd0d9d5e4d221c0db2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flexrag-0.1.6-cp311-cp311-win32.whl
  • Upload date:
  • Size: 184.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.6-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 4a80d747d0723959310995c5dcab8377d5a457071d19a2d0c45166fa5281e3d2
MD5 a84d91b6c43000943d7640b6ad48ca23
BLAKE2b-256 c259b7c15e1efe7b627baf8bf01aab6347eb3d4df4f636767d217bd966fea5fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3c2eb2a0d869d9bb55777ae42a58ebb27769124ba5bbcebc15894daea34c056b
MD5 c142488e91072b0ccfc5be72d28b85a3
BLAKE2b-256 c21faa0f64863a239b78c056d1e0a768adc937b92f6150ea288583609cbb0275

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 56a8dab96e1577918354dcdcd0e17472330c7c73c8c1cd5c96508fc8980a5574
MD5 ee6d8fdf4a0877f93661bf4caf89541a
BLAKE2b-256 ada510e8e175304c52f6dd426830462eb2ee3361876e602d90089af53d70a1ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48ec2477631db97b3157d2e9d5525f579537b78673e1c7c17146a2e6afbd1986
MD5 75594cb67abaaa4f2a6e945d18458d25
BLAKE2b-256 0dcbd294f219bc00408e661d44fd79c1695f67f320d526737dae2d14913187cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flexrag-0.1.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 53fe08aba30d9fc614d995daad4388991f024d3bcdf7dea6306426d159a761b7
MD5 06fe00aabece37da0bf250bc69d02287
BLAKE2b-256 f1e6d5ed4578e2b14a39dd87cbd1bbdc1e03a9427f3e2c564628b8f76250579c

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