From 14bcada8e0affeb9c38e70bf8c90b16bc07f6171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=B8=D1=8F=20=D0=91=D0=B5=D1=80=D0=B4?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0?= Date: Wed, 27 May 2026 08:00:07 +0000 Subject: [PATCH] =?UTF-8?q?=D1=81=D1=8B=D1=80=D0=BE=D0=B9=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=81=D1=82=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=E2=86=92=20=D0=BF=D0=BB=D0=BE=D1=81=D0=BA=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=BA=D0=B0:=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/README.md diff --git a/solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/README.md b/solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/README.md new file mode 100644 index 0000000..7ae4994 --- /dev/null +++ b/solutions/69dd4221f309a98be0006b2e_сырой_текст_задания___плоская_карточка/README.md @@ -0,0 +1,89 @@ +# Task Parser – “Raw Text → Flat Card” + +## 📖 Описание + +`task_parser.py` — это модуль, который принимает **неформальное описание задания** (строку или короткий абзац) и преобразует его в структурированный объект `TaskCard`. +Полученный объект содержит только те поля, которые нужны дальше в пайплайне: название задачи, предмет, подсказки по дедлайну, тип сдачи и указания по оценке. Всё это делается без диалога с моделью – один запрос → один ответ. + +## 🚀 Установка + +```bash +# Создайте виртуальное окружение (рекомендуется) +python -m venv .venv +source .venv/bin/activate # Windows: .venv\Scripts\activate + +# Установите зависимости +pip install langchain-core langchain-openai pydantic python-dotenv +``` + +> **Важно** +> * `OPENAI_API_KEY` (или другой ключ для выбранной модели) должен быть в переменных окружения. +> * Можно хранить его в файле `.env` рядом с проектом: + +```dotenv +# .env +OPENAI_API_KEY=sk-xxxxxxxxxxxxxx +``` + +## 📦 Как запустить + +### 1️⃣ Вариант через REPL / Jupyter + +```python +from task_parser import parse_task_text + +raw = """ +Напиши мини‑отчёт по LangChain: проработай пример с ChatOpenAI, покажи выводы и сделай выводы о производительности. Срок сдачи – 3 дня после получения задания. Оценка будет по качеству кода и полноте отчёта. +""" + +card = parse_task_text(raw) +print(card.json(indent=2)) +``` + +### 2️⃣ Через командную строку + +Добавьте в `task_parser.py` (или создайте отдельный скрипт) функцию `main()`: + +```python +if __name__ == "__main__": + import sys + raw = " ".join(sys.argv[1:]) + card = parse_task_text(raw) + print(card.json(indent=2)) +``` + +Тогда можно вызвать так: + +```bash +python task_parser.py "Напиши мини‑отчёт по LangChain: проработай пример с ChatOpenAI, покажи выводы и сделай выводы о производительности. Срок сдачи – 3 дня после получения задания." +``` + +## 📄 Пример использования + +```python +from task_parser import parse_task_text + +raw = """ +Создать презентацию по теме «Введение в LangChain». Включить примеры кода, графики и выводы. +Срок: до пятницы. Оценка будет зависеть от оригинальности идей и качества оформления слайдов. +""" + +card = parse_task_text(raw) + +# card – это объект TaskCard +print(card.title) # "Создать презентацию по теме «Введение в LangChain»" +print(card.subject) # "LangChain" +print(card.deadline_hint) # "до пятницы" +print(card.deliverable_type) # "презентация" +print(card.grading_hints) # ["оригинальность идей", "качество оформления слайдов"] +``` + +## 📚 Что дальше + +- **Фильтрация**: можно отфильтровать задачи по предмету или типу сдачи. +- **Сохранение**: сериализовать в JSON и хранить в базе данных. +- **Пайплайн**: передать `TaskCard` следующему шагу, например, генератору чек‑листов. + +--- + +*Если возникнут вопросы – откройте issue или свяжитесь с автором проекта.* \ No newline at end of file