64 lines
1.7 KiB
Markdown
64 lines
1.7 KiB
Markdown
# LangGraph Comparative Review Agent
|
||
|
||
This project implements a LangGraph agent that, given three entities (e.g., technologies, products, or approaches), produces a comparative review. The agent:
|
||
|
||
1. Generates 3–5 comparison criteria using an LLM.
|
||
2. Performs a web search for each entity‑criterion pair via Tavily and stores a short note.
|
||
3. Builds a Markdown table with the findings.
|
||
4. Produces a verdict recommending which entity suits which use case.
|
||
|
||
## Features
|
||
|
||
- **LLM powered**: Uses OpenAI’s GPT model to generate criteria and verdicts.
|
||
- **Web search**: Uses Tavily to fetch up-to-date information for each pair.
|
||
- **CLI**: Run from the command line with default or custom entities.
|
||
- **Modular**: Separate files for state, nodes, graph, and CLI.
|
||
|
||
## Setup
|
||
|
||
```bash
|
||
# Create a virtual environment (optional but recommended)
|
||
python -m venv .venv
|
||
source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
|
||
|
||
# Install dependencies
|
||
pip install -r requirements.txt
|
||
|
||
# Create a .env file with your API keys
|
||
cp .env.example .env
|
||
# Edit .env and fill in your keys
|
||
```
|
||
|
||
## Usage
|
||
|
||
```bash
|
||
python src/main.py
|
||
```
|
||
|
||
The script will compare the default entities: **Chroma, FAISS, Qdrant**.
|
||
You can also provide custom entities:
|
||
|
||
```bash
|
||
python src/main.py --entities "TensorFlow, PyTorch, JAX"
|
||
```
|
||
|
||
The output will display:
|
||
|
||
1. Generated comparison criteria.
|
||
2. The Markdown table of findings.
|
||
3. The final verdict.
|
||
|
||
## Project Structure
|
||
|
||
```
|
||
src/
|
||
├── cli.py # CLI entry point
|
||
├── graph.py # LangGraph definition
|
||
├── main.py # Script to run the graph
|
||
├── nodes.py # Node implementations
|
||
└── state.py # TypedDict for state
|
||
```
|
||
|
||
## License
|
||
|
||
MIT License |