1.7 KiB
1.7 KiB
Research Brief Generator
This project builds a LangGraph agent that produces a cohesive research brief comparing three entities (e.g., vector databases).
The agent:
- Generates comparison criteria using an LLM.
- Performs iterative web searches with Tavily for each entity‑criterion pair.
- Aggregates findings into a concise research brief.
- Provides a recommendation verdict.
Prerequisites
- Python 3.10+
- An OpenAI API key (set in
OPENAI_API_KEYenvironment variable). - A Tavily API key (set in
TAVILY_API_KEYenvironment variable).
Setup
# Clone the repository
git clone https://github.com/yourusername/research-brief.git
cd research-brief
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Create a .env file with your API keys
echo "OPENAI_API_KEY=your_openai_key" >> .env
echo "TAVILY_API_KEY=your_tavily_key" >> .env
Usage
Run the CLI with default entities (Chroma, FAISS, Qdrant):
python -m src.main
Provide custom entities:
python -m src.main --entities "EntityA, EntityB, EntityC"
The output will display the research brief followed by the verdict.
Project Structure
src/
├── cli.py # CLI entry point
├── graph.py # LangGraph workflow
├── main.py # Package entry
├── nodes.py # Node implementations
└── state.py # State schema
Extending
- Replace the LLM with a local model (e.g., Ollama) by adjusting the
llminitialization innodes.py. - Add more sophisticated parsing or error handling as needed.
License
MIT License