Files
povtornyy-ekzamen-graf-s-re…/README.md
T

80 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LangGraph Reflection Demo
This project demonstrates a simple LangGraph that generates an answer to a question, reflects on it, and rewrites it if necessary. The graph loops until the answer is deemed satisfactory or a maximum number of rounds is reached.
## Features
- **Draft generation** 510 sentence answer to a user question.
- **Reflection** LLM critiques the draft and decides if it is acceptable.
- **Rewrite** If the draft needs improvement, the LLM rewrites it based on the critique.
- **Loop control** The process repeats until the answer is good enough or the maximum number of rounds is exceeded.
- **CLI** Run the graph from the command line.
## Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/langgraph-reflection-demo.git
cd langgraph-reflection-demo
# 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
# Set your OpenAI API key
export OPENAI_API_KEY="your-openai-key"
```
> **Note**: If you prefer to use Ollama instead of OpenAI, replace `langchain-openai` with `langchain-ollama` in `requirements.txt` and adjust the LLM import in `nodes.py`.
## Usage
```bash
python main.py "Explain the theory of relativity in simple terms."
```
Optional arguments:
- `--max-rounds N` Maximum number of rewrite attempts (default: 2).
- `--model MODEL` LLM model name (default: `gpt-3.5-turbo`).
Example:
```bash
python main.py "What is quantum computing?" --max-rounds 3 --model gpt-4
```
The script will print:
```
Initial draft:
...
Reflection verdict: needs_revision
Critique:
...
Rewritten draft:
...
Final answer:
...
```
## Testing
Run the unit tests with:
```bash
pytest
```
The tests require a valid OpenAI API key set in the environment.
## License
MIT License