3.3 KiB
3.3 KiB
Task: "сырой текст задания → плоская карточка"
Что делает проект
Программа принимает неформальное описание задачи (как в переписке или на сайте курса) и превращает его в структурированный объект TaskCard. Это позволяет дальше работать с данными автоматически – фильтровать, сохранять, передавать в пайплайн.
Структура репозитория
| Файл | Назначение |
|---|---|
models.py |
Pydantic‑модель TaskCard. |
main.py |
Точка входа: демонстрация цепочки LangChain, вывод примеров. |
requirements.txt |
Зависимости проекта. |
Установка и запуск
# 1. Клонируйте репозиторий
git clone https://git.brojs.ru/KirillKutlakhmetov/task-6a1484a292f7bbc573321443.git
cd task-6a1484a292f7bbc573321443
# 2. Создайте виртуальное окружение (необязательно, но рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
# 3. Установите зависимости
pip install -r requirements.txt
# 4. Настройте переменную окружения с токеном BroJS
export JOURNAL_MCP_PAT=YOUR_TOKEN_HERE # Linux/macOS
set JOURNAL_MCP_PAT=YOUR_TOKEN_HERE # Windows CMD
$env:JOURNAL_MCP_PAT="YOUR_TOKEN_HERE" # PowerShell
# 5. Запустите пример
python main.py
Пример вывода
Example 1:
Сдайте к пятнице мини-отчёт по LangChain: 2 страницы, упор на агентов. Оценка: за полноту и за пример кода.
Parsed object (model_dump): {'title': 'мини‑отчёт', 'subject': 'LangChain', 'deadline_hint': 'к пятнице', 'deliverable_type': 'отчёт', 'grading_hints': ['полнота', 'пример кода']}
Human-readable summary:
Title: мини‑отчёт
Subject: LangChain
Deadline hint: к пятнице
Deliverable type: отчёт
Grading hints: полнота, пример кода
Как это работает
- PromptTemplate формирует запрос к LLM с инструкцией вернуть данные в формате, описанном
PydanticOutputParser. - ChatOpenAI (BroJS) генерирует ответ.
- Парсер преобразует JSON‑ответ в экземпляр
TaskCard, гарантируя типизацию. - В
main.pyвыводятся как сериализованный словарь, так и человекочитаемый резюме.
Тесты
Тестов нет – проект рассчитан на демонстрацию работы цепочки. Для проверки можно запустить python main.py и убедиться в корректности вывода.
Важно: токен BroJS (
JOURNAL_MCP_PAT) должен быть действительным, иначе запрос к LLM завершится ошибкой.