Catalog PyPI
Back to packageRELEASE DETAILS

0.2

PyPI

agenticrag

Modular and extensible Agentic RAG library

Published21 May 2025
Direct dependencies15
Transitive dependenciesNot calculated

README

Version 0.2 documentation

AgenticRAG

PyPI version License: MIT Python 3.8+

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.

agenticrag


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

AgenticRAG Architecture

The AgenticRAG system follows a modular, layered architecture where each component has specific responsibilities:

  1. Data Storage Layer: Stores maintain structured representations of various data types
  2. Data Ingestion Layer: Loaders and Connectors handle importing data into stores
  3. Data Retrieval Layer: Retrievers access relevant information based on queries
  4. Task Execution Layer: Tasks perform operations using retrieved context
  5. Orchestration Layer: RAGAgent coordinates all components to fulfill user requests

Documentation

For detailed documentation, check out:


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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 15

Native requirements
15 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
SQLAlchemy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
SQLAlchemy>=2.0.0runtime
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
numpy>=1.24runtime
pydantic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
pydantic>=2.0runtime
beautifulsoup4
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
beautifulsoup4runtime
langchain
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
langchain>=0.3.25runtime
langchain-text-splitters
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
langchain-text-splittersruntime
Markdown
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
Markdown>=3.4runtime
chromadb
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
chromadb>=1.0.9runtime
sentence-transformers
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
sentence-transformers>=2.2.0runtime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
pandas>=2.2.0runtime
Scrapy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
Scrapy>=2.13.0runtime
markdownify
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
markdownify>=1.1.0runtime
matplotlib
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
matplotlib>=3.8.0runtime
langchain-google-genai
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
langchain-google-genai>=2.1.4runtime
docling
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8",
  "evaluation": "NOT_EVALUATED"
}
docling>=2.0.0runtime

Distribution files

2 collected
agenticrag-0.2-py3-none-any.whl

bdist_wheel · 4.68 KB · Python py3

Source file
agenticrag-0.2.tar.gz

sdist · 4.32 KB · Python source

Source file

Repository

PENDING
sudarshanpoudel/agenticrag

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:20 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:e60afa8a4d87cdd30adca88c68d15aa343dea69454711e243e1b54ce7fcdcf2e

Other collected versions

View all collected versions →