Задание 2: Сырой текст задания → плоская карточка

Описание

Модуль разбора одного формулировки задания в компактную структурированную сводку. Использует LLM-цепочку (LangChain) + PydanticOutputParser для извлечения полей из неструктурированного текста.

Стек

  • Python 3.10+
  • langchain-core, langchain-openai, pydantic, python-dotenv

Установка

pip install -r requirements.txt
cp .env.example .env
# Заполнить OPENAI_API_KEY в .env

Запуск

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', ...}
S
Description
Задание 2: Сырой текст задания → плоская карточка. Structured Output с Pydantic и LangChain.
Readme 31 KiB
Languages
Python 100%