add README.md
This commit is contained in:
@@ -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
|
|
||||||
Срок: к пятнице
|
|
||||||
Тип сдачи: отчёт
|
|
||||||
Критерии: полнота, пример кода
|
|
||||||
```
|
|
||||||
|
|||||||
Reference in New Issue
Block a user