An advanced AI-powered research assistant that helps you conduct in-depth research on any topic using multiple AI analysts with different perspectives.
- Multi-Analyst Approach: Creates a team of AI analysts, each with a unique perspective and expertise relevant to your research topic.
- Human-in-the-Loop: Review and provide feedback at each stage of the research process.
- Diverse Information Sources: Utilizes web search and Wikipedia to gather comprehensive information.
- Structured Research Process: Follows a systematic approach from planning to report generation.
- Interactive UI: User-friendly Streamlit interface for easy interaction.
The application is built using LangGraph, a framework for creating complex, stateful workflows with LLMs. The research process is structured as a graph with the following main components:
- Analyst Generation: Creates a team of AI analysts based on the research topic.
- Research Planning: Generates specific research questions for each analyst.
- Interview Conducting: Simulates interviews between analysts and experts using various information sources.
- Report Generation: Synthesizes the findings into a comprehensive research report.
- Clone the repository:
git clone https://github.com/yourusername/intelligent-research-assistant.git
cd intelligent-research-assistant
- Create a virtual environment and install dependencies:
python -m venv venv
source venv/bin/activate
conda activate intelligent-research-assistant # On Windows: venv\Scripts\activate
pip install -r requirements.txt
- Create a
.env
file with your API keys:
OPENAI_API_KEY=your_openai_api_key_here
TAVILY_API_KEY=your_tavily_api_key_here
LANGCHAIN_API_KEY=your_langchain_api_key_here
LANGCHAIN_TRACING_V2=true
- Start the Streamlit application:
streamlit run app.py
-
Enter your research topic in the sidebar and configure the number of analysts and information sources.
-
Click "Start Research" to begin the process.
-
Review and provide feedback at each stage of the research process.
-
Receive a comprehensive research report at the end.
app.py
: Main Streamlit applicationsrc/
config.py
: Configuration settingsmodels.py
: Data models for the applicationcomponents.py
: Core components for the research processgraph.py
: LangGraph definitiontools.py
: Research tools for information gathering
- Python 3.9+
- OpenAI API key
- Tavily API key (for web search)
- LangSmith API key (optional, for tracing)
MIT