781903c1b6e48ddea3dcbceb97d18759e2348186
Task 6a1484a292f7bbc573321443 – "сырой текст задания → плоская карточка"
Что делает проект
Этот репозиторий содержит решение задачи «Преобразовать свободный текст описания задания в структурированную карточку». В качестве примера используется LangChain и Pydantic для генерации JSON‑объекта, который можно дальше использовать в пайплайне.
Структура репозитория
| Файл | Назначение |
|---|---|
main.py |
Точка входа. Содержит модель данных, цепочку LangChain и примеры использования. |
requirements.txt |
Зависимости проекта (без точных версий). |
README.md |
Текущий файл – описание проекта, инструкции по установке и запуску. |
Установка
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
# Установите зависимости
pip install -r requirements.txt
Как запустить
python main.py
Скрипт выполнит три примера преобразования текста в карточку и выведет результат.
Архитектура решения
- Pydantic‑модель
TaskCardописывает структуру выходных данных: название, предмет, подсказка по сроку, тип сдачи и список критериев оценки. - PromptTemplate + PydanticOutputParser – шаблон запроса к LLM с инструкцией вернуть JSON в соответствии с моделью.
- ChatOpenAI – подключение к модели BroJS (см.
model,base_urlи переменную окруженияJOURNAL_MCP_PAT). - Асинхронная функция
parse_task()объединяет цепочку: шаблон → LLM → парсер. - В блоке
__main__три примера текста, которые проходят черезparse_task()и печатаются в читаемом виде.
Пример вывода
Example 1:
Raw text:
Сдайте к пятнице мини‑отчёт по LangChain: 2 страницы, упор на агентов. Оценка: за полноту и за пример кода.
Parsed card:
{
"title": "Мини‑отчёт по LangChain",
"subject": null,
"deadline_hint": "к пятнице",
"deliverable_type": "отчёт",
"grading_hints": [
"полнота",
"пример кода"
]
}
Зависимости
langchain-core>=0.3.0langchain-openai>=0.3.0pydantic>=2.0python-dotenv>=1.0.0
Все версии указаны с оператором >=, как требуется в задании.
Description
Languages
Python
100%