From b09469b196659dae7c90b7217d405a31ad4472a5 Mon Sep 17 00:00:00 2001 From: kuzakhmetovartur Date: Tue, 30 Jun 2026 11:31:06 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20solution=20for=20'=D0=9F=D0=BE=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BD=D1=8B=D0=B9=20=D1=8D=D0=BA=D0=B7=D0=B0?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=20#2:=20=D0=93=D1=80=D0=B0=D1=84=20=D1=81=20?= =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=BB=D0=B5=D0=BA=D1=81=D0=B8=D0=B5=D0=B9=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=B4'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 113 +++++++++++++++++++----------------------------------- 1 file changed, 39 insertions(+), 74 deletions(-) diff --git a/README.md b/README.md index 3cb127b..1fe806d 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,26 @@ # 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. +This repository demonstrates how to build a conversational agent that can analyze and reflect on Python code using **LangGraph** and **LangChain OpenAI**. The agent can parse code, generate explanations, and answer questions about the code structure. -> **Repository**: +## Features ---- +- **LangGraph**: Orchestrates the conversation flow and manages state across multiple turns. +- **LangChain OpenAI**: Provides language model capabilities via OpenAI’s GPT-4 (or any compatible model). +- Code parsing and analysis using the `ast` module. +- Interactive CLI for asking questions about a Python file. -## πŸ“Œ Overview +## Getting Started -- **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. +### Prerequisites -The workflow consists of three main nodes: +- Python 3.10+ +- An OpenAI API key. Set it in your environment: -1. **Input Node** – receives raw code. -2. **Analysis Node** – calls the OpenAI model to analyze the code. -3. **Reflection Node** – generates a reflection and summary. +```bash +export OPENAI_API_KEY="your_api_key_here" +``` -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-mini` model by default (configurable). - ---- - -## πŸ› οΈ Installation +### Installation ```bash # Clone the repository @@ -41,76 +29,53 @@ 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 +source .venv/bin/activate # On Windows use `.venv\Scripts\activate` # Install dependencies pip install -r requirements.txt ``` -> **Requirements** -> - Python 3.10+ -> - `langgraph`, `langchain`, `openai` (listed in `requirements.txt`) -> - An OpenAI API key set as the environment variable `OPENAI_API_KEY`. +`requirements.txt` contains: ---- +``` +langchain==0.2.0 +langgraph==0.1.0 +openai==1.0.0 +``` -## πŸ“¦ Usage +### Usage -### Command‑Line +Run the main script and provide the path to a Python file you want to analyze: ```bash -python main.py --file path/to/your_code.py +python main.py path/to/your_script.py ``` -The script will: +You will be prompted to ask questions about the code. The agent will respond using the OpenAI model and the conversation graph. -1. Load the file content. -2. Run it through the LangGraph workflow. -3. Print the reflection and summary to the console. +### Example -### Programmatic - -```python -from graph import CodeReflectionGraph - -graph = CodeReflectionGraph() -result = graph.run(code="def hello():\n print('Hello, world!')") -print(result["reflection"]) +```bash +$ python main.py example.py +Enter your question (or type 'exit' to quit): What does the `add` function do? +The `add` function takes two numbers, `a` and `b`, and returns their sum. ``` ---- - -## πŸ“ Project Structure +## 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 +β”œβ”€β”€ main.py # Entry point +β”œβ”€β”€ code_analyzer.py # Code parsing utilities +β”œβ”€β”€ graph.py # LangGraph definition +β”œβ”€β”€ requirements.txt +└── README.md ``` ---- +## License -## 🀝 Contributing - -Feel free to open issues or submit pull requests. -Please follow the existing coding style and add tests for new features. +This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. --- -## πŸ“„ License - -MIT License – see the [LICENSE](LICENSE) file for details. - ---- - -## πŸ“ž Contact - -- **Author**: Artur Kuzakhmetov -- **Email**: artur.kuzakhmetov@example.com - ---- -END \ No newline at end of file +*This project was developed as part of a coursework assignment. It showcases the integration of LangGraph and LangChain OpenAI for code analysis and reflection.* \ No newline at end of file