70 lines
1.7 KiB
Markdown
70 lines
1.7 KiB
Markdown
# Research Brief Generator
|
||
|
||
This project builds a LangGraph agent that produces a cohesive research brief comparing three entities (e.g., vector databases).
|
||
The agent:
|
||
|
||
1. Generates comparison criteria using an LLM.
|
||
2. Performs iterative web searches with Tavily for each entity‑criterion pair.
|
||
3. Aggregates findings into a concise research brief.
|
||
4. Provides a recommendation verdict.
|
||
|
||
## Prerequisites
|
||
|
||
- Python 3.10+
|
||
- An OpenAI API key (set in `OPENAI_API_KEY` environment variable).
|
||
- A Tavily API key (set in `TAVILY_API_KEY` environment variable).
|
||
|
||
## Setup
|
||
|
||
```bash
|
||
# 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):
|
||
|
||
```bash
|
||
python -m src.main
|
||
```
|
||
|
||
Provide custom entities:
|
||
|
||
```bash
|
||
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 `llm` initialization in `nodes.py`.
|
||
- Add more sophisticated parsing or error handling as needed.
|
||
|
||
## License
|
||
|
||
MIT License |