AgenticRAG
AgenticRAG is a modular library for building customizable Retrieval-Augmented Generation systems. It provides a complete stack for ingesting, storing, retrieving, and acting on diverse data types through a unified interface.
Key Features
- Modular Architecture: Easily customize any component while maintaining system compatibility
- Multi-format Data Support: Handle text, tables, and databases through specialized stores
- Flexible Data Ingestion: Import data from PDFs, CSVs, web pages, and external databases
- Intelligent Retrieval: Use semantic search, SQL queries, or table operations as needed
- Task-oriented Design: Perform question answering, chart generation, or custom operations
- Easy Extensibility: Create custom components with minimal boilerplate
Installation
For Users
Install the stable release from PyPI:
pip install agenticrag
For Contributors
Clone the repository and install development dependencies:
git clone https://github.com/yourusername/agenticrag.git
cd agenticrag
pip install -r requirements.txt
Quick Start
from agenticrag import RAGAgent
# Initialize agent with default components
agent = RAGAgent(persistent_dir="./agenticrag_data")
# Load some data
agent.load_pdf("path/to/document.pdf", name="company_handbook")
agent.load_csv("path/to/data.csv", name="sales_data")
# Ask questions using the data
response = agent.invoke("What were our top selling products last quarter?")
print(response)
Architecture Overview
The AgenticRAG system follows a modular, layered architecture where each component has specific responsibilities:
- Data Storage Layer: Stores maintain structured representations of various data types
- Data Ingestion Layer: Loaders and Connectors handle importing data into stores
- Data Retrieval Layer: Retrievers access relevant information based on queries
- Task Execution Layer: Tasks perform operations using retrieved context
- Orchestration Layer: RAGAgent coordinates all components to fulfill user requests
Documentation
For detailed documentation, check out:
- Full Documentation: Complete guide to architecture and components
- Examples: Jupyter notebooks showing various use cases
Project Structure
├── agenticrag/ # Main package
│ ├── connectors/ # Database and API connectors
│ ├── loaders/ # Data ingestion components
│ ├── retrievers/ # Context retrieval components
│ ├── stores/ # Data storage components
│ ├── tasks/ # Task execution components
│ ├── types/ # Data models and type definitions
│ ├── utils/ # Utility functions and helpers
│ └── rag_agent.py # Main agent implementation
├── docs/ # Documentation
├── examples/ # Example notebooks
├── tests/ # Unit and integration tests
├── ui/ # Streamlit demo app
├── LICENSE # MIT License
├── pyproject.toml # Package configuration
├── README.md # This file
└── requirements.txt # Development dependencies
Example Use Cases
Question Answering from Documents
from agenticrag import RAGAgent
agent = RAGAgent()
agent.load_pdf("research_paper.pdf", name="research")
agent.invoke("Summarize the key findings of the research paper")
Data Analysis with Visualizations
from agenticrag import RAGAgent
from agenticrag.retrievers import TableRetriever
from agenticrag.tasks import ChartGenerationTask
agent = RAGAgent(
retrievers=[TableRetriever()],
tasks=[ChartGenerationTask()]
)
agent.load_csv("Iris.csv")
agent.invoke("Create a scatter plot showing petel length and width of Iris")
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Release files for agenticrag 0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agenticrag-0.2.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agenticrag-0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.2 kB
Release files / agenticrag-0.2.tar.gz
| Download URL | agenticrag-0.2.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0faa1de0c4fb55bf858736286a3437478d8a395408310706eb5d1aafe717d0e
|
|
BLAKE2b-256 checksum How to use checksums |
1eef53ee380a8be9deac448ce3a95758d213fe216267aba971b3c323896db047
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / agenticrag-0.2-py3-none-any.whl
| Download URL | agenticrag-0.2-py3-none-any.whl |
|---|---|
| Size | 4.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
88e09651aadb6940412ed16f84f0f5cf7d7300316c242ee9de3dad5e3484c1b0
|
|
BLAKE2b-256 checksum How to use checksums |
6db3478ce0fd0a44dee68679c83445c74a5d551d8cb213f84eb43e33b73ad5b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|