Modular and extensible Agentic RAG library
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 agenticrag-0.2.tar.gz.
File metadata
- Download URL: agenticrag-0.2.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0faa1de0c4fb55bf858736286a3437478d8a395408310706eb5d1aafe717d0e
|
|
| MD5 |
9e40493d187f7ace2bccddeff39c4faf
|
|
| BLAKE2b-256 |
1eef53ee380a8be9deac448ce3a95758d213fe216267aba971b3c323896db047
|
File details
Details for the file agenticrag-0.2-py3-none-any.whl.
File metadata
- Download URL: agenticrag-0.2-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88e09651aadb6940412ed16f84f0f5cf7d7300316c242ee9de3dad5e3484c1b0
|
|
| MD5 |
e5cba15263e20b868c9ebf2cd68a6df2
|
|
| BLAKE2b-256 |
6db3478ce0fd0a44dee68679c83445c74a5d551d8cb213f84eb43e33b73ad5b2
|