An Deep research tool that breaks down broad topics into subtopics, performs web searches, and generates comprehensive research reports using LangChain, LangGraph, and Google's Gemini AI.
This application allows users to input any research topic and automatically:
- Breaks the topic into detailed subtopics
- Generates relevant search queries for each subtopic
- Retrieves high-quality content from the web
- Organizes the information in a vector database
- Synthesizes a comprehensive, structured research report
- Intelligent Topic Decomposition: Uses Gemini AI to break down broad topics into focused subtopics
- Automated Web Research: Performs targeted web searches via Tavily API
- Vector Database Storage: Stores and organizes research content using ChromaDB
- Advanced Report Generation: Creates detailed, well-structured research reports
- Simple Web Interface: Easy-to-use Streamlit interface
- Python 3.8+
- Google Gemini API key
- Tavily API key
- Clone this repository:
git clone https://github.com/yourusername/deep-research.git
cd deep-research- Install dependencies:
pip install -r requirements.txt- Create a
.envfile in the root directory and add your API keys:
# Create .env file
touch .env
# Add the following lines to the .env file
GOOGLE_API_KEY="your_gemini_api_key"
TAVILY_API_KEY="your_tavily_api_key"- Start the Streamlit app:
streamlit run app.py-
Open your browser and navigate to the displayed URL (typically http://localhost:8501)
-
Enter a topic in the input field and click Enter
-
Wait for the research process to complete (this may take a few minutes)
-
View the comprehensive research report
The application follows a structured workflow:
-
Query Generation: The input topic is processed by a Gemini-powered agent that breaks it down into subtopics and generates search queries.
-
Web Search: The Tavily search API retrieves relevant content for each search query.
-
Content Processing: Retrieved content is split into chunks and stored in a ChromaDB vector database with embeddings.
-
Report Generation: The system retrieves relevant content from the vector database and uses Gemini to synthesize a comprehensive research report following academic standards.
app.py: Main application file containing the Streamlit interface and workflowrequirements.txt: List of Python dependencies.env: Configuration file for API keysrunning_logs.log: Log file for debugging and monitoring
- A React based Agent Implementation (Currently its a Flow based Implementation)
- Memory Support
- Chat History Implementation



