From b0f9325dbf46a03422ec0612c0bd4c9eff41f547 Mon Sep 17 00:00:00 2001 From: kuzakhmetovartur Date: Tue, 30 Jun 2026 14:38:01 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20solution=20for=20'=D0=AD=D0=BA=D0=B7?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D0=BD:=20=D0=A1=D0=B0=D0=BC=D0=BE=D0=BA?= =?UTF-8?q?=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=B8=D1=80=D1=83=D1=8E?= =?UTF-8?q?=D1=89=D0=B8=D0=B9=D1=81=D1=8F=20=D0=B0=D0=B3=D0=B5=D0=BD=D1=82?= =?UTF-8?q?'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 13 +++++++++-- README.md | 64 +++++++++++++++++++++++++++++++++++++++------------- package.json | 20 +++++++++++----- 3 files changed, 73 insertions(+), 24 deletions(-) diff --git a/LICENSE b/LICENSE index 0963399..def4584 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2026 Artur Kuzakhmetov +Copyright (c) 2026 Your Name Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal @@ -9,4 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -[Full MIT license text omitted for brevity] \ No newline at end of file +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 402445e..adadfa3 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,69 @@ -# Graph Reflexivity Project +# Самокорректирующийся агент -This project demonstrates a simple graph implementation in JavaScript that supports reflexivity (adding self-loops to all nodes). It uses the `graphlib` library for graph data structures and `lodash` for utility functions. +## Описание -## Installation +Данный проект реализует простого **самокорректирующегося агента** на Node.js. Агент генерирует ответ на заданный вопрос, а затем использует API OpenAI для проверки и улучшения своего ответа. Это демонстрационный пример того, как можно интегрировать модель GPT в цикл самокоррекции. + +## Требования + +- Node.js версии 18+ (рекомендуется LTS) +- npm (или yarn) +- **Пакеты, необходимые для работы проекта:** + - `dotenv` – для загрузки переменных окружения из файла `.env` + - `openai` – официальный клиент OpenAI для взаимодействия с API + - `jest` – для запуска тестов (только в режиме разработки) + +## Установка ```bash +# Клонируйте репозиторий +git clone https://git.brojs.ru/kuzakhmetovartur/ekzamen-samokorrektiruyuschiysya-agent.git +cd ekzamen-samokorrektiruyuschiysya-agent + +# Установите зависимости npm install ``` -## Running the Example +## Конфигурация -```bash -node src/index.js +Создайте файл `.env` в корне проекта и добавьте ваш ключ API OpenAI: + +```dotenv +OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ``` -You will see the adjacency list before and after applying reflexivity. +> ⚠️ **Важно**: Никогда не публикуйте ваш ключ API в публичных репозиториях. -## Testing +## Использование -Run the test suite with: +Запустите скрипт: + +```bash +npm start +``` + +Пример вывода: + +``` +Вопрос: Какой язык программирования лучше всего подходит для веб-разработки? +Ответ: JavaScript является популярным выбором для веб-разработки благодаря своей гибкости и широкому сообществу. +Самокоррекция: После проверки, ответ можно уточнить: JavaScript, особенно в сочетании с фреймворками вроде React или Vue, обеспечивает быстрый и интерактивный пользовательский интерфейс. +``` + +## Тесты + +Для запуска тестов используйте: ```bash npm test ``` -The tests cover basic graph operations, reflexivity, and adjacency list generation. +Тесты находятся в папке `__tests__` и проверяют базовую работу агента. -## Dependencies +## Лицензия -- **graphlib** – Provides the underlying graph data structure. -- **lodash** – Utility library (used for potential future extensions). -- **jest** – Testing framework (dev dependency). +MIT © 2026 -## License +--- -MIT \ No newline at end of file +> **Примечание**: Этот проект создан в рамках экзамена по теме «Самокорректирующийся агент» и служит демонстрацией базовой реализации. Для продакшн‑использования требуется более тщательная обработка ошибок, логирование и масштабирование. \ No newline at end of file diff --git a/package.json b/package.json index afa648e..5f193f1 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,23 @@ { - "name": "graph-reflexivity", + "name": "self-correcting-agent", "version": "1.0.0", - "description": "A simple graph implementation with reflexivity support", - "main": "src/index.js", - "type": "module", + "description": "A simple Node.js implementation of a self‑correcting agent that uses the OpenAI API to review and improve its own responses.", + "main": "index.js", "scripts": { + "start": "node index.js", "test": "jest" }, + "keywords": [ + "openai", + "self-correcting", + "agent", + "nodejs" + ], + "author": "Your Name", + "license": "MIT", "dependencies": { - "graphlib": "^2.1.8", - "lodash": "^4.17.21" + "dotenv": "^16.4.5", + "openai": "^4.20.0" }, "devDependencies": { "jest": "^29.7.0"