Note: This repository serves as the production-ready, revamped MVP of a hackathon project co-developed during FrostHack 2025.
An autonomous AI financial assistant designed to ingest unstructured bank statements, extract structured transactional data, and provide natural language querying alongside dynamic, real-time visual insights.
Built using a multi-agent architecture, this system leverages advanced RAG (Retrieval-Augmented Generation) to give users conversational control over their personal finances.
- Automated PDF Extraction: Utilizes
pdfplumbervia thefetch_agentto seamlessly extract tabular transaction data from uploaded bank statements. - Semantic RAG Pipeline: Employs Hugging Face Transformers and FAISS to create a highly optimized vector search engine over MongoDB records, handling complex natural language queries.
- Multi-Agent Orchestration: Distinct agents (
fetch_agent,query_agent,chart_agent) operate independently to handle data processing, NLP, and visual rendering. - Dynamic Visualizations: The
chart_agentwrites and executes Python code on the fly to generate interactive Plotly charts directly within the Streamlit frontend.
├── .env.example # Configuration template
├── requirements.txt # Python dependencies
├── README.md
├── assets/
│ └── architecture.png # System design diagram
├── backend/
│ ├── __init__.py
│ ├── main.py # Agent orchestrator
│ ├── chart_agent.py # Generates visual insights
│ ├── delete_agent.py # State management
│ ├── embedding_agent.py # Handles Transformers & FAISS indexing
│ ├── fetch_agent.py # Table extraction from PDFs
│ └── query_agent.py # NLP queries & LLM routing
├── frontend/
│ └── app.py # Streamlit interactive dashboard
└── data/
└── sample_statement.pdf # Mock data for local testing
Follow these steps to spin up the multi-agent system locally.
git clone https://github.com/anshul45-github/Finance-RAG-Agent
cd Finance-RAG-Agentpython -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activatepip install -r requirements.txtCopy the example environment file and fill in your API keys (e.g., Gemini, Fetch.ai, MongoDB URI).
cp .env.example .envYou need to start both the backend orchestrator and the frontend dashboard.
Terminal 1 (Backend Orchestrator):
python backend/main.pyTerminal 2 (Frontend Interface):
streamlit run frontend/app.pyThis project was rapidly prototyped and developed over a single weekend by:
- Anshul Mendiratta - GitHub | LinkedIn
- Bhupesh Khordia - GitHub | LinkedIn
- Siddhant Shah - GitHub | LinkedIn
- Frontend: Streamlit
- Backend: Python, Fetch.ai SDK
- AI/ML: Hugging Face Transformers, FAISS, Gemini API
- Database: MongoDB
