240 lines
11 KiB
Markdown
240 lines
11 KiB
Markdown
---
|
||
name: ege-checker
|
||
description: >
|
||
Проверка заданий ЕГЭ с выставлением баллов по официальным критериям ФИПИ.
|
||
Используй этот скилл когда пользователь:
|
||
- Загружает фото/скан рукописного сочинения ЕГЭ по русскому языку
|
||
- Просит проверить сочинение ЕГЭ, выставить баллы, оценить работу
|
||
- Загружает аудиозапись ответов по разделу "Аудирование" ЕГЭ по английскому
|
||
- Упоминает "ЕГЭ", "сочинение", "критерии К1-К12", "аудирование английский"
|
||
- Просит разобрать ошибки в сочинении по критериям ФИПИ
|
||
Скилл умеет: OCR рукописного текста через vision, STT аудиозаписей через recognition.py,
|
||
оценку по критериям ФИПИ 2026. Работает с любой multimodal LLM (Qwen, GPT-4o и др.).
|
||
---
|
||
|
||
# ЕГЭ-Checker
|
||
|
||
## Обзор возможностей
|
||
|
||
| Модуль | Вход — только распознавание | Вход — распознавание + оценка |
|
||
|--------|----------------------------|-------------------------------|
|
||
| Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема |
|
||
| Аудирование (английский) | Аудиозапись | Аудиозапись + ключи проверяющего |
|
||
|
||
---
|
||
|
||
## Модуль 1: Сочинение ЕГЭ по русскому языку
|
||
|
||
### Логика запуска
|
||
|
||
**Если прислали только сканы бланков (без исходного текста и темы):**
|
||
→ Только распознать рукопись и вывести текст. Оценку не выставлять.
|
||
→ Сообщить: "Текст распознан. Чтобы выставить баллы по критериям, пришлите также исходный текст задания и тему сочинения."
|
||
|
||
**Если прислали сканы + исходный текст задания + тему:**
|
||
→ Распознать рукопись, затем выставить баллы по К1–К10 с объяснением снятий.
|
||
|
||
---
|
||
|
||
### Режим 1: Только распознавание
|
||
|
||
1. Внимательно рассмотри все изображения — бланки могут быть на нескольких листах
|
||
2. Распознай рукописный текст максимально точно, сохраняя абзацное деление
|
||
3. Зачёркнутые слова отмечай как ~~зачёркнуто~~
|
||
4. Выведи распознанный текст и сообщи количество слов
|
||
5. Уточни: "Если есть неточности — поправьте. Чтобы выставить баллы, пришлите исходный текст задания."
|
||
|
||
---
|
||
|
||
### Режим 2: Распознавание + оценка по критериям
|
||
|
||
**Шаг 1 — Распознать текст** (как в режиме 1, шаги 1–4)
|
||
Попроси подтвердить распознанный текст перед оценкой.
|
||
|
||
**Шаг 2 — Загрузить критерии**
|
||
Прочитай `references/russian-essay-criteria.md` — критерии К1–К10 с баллами (ЕГЭ 2026).
|
||
|
||
**Шаг 3 — Проверить предварительные условия**
|
||
- Подсчитай слова. Если менее 150 → все критерии = 0, сообщи об этом явно.
|
||
- Если К1 = 0 → К2 и К3 автоматически = 0.
|
||
|
||
**Шаг 4 — Оценить по каждому критерию К1–К10 последовательно**
|
||
|
||
Для каждого критерия:
|
||
- Процитируй конкретный фрагмент из сочинения (если уместно)
|
||
- Объясни снятие баллов — что именно не выполнено и почему
|
||
- Выставь балл
|
||
|
||
**Шаг 5 — Итоговый вывод**
|
||
|
||
```
|
||
## Результаты проверки сочинения ЕГЭ (2026)
|
||
|
||
### Количество слов: XX
|
||
|
||
### Оценка по критериям
|
||
|
||
| Критерий | Название | Балл | Макс |
|
||
|----------|----------|------|------|
|
||
| К1 | Позиция автора | X | 1 |
|
||
| К2 | Комментарий к позиции автора | X | 3 |
|
||
| К3 | Собственное отношение + аргумент | X | 2 |
|
||
| К4 | Фактическая точность | X | 1 |
|
||
| К5 | Логичность | X | 2 |
|
||
| К6 | Этические нормы | X | 1 |
|
||
| К7 | Орфография | X | 3 |
|
||
| К8 | Пунктуация | X | 3 |
|
||
| К9 | Грамматика | X | 3 |
|
||
| К10 | Речевые нормы | X | 3 |
|
||
| **ИТОГО** | | **XX** | **22** |
|
||
|
||
### Подробные комментарии
|
||
|
||
**К1 — [балл/1]**
|
||
[что именно засчитано или почему снято]
|
||
|
||
**К2 — [балл/3]**
|
||
[разбор с цитатами: есть ли 2 примера, пояснения, смысловая связь]
|
||
|
||
...и так далее по каждому критерию...
|
||
|
||
### Снятия баллов (итого)
|
||
- К2: -1 — смысловая связь между примерами есть, но не пояснена
|
||
- К7: -1 — ошибка в слове "..."
|
||
...
|
||
|
||
### Главные рекомендации
|
||
1. [самое важное]
|
||
2. ...
|
||
```
|
||
|
||
---
|
||
|
||
## Модуль 2: Аудирование ЕГЭ по английскому
|
||
|
||
### Логика запуска
|
||
|
||
**Если прислали только аудиозапись (без ключей):**
|
||
→ Только распознать ответы ученика через recognition.py и вывести их таблицей.
|
||
→ Сообщить: "Ответы распознаны. Чтобы выставить баллы, пришлите правильные ответы (ключи)."
|
||
|
||
**Если прислали аудиозапись + ключи проверяющего:**
|
||
→ Распознать ответы, затем сверить с ключами и выставить баллы с объяснением ошибок.
|
||
|
||
---
|
||
|
||
### Режим 1: Только распознавание
|
||
|
||
**Шаг 1 — Сохранить аудиофайл**
|
||
```python
|
||
import os, time
|
||
ext = os.path.splitext(original_filename)[1] or ".mp3"
|
||
tmp_path = f"/tmp/ege_audio_{int(time.time())}{ext}"
|
||
with open(tmp_path, "wb") as f:
|
||
f.write(audio_bytes)
|
||
```
|
||
|
||
**Шаг 2 — Запустить recognition.py**
|
||
|
||
Через subprocess (рекомендуется):
|
||
```bash
|
||
python3 ~/.zeroclaw/recognition.py <tmp_path> --output json
|
||
```
|
||
|
||
Через прямой импорт:
|
||
```python
|
||
import sys
|
||
sys.path.insert(0, os.path.expanduser("~/.zeroclaw"))
|
||
from recognition import process_audio
|
||
transcript, answers = process_audio(tmp_path, model_size="medium", verbose=False)
|
||
```
|
||
|
||
**Шаг 3 — Удалить временный файл**
|
||
```python
|
||
if os.path.exists(tmp_path):
|
||
os.remove(tmp_path)
|
||
```
|
||
|
||
**Шаг 4 — Вывести распознанные ответы**
|
||
Таблица: задание | распознанный ответ
|
||
Если есть нераспознанные — явно отметить.
|
||
Сообщить: "Ответы распознаны. Пришлите правильные ответы (ключи) для выставления баллов."
|
||
|
||
---
|
||
|
||
### Режим 2: Распознавание + оценка
|
||
|
||
**Шаги 1–3** — те же, что в режиме 1 (сохранить, запустить, удалить).
|
||
|
||
**Шаг 4 — Получить и распознать ключи**
|
||
Если ключи текстом — использовать напрямую.
|
||
Если ключи фото — распознать через vision.
|
||
|
||
**Шаг 5 — Загрузить критерии**
|
||
Прочитай `references/english-listening-criteria.md`.
|
||
|
||
**Шаг 6 — Передать в LLM для сверки**
|
||
|
||
Промпт для модели (подставить реальные значения):
|
||
```
|
||
Ты эксперт-проверяющий ЕГЭ по английскому (аудирование, 2026).
|
||
|
||
Транскрипт ответов ученика (Whisper):
|
||
[TRANSCRIPT]
|
||
|
||
Извлечённые ответы ученика:
|
||
- Задание 1 (A–F): [TASK1]
|
||
- Задания 2–3 (True/False/Not stated): [TASK2_3]
|
||
- Задания 4–9 (выбор 1/2/3): [TASK4_9]
|
||
- Не распознаны (засчитать как 0): [UNRECOGNIZED]
|
||
|
||
Правильные ответы (ключи):
|
||
[KEYS]
|
||
|
||
Сверь ответы с ключами. 1 балл за совпадение, 0 за несовпадение или отсутствие.
|
||
Верни строго JSON без markdown:
|
||
{"results":{"task1":{"A":true},"task2_3":{"2":true},"task4_9":{"4":false}},
|
||
"scores":{"task1":0,"task2_3":0,"task4_9":0,"total":0},
|
||
"errors":["Задание 1B: ученик — 5, верный ответ — 1"]}
|
||
```
|
||
|
||
**Шаг 7 — Вывести результат**
|
||
|
||
```
|
||
## Результаты: Аудирование ЕГЭ (Английский язык, 2026)
|
||
|
||
### Задание 1 — Установление соответствия (макс. 6 баллов)
|
||
| Высказывание | Ответ ученика | Ключ | Результат |
|
||
| A | 3 | 3 | + |
|
||
| B | 5 | 1 | - |
|
||
...
|
||
Баллов: X / 6
|
||
|
||
### Задания 2–3 — True / False / Not stated (макс. 2 балла)
|
||
...
|
||
Баллов: X / 2
|
||
|
||
### Задания 4–9 — Выбор ответа (макс. 6 баллов)
|
||
...
|
||
Баллов: X / 6 (или X / подблок)
|
||
|
||
### Итого: XX / 12
|
||
|
||
### Ошибки с пояснением:
|
||
- Задание 1B: ученик ответил 5, верный ответ 1
|
||
...
|
||
|
||
[Если были нераспознанные:]
|
||
Задания X, Y не были распознаны в аудио и засчитаны как неверные (0 баллов).
|
||
```
|
||
|
||
---
|
||
|
||
## Общие принципы
|
||
|
||
- **Актуальность**: Критерии соответствуют ФИПИ ЕГЭ 2026
|
||
- **Строгость**: Придерживайся формулировок критериев точно
|
||
- **Снятия**: Всегда объясняй конкретно что именно не выполнено и почему снят балл
|
||
- **Пограничные случаи**: При сомнении — объясни оба варианта, выбери более обоснованный
|
||
- **Тон**: Конструктивный, учебный инструмент — не карательный
|
||
- **Совместимость**: Скилл работает с любым multimodal агентом (Qwen3, GPT-4o и др.)
|