A RAG Framework for Information Retrieval and Generation.
Project description
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
- 📖 Table of Contents
- ✨ Key Features
- 📢 News
- 🚀 Getting Started
- 🏗️ Architecture
- 📊 Benchmarks
- 🏷️ License
- ❤️ Acknowledgements
✨ 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
dataclassand 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_retrieverand 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f05b87d080d1a9189e6cc8711446ab8119eb1ae4aa4108489a38a49c91562a28
|
|
| MD5 |
d065b9de7c2746a95de921e268691347
|
|
| BLAKE2b-256 |
5113851825a3b225c6f1a6a2853b37e96fdc382b379a7c6123e52e269b4e681f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f42f7e950b818c6e924c6dfd2b312a3ca49528bd9e40c5a883693eb6d2b8e5d
|
|
| MD5 |
0e44aaed8ca2c7ffa22a4be5a047e8d1
|
|
| BLAKE2b-256 |
4f1d0abcb85bc4b9e7879435659c2dadd137da88149dc477c6f8223fc7a34ad0
|
File details
Details for the file flexrag-0.1.10-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: flexrag-0.1.10-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1afc0142aafeb73655aec513edbdc78190c9a9937b84f03273f827e92878948
|
|
| MD5 |
456f26f90f49460fd81150c5940ca287
|
|
| BLAKE2b-256 |
d5c9b2ff41df0b7a534731ab3c82c7ce6067cfce0142f3107fe1a176d9b391c7
|
File details
Details for the file flexrag-0.1.10-cp313-cp313-musllinux_1_2_i686.whl.
File metadata
- Download URL: flexrag-0.1.10-cp313-cp313-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f92266d56ea6a8918b997c45152a6ef9f91baa3d1dc5792cbfdbde148fda2f3
|
|
| MD5 |
b6ae87112016869a2f4101f0ca8e8baa
|
|
| BLAKE2b-256 |
76f252fa03349033b8f9fb990a424587fe638d18dd95e8121735c95dc4a2a877
|
File details
Details for the file flexrag-0.1.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: flexrag-0.1.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 966.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2df44f06fbd348646e390bfe6c18e16fbc94a8a94684307cdf31c5f9cfac0b99
|
|
| MD5 |
a19b33710665e1b721fa1643f37bb8b3
|
|
| BLAKE2b-256 |
35b8e904f2e38eac01af544786306ed082d44b1fd9fcf8e35ef6c90bd44f8bff
|
File details
Details for the file flexrag-0.1.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: flexrag-0.1.10-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 959.9 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7452ec94d6bbf22992a70a8b4c3015506bc61c5da85bee25a55b748de82d61a
|
|
| MD5 |
981fc330c37018c6ebc0a46455d78850
|
|
| BLAKE2b-256 |
38520e2e273ab53c1ed0e17242b84d9bd5f09ed36c54ef58d32896e36f1bd3c5
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b25de06f46ff98511850c35bc38ecb902648ee1bb06306cd607cae4f93424abc
|
|
| MD5 |
3c17e15aff9985bed363e6e83d4b3f81
|
|
| BLAKE2b-256 |
787e453cd72fc728e79bffbe3b119d2ed2bd8d65541e2a6a20abdadee27ac0a7
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d26658cb2cf66547261733b8e18c429593855ba2fb472e67f80da2fb1b82321
|
|
| MD5 |
60abe423341ac0aa7017a5be355697f0
|
|
| BLAKE2b-256 |
ac1f1209949a9a2c5def67c230eef9ec7c66fc1d568426c71893d6b9232a4bb5
|
File details
Details for the file flexrag-0.1.10-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: flexrag-0.1.10-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9997106dcfc4f1aec8326118633454abff3faebab69b57a9d8e56951eaa6d56e
|
|
| MD5 |
c23367dbe8143ebb84981753e35229ea
|
|
| BLAKE2b-256 |
aab12e18eaf7d5c1a407faf7fdc47547f9241a0037c2009521c8ed757e96a99b
|
File details
Details for the file flexrag-0.1.10-cp312-cp312-musllinux_1_2_i686.whl.
File metadata
- Download URL: flexrag-0.1.10-cp312-cp312-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9822a317ffce83e0d656ff184724be86a6fa4610540bc91462893092b97c98c
|
|
| MD5 |
648b0830296e022c830d317616abd83a
|
|
| BLAKE2b-256 |
3653ff131fdbc4719340f1c58b5165b82e521e55fb77d259dc638273c9a49cf7
|
File details
Details for the file flexrag-0.1.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: flexrag-0.1.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 966.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a8208d295b40feb266d6b0a83dedb33bd024a8209155a2d73cd09f58dd5a05f
|
|
| MD5 |
55de76f987010a807272cae472ad5047
|
|
| BLAKE2b-256 |
a0dc07d42a2b4d8d88800ed1e363428aa1fbc97873b1d50bccf8bc01d0112c7b
|
File details
Details for the file flexrag-0.1.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: flexrag-0.1.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 960.5 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24849c2d4d14b1f33174ce0ae722e8bc216a293fa07c2d28fb47c3ad80a1c983
|
|
| MD5 |
9b1d1744cc374f34b57f86809dc20e57
|
|
| BLAKE2b-256 |
a94a921e4ccd57ecebf1699f4b2d2eb4ce1ff9cdf62530568d0189e9ad506cd5
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95300b60b937340056c880ad5f3d7074a392029708d34d0cd96bc473de579413
|
|
| MD5 |
e857474175cab5c90cf92fe97d6a09a4
|
|
| BLAKE2b-256 |
d1e3a2c2bfdbe75ed4ff41bf9b683402e88efd4fbcbbc2a1c37a648e1e1f6b99
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53e074754a92a3a91846b47e431427da178660010ba8db0678c22c28e7ba187f
|
|
| MD5 |
990079ad729ce615c9989fef3acbac12
|
|
| BLAKE2b-256 |
8504cd475f252e05f4c061b504a23963599add6c587184cfaf9883c161cd4465
|
File details
Details for the file flexrag-0.1.10-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: flexrag-0.1.10-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f50656e9b14d149c59291cdedc91d467096d57f5e20852636b48b1be779d3fc9
|
|
| MD5 |
d7b23a5c72fb6c2487cd298fa491b08c
|
|
| BLAKE2b-256 |
25972b3972210977e3b346fb9b6ec1385aa544dffc48e4f71fd49ce40770ac64
|
File details
Details for the file flexrag-0.1.10-cp311-cp311-musllinux_1_2_i686.whl.
File metadata
- Download URL: flexrag-0.1.10-cp311-cp311-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d90b3102930674b3164a32b1fc147baedda7f5499c6b01bd3f787a1b065ca37e
|
|
| MD5 |
adbba3a3e30a23808e60ffc8d08fa70c
|
|
| BLAKE2b-256 |
b7e1791e76d1fe00bf9a343ce1da90026d6a7eb5fbe994843cd73a9e72f4ca75
|
File details
Details for the file flexrag-0.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: flexrag-0.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 967.6 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
011b3d0c3a7741e93ae6dda0bd66f3fc5c3427ecc366c76dd6b8a8dd99688ec4
|
|
| MD5 |
65556aa7200d58cb1302ce0302a57e13
|
|
| BLAKE2b-256 |
0688248c455fe0f7759e40b08e5065fba2139c931aee482dd11fbeb45a04f64b
|
File details
Details for the file flexrag-0.1.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: flexrag-0.1.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 961.4 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c74fb179d193777b4af23b3e5d68ab19d3429bfacbcbcb5fc9b7aa1d02e3e8c3
|
|
| MD5 |
308ef3356d274febac60e98557e18f2a
|
|
| BLAKE2b-256 |
556f5d8f66e2726ba198087ee463207f751d9cdb348b2ec3f2d5f4b2a8c62ef6
|