Загрузить файлы в «/»

This commit is contained in:
2026-07-01 14:01:21 +00:00
parent 4e21719907
commit 83fbb8bb90
5 changed files with 206 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
# 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