55 lines
1.1 KiB
Markdown
55 lines
1.1 KiB
Markdown
# LangGraph Code Review Agent
|
|
|
|
## Overview
|
|
|
|
This repository contains a LangGraph agent that performs a code review on a given Python function. The agent:
|
|
|
|
1. Generates an initial draft review.
|
|
2. Critiques the draft on four criteria (PEP8, type hints, edge cases, naming).
|
|
3. If the review needs revision, rewrites the weakest part up to a maximum number of rounds.
|
|
|
|
## Requirements
|
|
|
|
```text
|
|
langgraph>=0.2.0
|
|
langchain-openai>=0.2.0
|
|
python-dotenv
|
|
```
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Running the Demo
|
|
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
The demo uses a simple `sort_numbers` function. The output shows the final review, the scores, and the verdict.
|
|
|
|
## Usage
|
|
|
|
You can import the `run_demo` function or use the graph directly in your own code.
|
|
|
|
```python
|
|
from main import graph, CodeReviewState
|
|
|
|
state = CodeReviewState(
|
|
code="def foo(x): return x+1",
|
|
draft_review="",
|
|
criteria_scores={},
|
|
weakest_criterion="",
|
|
verdict="",
|
|
round=0,
|
|
max_rounds=2,
|
|
)
|
|
result = await graph.ainvoke(state)
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
The agent uses OpenAI. Set `OPENAI_API_KEY` in your environment or in a `.env` file.
|