51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
# Задание 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', ...}
|
||
```
|