# Задание 2: Сырой текст задания → плоская карточка ## Описание Модуль разбора одного формулировки задания в компактную структурированную сводку. Использует LLM-цепочку (LangChain) + PydanticOutputParser для извлечения полей из неструктурированного текста. ## Стек - Python 3.10+ - langchain-core, langchain-openai, pydantic, python-dotenv ## Установка ```bash pip install -r requirements.txt cp .env.example .env # Заполнить OPENAI_API_KEY в .env ``` ## Запуск ```bash python main.py ``` ## Что делает 1. Описывает Pydantic-модель `TaskCard` с полями: `title`, `subject`, `deadline_hint`, `deliverable_type`, `grading_hints` 2. Собирает цепочку: шаблон промпта → LLM → PydanticOutputParser 3. В промпте явно просит модель вернуть данные в формате, ожидаемом парсером 4. Выводит валидированный объект (`model_dump()`) и краткую человекочитаемую сводку 5. Один запрос — один проход, без уточняющих вопросов ## Пример вывода ``` 📝 Входной текст: "Сдайте к пятнице мини-отчёт по LangChain: 2 страницы, упор на агентов. Оценка: за полноту и за пример кода." === Карточка задания === Название: Мини-отчёт по LangChain Предмет: LangChain Дедлайн: к пятнице Тип результата: отчёт Критерии: полнота, пример кода === JSON (model_dump) === {'title': 'Мини-отчёт по LangChain', 'subject': 'LangChain', ...} ```