Skip to content

Aryan-Pardeshi/DeepResearch_AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeepResearch

An AI-powered multi-agent research assistant that turns a query into a structured, cited research report — with human-in-the-loop plan approval and real-time streaming.

2026-07-02.16-05-52.mp4


How It Works

  1. User submits a research query with optional topic filters (News, Academic, Finance, Patents)
  2. A Planner Agent generates a Problem Statement + up to 5 independent research sub-tasks
  3. User reviews and approves the plan (or requests revisions in natural language)
  4. Up to 5 Parallel Research Workers search the web simultaneously via Tavily
  5. An Aggregator Agent synthesizes all findings into a structured markdown report
  6. User can download the report as a .md file
image

Tech Stack

Layer Technology
Agent Graph LangGraph (HITL, Send() API, MemorySaver)
LLM DeepSeek Pro (planner, aggregator) + Flash (approval, researchers)
Web Search Tavily API
Backend FastAPI + SSE streaming
Frontend Vanilla JS + Nginx
Containerization Docker + Docker Compose

Features

  • Multi-agent graph — parallel researchers fan out via LangGraph's Send() API
  • Human-in-the-Loop — review and revise the research plan before execution
  • Real-time SSE streaming — live researcher progress updates in the UI
  • Query validation — rejects vague queries before hitting the LLM
  • Markdown export — download the final report as a .md file
  • Session persistence — resume interrupted sessions via localStorage
  • Dark/Light mode — theme toggle with persistent preference

Project Structure

research-bot/
├── backend/
│   ├── app/
│   │   ├── agents/          # planner, validator, approval, researcher, aggregator
│   │   ├── api/             # FastAPI routes + SSE
│   │   ├── graph/           # LangGraph state + builder
│   │   ├── tools/           # Tavily search tool
│   │   └── llm.py           # DeepSeek LLM config
│   └── Dockerfile
├── frontend/
│   ├── index.html
│   ├── app.js
│   └── style.css
├── docker-compose.yml
├── requirements.txt
└── .env.example

Getting Started

Prerequisites

1. Clone the repo

git clone https://github.com/Aryan-Pardeshi/deep-research.git
cd deep-research/research-bot

2. Set up environment variables

cp .env.example .env

Edit .env:

DEEPSEEK_API_KEY=your_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com
TAVILY_API_KEY=your_key_here

3. Run with Docker

docker compose up -d --build

Local Development (without Docker)

Backend

cd research-bot
pip install -r requirements.txt
uvicorn backend.app.main:app --reload --port 8000

Frontend

Open frontend/index.html directly in your browser, or serve with any static file server:

npx serve frontend

Make sure API_BASE_URL in app.js points to http://localhost:8000


API Endpoints

Method Endpoint Description
POST /research/start Validate query, generate PS + plan
POST /research/approve Resume graph, stream SSE events
GET /research/result/{thread_id} Fetch final report by thread

Author

Built by Aryan Pardeshi — open to AI/ML internship opportunities.

Connect: LinkedIn · GitHub

About

AI-powered multi-agent research assistant — Turns a query into a structured, cited research report with human-in-the-loop plan approval, parallel web researchers, and real-time SSE streaming. Built with LangGraph, FastAPI, DeepSeek, and Tavily.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages