add README.md

This commit is contained in:
2026-05-26 12:44:28 +00:00
parent 6e2c92e85b
commit dbee76e94b
+13 -88
View File
@@ -1,96 +1,21 @@
# Парсер задания: сырой текст → TaskCard # Task 69dd4221f309a98be0006b2e
Модуль принимает неформальное описание учебного задания и возвращает ## Задача
структурированный объект `TaskCard` — без диалога, за один запрос к модели.
## Стек Разработать модуль, который принимает неформальное описание задания и преобразует его в
структурированный объект с полями: `title`, `subject`, `deadline_hint`, `deliverable_type`, `grading_hints`.
| Компонент | Библиотека | ## Как использовать
|-----------|------------|
| Языковая модель | BroJS (`openai/gpt-oss-20b:free`) |
| LLM-клиент | `langchain-openai``ChatOpenAI` |
| Промпт | `langchain-core``PromptTemplate` |
| Парсер | `langchain-core``PydanticOutputParser` |
| Модель данных | `pydantic``BaseModel` |
## Структура TaskCard
```python
class TaskCard(BaseModel):
title: str # Краткое название (2–6 слов)
subject: str # Область знаний / технология
deadline_hint: str # Срок в свободной форме
deliverable_type: str # Что сдать: отчёт, код, презентация…
grading_hints: list[str] # Критерии оценки
notes: Optional[str] # Дополнительные заметки
```
## Цепочка обработки
```
task_text
PromptTemplate ← format_instructions от PydanticOutputParser
ChatOpenAI (BroJS, один запрос)
PydanticOutputParser
TaskCard (валидированный объект)
```
## Установка
```bash ```bash
pip install -r requirements.txt python main.py "Сдайте к пятнице мини-отчёт по LangChain: 2 страницы, упор на агентов. Оценка: за полноту и за пример кода."
``` ```
## Переменные окружения ## Требования
- Python 3.10+
- `langchain-core`, `langchain-openai`, `pydantic`, `python-dotenv`
| Переменная | Описание | ## Структура репозитория
|------------|----------| - `main.py` основной скрипт
| `JOURNAL_MCP_PAT` | Токен доступа к BroJS LLM | - `requirements.txt` зависимости
- `README.md` данное описание
Создай `.env`:
```
JOURNAL_MCP_PAT=jrnl_...
```
## Запуск
```bash
# Встроенный пример
python main.py
# Своё описание задания
python main.py "Сдайте до понедельника презентацию по RAG: 10 слайдов. Оценка: за полноту и визуализацию."
```
## Пример вывода
```
Вход:
Сдайте к пятнице мини-отчёт по LangChain: 2 страницы, упор на агентов.
Оценка: за полноту и за пример кода.
─── Валидированный объект (model_dump) ─────────────────────
{
"title": "Мини-отчёт по LangChain",
"subject": "LangChain",
"deadline_hint": "к пятнице",
"deliverable_type": "отчёт",
"grading_hints": ["полнота", "пример кода"],
"notes": null
}
─── Человекочитаемая сводка ─────────────────────────────────
Задача: Мини-отчёт по LangChain
Тема: LangChain
Срок: к пятнице
Тип сдачи: отчёт
Критерии: полнота, пример кода
```