2.9 KiB
2.9 KiB
Graph with Reflection on Code
A lightweight Python project that demonstrates how to build a LangGraph workflow powered by LangChain and the OpenAI API.
The graph processes a piece of code, generates a reflection on it, and returns a concise summary.
Repository: https://git.brojs.ru/kuzakhmetovartur/povtornyy-ekzamen-2-graf-s-refleksiey-na
📌 Overview
- LangGraph – orchestrates the flow of data between nodes.
- LangChain – provides the language model wrappers and utilities.
- OpenAI – the LLM that performs code analysis and reflection.
The workflow consists of three main nodes:
- Input Node – receives raw code.
- Analysis Node – calls the OpenAI model to analyze the code.
- Reflection Node – generates a reflection and summary.
The graph is defined in graph.py and can be executed via the CLI or imported as a library.
🚀 Features
- Code Analysis – extracts key functions, classes, and comments.
- Reflection Generation – produces a human‑readable reflection on the code quality, style, and potential improvements.
- Modular Design – each node can be replaced or extended independently.
- OpenAI Integration – uses the
gpt-4o-minimodel by default (configurable).
🛠️ Installation
# Clone the repository
git clone https://git.brojs.ru/kuzakhmetovartur/povtornyy-ekzamen-2-graf-s-refleksiey-na.git
cd povtornyy-ekzamen-2-graf-s-refleksiey-na
# Create a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
Requirements
- Python 3.10+
langgraph,langchain,openai(listed inrequirements.txt)- An OpenAI API key set as the environment variable
OPENAI_API_KEY.
📦 Usage
Command‑Line
python main.py --file path/to/your_code.py
The script will:
- Load the file content.
- Run it through the LangGraph workflow.
- Print the reflection and summary to the console.
Programmatic
from graph import CodeReflectionGraph
graph = CodeReflectionGraph()
result = graph.run(code="def hello():\n print('Hello, world!')")
print(result["reflection"])
📁 Project Structure
povtornyy-ekzamen-2-graf-s-refleksiey-na/
├── graph.py # LangGraph workflow definition
├── main.py # CLI entry point
├── requirements.txt # Python dependencies
├── README.md # This file
└── tests/
└── test_graph.py # Unit tests
🤝 Contributing
Feel free to open issues or submit pull requests.
Please follow the existing coding style and add tests for new features.
📄 License
MIT License – see the LICENSE file for details.
📞 Contact
- Author: Artur Kuzakhmetov
- Email: artur.kuzakhmetov@example.com
END