diff --git a/.gitignore b/.gitignore index a7dbbbe..c323cf4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ .venv -.scans diff --git a/ege-checker/SKILL.md b/ege-checker/SKILL.md index bec151f..eeee0f8 100644 --- a/ege-checker/SKILL.md +++ b/ege-checker/SKILL.md @@ -5,106 +5,108 @@ description: > Используй этот скилл когда пользователь: - Загружает фото/скан рукописного сочинения ЕГЭ по русскому языку - Просит проверить сочинение ЕГЭ, выставить баллы, оценить работу - - Загружает аудиозапись ответов по разделу "Аудирование" ЕГЭ по английскому + - Загружает аудиозапись или текст ответов по разделу "Аудирование" ЕГЭ по английскому - Упоминает "ЕГЭ", "сочинение", "критерии К1-К12", "аудирование английский" - Просит разобрать ошибки в сочинении по критериям ФИПИ - Скилл умеет: OCR рукописного текста через vision, STT аудиозаписей через recognition.py, - оценку по критериям ФИПИ 2026. Работает с любой multimodal LLM (Qwen, GPT-4o и др.). + Скилл умеет: OCR рукописного текста через vision (multimodal), оценку по критериям, подробные комментарии. Работает с любой multimodal LLM (Qwen, GPT-4o и др.). --- # ЕГЭ-Checker ## Обзор возможностей -| Модуль | Вход — только распознавание | Вход — распознавание + оценка | -|--------|----------------------------|-------------------------------| -| Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема | -| Аудирование (английский) | Аудиозапись | Аудиозапись + ключи проверяющего | +| Модуль | Статус | Вход | Выход | +|--------|--------|------|-------| +| Сочинение (русский) | ✅ MVP | Фото рукописи или текст | Баллы К1–К12 + комментарии | +| Аудирование (английский) | ✅ MVP | Аудиофайл + ключи | Баллы по заданиям | --- ## Модуль 1: Сочинение ЕГЭ по русскому языку -### Логика запуска +### Что получает агент от проверяющего +Проверяющий присылает в одном сообщении: +1. **Сканы бланков** — фото рукописного сочинения (один или несколько листов) +2. **Исходный текст задания** — публицистический/художественный текст, по которому написано сочинение +3. **Тему/формулировку задания** — если есть отдельно (иногда тема вытекает из текста) -**Если прислали только сканы бланков (без исходного текста и темы):** -→ Только распознать рукопись и вывести текст. Оценку не выставлять. -→ Сообщить: "Текст распознан. Чтобы выставить баллы по критериям, пришлите также исходный текст задания и тему сочинения." +Без исходного текста невозможно проверить К1, К2, К3 и К12. Если текст не прислан — попроси его перед началом проверки. -**Если прислали сканы + исходный текст задания + тему:** -→ Распознать рукопись, затем выставить баллы по К1–К10 с объяснением снятий. - ---- - -### Режим 1: Только распознавание +### Шаг 1 — Получить текст сочинения +**Если загружено фото/скан:** 1. Внимательно рассмотри все изображения — бланки могут быть на нескольких листах 2. Распознай рукописный текст максимально точно, сохраняя абзацное деление -3. Зачёркнутые слова отмечай как ~~зачёркнуто~~ -4. Выведи распознанный текст и сообщи количество слов -5. Уточни: "Если есть неточности — поправьте. Чтобы выставить баллы, пришлите исходный текст задания." +3. Выведи распознанный текст и попроси подтвердить: *"Вот что распознано. Если есть неточности — поправьте перед проверкой."* +4. Дождись подтверждения или правок ---- +**Если текст вставлен напрямую:** +Переходи к Шагу 2 без распознавания. -### Режим 2: Распознавание + оценка по критериям +### Шаг 2 — Загрузить критерии -**Шаг 1 — Распознать текст** (как в режиме 1, шаги 1–4) -Попроси подтвердить распознанный текст перед оценкой. +Прочитай файл `references/russian-essay-criteria.md` — там полные критерии К1–К12 с баллами и примерами. -**Шаг 2 — Загрузить критерии** -Прочитай `references/russian-essay-criteria.md` — критерии К1–К10 с баллами (ЕГЭ 2026). +### Шаг 3 — Оценить по каждому критерию -**Шаг 3 — Проверить предварительные условия** -- Подсчитай слова. Если менее 150 → все критерии = 0, сообщи об этом явно. -- Если К1 = 0 → К2 и К3 автоматически = 0. - -**Шаг 4 — Оценить по каждому критерию К1–К10 последовательно** - -Для каждого критерия: +Пройдись по всем критериям К1–К12 **последовательно**. Для каждого: - Процитируй конкретный фрагмент из сочинения (если уместно) -- Объясни снятие баллов — что именно не выполнено и почему +- Объясни своё решение - Выставь балл -**Шаг 5 — Итоговый вывод** +**Важные правила:** +- Если К1 = 0 (нет формулировки проблемы) → К2, К3, К4 автоматически = 0 +- Если работа ≤ 70 слов → все баллы = 0, только К10 может быть ненулевым +- Считай слова перед проверкой (служебные части речи считаются) + +### Шаг 4 — Итоговый вывод + +Используй этот формат вывода: ``` -## Результаты проверки сочинения ЕГЭ (2026) +## Результаты проверки сочинения ЕГЭ + +### Распознанный текст +[текст если было фото, иначе пропусти] ### Количество слов: XX +--- + ### Оценка по критериям | Критерий | Название | Балл | Макс | |----------|----------|------|------| -| К1 | Позиция автора | X | 1 | -| К2 | Комментарий к позиции автора | X | 3 | -| К3 | Собственное отношение + аргумент | X | 2 | -| К4 | Фактическая точность | X | 1 | -| К5 | Логичность | X | 2 | -| К6 | Этические нормы | X | 1 | +| К1 | Формулировка проблем исходного текста | X | 1 | +| К2 | Комментарий к проблеме | X | 6 | +| К3 | Отражение позиции автора | X | 1 | +| К4 | Отношение к позиции автора | X | 1 | +| К5 | Смысловая цельность, связность | X | 2 | +| К6 | Точность и выразительность речи | X | 2 | | К7 | Орфография | X | 3 | | К8 | Пунктуация | X | 3 | -| К9 | Грамматика | X | 3 | -| К10 | Речевые нормы | X | 3 | -| **ИТОГО** | | **XX** | **22** | +| К9 | Языковые нормы | X | 2 | +| К10 | Речевые нормы | X | 2 | +| К11 | Этические нормы | X | 1 | +| К12 | Фактическая точность | X | 1 | +| **ИТОГО** | | **XX** | **25** | + +--- ### Подробные комментарии **К1 — [балл/1]** -[что именно засчитано или почему снято] +[объяснение] -**К2 — [балл/3]** -[разбор с цитатами: есть ли 2 примера, пояснения, смысловая связь] +**К2 — [балл/6]** +[объяснение с цитатами из текста] -...и так далее по каждому критерию... +... и так далее по каждому критерию ... -### Снятия баллов (итого) -- К2: -1 — смысловая связь между примерами есть, но не пояснена -- К7: -1 — ошибка в слове "..." -... +--- ### Главные рекомендации -1. [самое важное] +1. [самое важное для улучшения] 2. ... ``` @@ -112,129 +114,109 @@ description: > ## Модуль 2: Аудирование ЕГЭ по английскому -### Логика запуска +### Что получает агент от проверяющего +Проверяющий присылает в одном сообщении: +1. **Аудиозапись** — файл с устными ответами ученика (MP3, WAV, M4A и т.д.) +2. **Правильные ответы (ключи)** — текстом или фото бланка с ключами -**Если прислали только аудиозапись (без ключей):** -→ Только распознать ответы ученика через recognition.py и вывести их таблицей. -→ Сообщить: "Ответы распознаны. Чтобы выставить баллы, пришлите правильные ответы (ключи)." +### Шаг 1 — Сохранить аудиофайл во временную директорию -**Если прислали аудиозапись + ключи проверяющего:** -→ Распознать ответы, затем сверить с ключами и выставить баллы с объяснением ошибок. +Сохрани полученный аудиофайл во временный путь `/tmp/ege_audio_.`. ---- - -### Режим 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** +### Шаг 2 — Запустить recognition.py -Через subprocess (рекомендуется): +**Через subprocess (рекомендуется):** ```bash -python3 ~/zeroclaw-bot/recognition.py --output json +python3 ~/zeroclaw-bot/recognition.py {tmp_path} --output json ``` -Через прямой импорт: +**Через прямой импорт:** ```python import sys sys.path.insert(0, os.path.expanduser("~/zeroclaw-bot")) from recognition import process_audio + transcript, answers = process_audio(tmp_path, model_size="medium", verbose=False) +recognition_json = { + "transcript": transcript.text, + "answers": answers.to_dict(), + "unrecognized": answers.unrecognized, +} ``` -**Шаг 3 — Удалить временный файл** -```python -if os.path.exists(tmp_path): - os.remove(tmp_path) +Результат — JSON: +- `transcript` — полный текст того, что сказал ученик +- `answers.task1` — {"A": "3", "B": "1", ...} +- `answers.task2_9` — {"2": "1", "3": "2", ...} +- `answers.task10_18` — {"10": "2", "11": "1", ...} +- `answers.unrecognized` — задания, которые не удалось извлечь (засчитать как 0) + +### Шаг 3 — Получить и распознать ключи +Если ключи пришли текстом — использовать напрямую. +Если пришло фото бланка с ключами — распознать через vision. + +### Шаг 4 — Передать в LLM для сверки и выставления баллов + +Сформируй промпт для LLM на основе результатов recognition.py. +Подставь реальные значения вместо плейсхолдеров: + ``` +Ты эксперт-проверяющий ЕГЭ по английскому (аудирование). -**Шаг 4 — Вывести распознанные ответы** -Таблица: задание | распознанный ответ -Если есть нераспознанные — явно отметить. -Сообщить: "Ответы распознаны. Пришлите правильные ответы (ключи) для выставления баллов." - ---- - -### Режим 2: Распознавание + оценка - -**Шаги 1–3** — те же, что в режиме 1 (сохранить, запустить, удалить). - -**Шаг 4 — Получить и распознать ключи** -Если ключи текстом — использовать напрямую. -Если ключи фото — распознать через vision. - -**Шаг 5 — Загрузить критерии** -Прочитай `references/english-listening-criteria.md`. - -**Шаг 6 — Передать в LLM для сверки** - -Промпт для модели (подставить реальные значения): -``` -Ты эксперт-проверяющий ЕГЭ по английскому (аудирование, 2026). - -Транскрипт ответов ученика (Whisper): +Транскрипт ответов ученика (распознан через Whisper): [TRANSCRIPT] Извлечённые ответы ученика: -- Задание 1 (A–F): [TASK1] -- Задания 2–3 (True/False/Not stated): [TASK2_3] -- Задания 4–9 (выбор 1/2/3): [TASK4_9] +- Задание 1 (A-F): [TASK1] +- Задания 2-9: [TASK2_9] +- Задания 10-18: [TASK10_18] - Не распознаны (засчитать как 0): [UNRECOGNIZED] Правильные ответы (ключи): [KEYS] -Сверь ответы с ключами. 1 балл за совпадение, 0 за несовпадение или отсутствие. +Сверь ответы с ключами. 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"]} +{"results":{"task1":{"A":true},"task2_9":{"2":true},"task10_18":{"10":false}}, + "scores":{"task1":0,"task2_9":0,"task10_18":0,"total":0}, + "errors":["Задание 1B: ученик ответил 5, верный ответ 1"]} ``` -**Шаг 7 — Вывести результат** +Читай `references/english-listening-criteria.md` для максимальных баллов каждого блока. -``` -## Результаты: Аудирование ЕГЭ (Английский язык, 2026) +### Шаг 5 — Удалить временный файл -### Задание 1 — Установление соответствия (макс. 6 баллов) -| Высказывание | Ответ ученика | Ключ | Результат | -| A | 3 | 3 | + | -| B | 5 | 1 | - | -... -Баллов: X / 6 +Обязательно удали аудиофайл после получения ответа от LLM: -### Задания 2–3 — True / False / Not stated (макс. 2 балла) -... -Баллов: X / 2 - -### Задания 4–9 — Выбор ответа (макс. 6 баллов) -... -Баллов: X / 6 (или X / подблок) - -### Итого: XX / 12 - -### Ошибки с пояснением: -- Задание 1B: ученик ответил 5, верный ответ 1 -... - -[Если были нераспознанные:] -Задания X, Y не были распознаны в аудио и засчитаны как неверные (0 баллов). +```python +import os +if os.path.exists(tmp_path): + os.remove(tmp_path) ``` +### Шаг 6 — Вывести результат пользователю + +Три блока (Задание 1 / Задания 2-9 / Задания 10-18): +колонки — задание, ответ ученика, ключ, результат (✓/✗). +Итог: баллы по каждому блоку + общий итог из 23. + +Если были нераспознанные задания — явно указать: +"Задания X, Y не были распознаны в аудио и засчитаны как неверные." --- -## Общие принципы +## Общие принципы проверки -- **Актуальность**: Критерии соответствуют ФИПИ ЕГЭ 2026 -- **Строгость**: Придерживайся формулировок критериев точно -- **Снятия**: Всегда объясняй конкретно что именно не выполнено и почему снят балл -- **Пограничные случаи**: При сомнении — объясни оба варианта, выбери более обоснованный -- **Тон**: Конструктивный, учебный инструмент — не карательный -- **Совместимость**: Скилл работает с любым multimodal агентом (Qwen3, GPT-4o и др.) +- **Актуальность**: Критерии соответствуют демоверсии ФИПИ 2024–2025 +- **Строгость**: Придерживайся формулировок критериев, не занижай и не завышай +- **Пограничные случаи**: При сомнении между баллами — объясни оба варианта и выбери более обоснованный +- **Тон**: Конструктивный, поддерживающий. Это учебный инструмент, не карательный +- **Совместимость**: Скилл написан без привязки к конкретной модели. Работает с любым multimodal агентом, поддерживающим vision и аудио (Qwen3, GPT-4o, и др.) diff --git a/ege-checker/references/english-listening-criteria.md b/ege-checker/references/english-listening-criteria.md index 91f50b1..33d29b3 100644 --- a/ege-checker/references/english-listening-criteria.md +++ b/ege-checker/references/english-listening-criteria.md @@ -1,78 +1,30 @@ # Критерии оценивания раздела "Аудирование" ЕГЭ по английскому языку -## Источник: ФИПИ, спецификация ЕГЭ 2026 +## Статус: заглушка — будет заполнено в следующей итерации + +### Структура раздела (ЕГЭ 2024–2025) + +**Задание 1** (B1) — установление соответствия: 6 высказываний → 7 утверждений +- 1 балл за каждое верное соответствие +- Максимум: 6 баллов + +**Задания 2–9** (B2) — верно/неверно/не сказано (True/False/Not Stated) +- 1 балл за каждый верный ответ +- Максимум: 8 баллов + +**Задания 10–18** — краткий ответ/выбор из нескольких вариантов +- 1 балл за каждый верный ответ +- Максимум: 9 баллов + +**Итого по разделу "Аудирование": 20 первичных баллов** --- -## Структура раздела "Аудирование" +## STT интеграция (планируется) -Раздел состоит из 9 заданий (задания 1–9), максимум — 12 первичных баллов. -Каждое задание = 1 балл за верный ответ, 0 за неверный. -Критерии объективные — только совпадение с ключом, никакой субъективной оценки. +Для обработки аудиозаписей потребуется: +- OpenAI Whisper API (рекомендуется для русской и английской речи) +- Или Deepgram (альтернатива) +- Эндпоинт: `https://api.openai.com/v1/audio/transcriptions` +- Модель: `whisper-1` ---- - -## Задание 1 — Установление соответствия (1 задание, 6 баллов) - -Формат: ученик слышит 6 высказываний от 6 говорящих. Нужно установить соответствие -каждого высказывания одному из 7 утверждений (одно утверждение — лишнее). - -Ответ: буква A–F → цифра 1–7. -Оценивание: 1 балл за каждое верное соответствие, максимум 6 баллов. -Пример ответа ученика: A–3, B–1, C–5, D–7, E–2, F–4. - ---- - -## Задания 2–3 — Верно / Неверно / В тексте не сказано (2 задания, 2 балла) - -Формат: ученик слышит диалог. По 2 утверждения, нужно определить: -- 1 (True) — утверждение соответствует диалогу -- 2 (False) — утверждение противоречит диалогу -- 3 (Not stated) — информация в диалоге не упоминается - -Оценивание: 1 балл за каждый верный ответ, максимум 2 балла. - ---- - -## Задания 4–9 — Выбор из трёх вариантов (6 заданий, 6 баллов) - -Формат: ученик слышит 6 монологов/диалогов. К каждому — вопрос с 3 вариантами ответа. -Нужно выбрать верный вариант: 1, 2 или 3. - -Оценивание: 1 балл за каждый верный ответ, максимум 6 баллов (2 задания по 3 баллов). - -> Примечание по структуре: в разных вариантах ФИПИ количество заданий блоков может -> незначительно варьироваться. Агент должен ориентироваться на фактические ключи -> проверяющего, а не на фиксированную нумерацию выше. - ---- - -## Итоговая таблица - -| Блок | Задания | Тип | Макс. баллов | -|------|---------|-----|-------------| -| Соответствие | 1 | A–F → 1–7 | 6 | -| True/False/Not stated | 2–3 | 1/2/3 | 2 | -| Выбор ответа | 4–9 | 1/2/3 | 6 (иногда делится на подблоки) | -| | | **Итого** | **12** | - ---- - -## Алгоритм проверки агентом - -### Что нужно для оценки -1. Распознанные ответы ученика (из аудиозаписи через recognition.py) -2. Правильные ответы (ключи) от проверяющего - -### Логика сверки -- Задание 1: совпадение буква → цифра (A=3 у ученика, A=3 в ключе → 1 балл) -- Задания 2–9: совпадение цифры (ученик: 1, ключ: 1 → 1 балл) -- Нераспознанный ответ ("?") → 0 баллов -- Регистр не важен: "TRUE", "true", "T" — одно и то же -- Для соответствий принимать форматы: "A3", "A-3", "A=3", "A — 3" - -### Формат вывода - -Три блока с таблицами: задание | ответ ученика | ключ | результат (+ или -) -Итог по каждому блоку + общий итог из 12. -Список ошибок с пояснением: "Задание 1B: ученик — 5, верный ответ — 1". -Если есть нераспознанные задания — явно указать какие и что они засчитаны как 0. +Временное решение для MVP: попросить пользователя ввести ответы текстом. diff --git a/ege-checker/references/russian-essay-criteria.md b/ege-checker/references/russian-essay-criteria.md index e727016..d3317b5 100644 --- a/ege-checker/references/russian-essay-criteria.md +++ b/ege-checker/references/russian-essay-criteria.md @@ -1,19 +1,5 @@ # Критерии оценивания сочинения ЕГЭ по русскому языку -## Источник: ФИПИ, демоверсия ЕГЭ 2026 (задание 27) - ---- - -## Формулировка задания 27 - -Напишите сочинение-рассуждение по проблеме, поставленной в исходном тексте. -Сформулируйте позицию автора (рассказчика) по указанной проблеме. -Прокомментируйте, как в тексте раскрывается эта позиция. Включите в комментарий два -примера-иллюстрации из текста, важные для понимания позиции автора, и поясните их. -Укажите и поясните смысловую связь между примерами-иллюстрациями. -Сформулируйте и обоснуйте своё отношение к позиции автора. Включите в обоснование -пример-аргумент (читательский, историко-культурный или жизненный опыт). - -Объём — не менее 150 слов. +## Источник: ФИПИ, демоверсия 2024–2025 --- @@ -21,151 +7,200 @@ ### Подсчёт слов - Считаются все слова, включая служебные (предлоги, союзы, частицы) -- Инициалы с фамилией = одно слово («М.Ю. Лермонтов» — одно слово) -- Цифры при подсчёте не учитываются («5 лет» — одно слово, «пять лет» — два) -- «всё-таки» — одно слово, «всё же» — два слова -- Если слов менее 150 → работа не засчитывается, все критерии = 0 -- Если сочинение написано не по тексту → 0 баллов -- Если полный пересказ/переписывание исходного текста → 0 по К1–К10 +- Если слов **меньше 70** → все критерии = 0 (кроме К10) +- Если слов **70–149** → рекомендуемый объём не выдержан, но работа проверяется +- Рекомендуемый объём: **150–300 слов** ### Правило нулевого К1 -Если К1 = 0 → К2 = 0, К3 = 0 автоматически +Если К1 = 0 (проблема не сформулирована или сформулирована неверно): +→ К2 = 0, К3 = 0, К4 = 0 **автоматически** --- -## I. Содержание сочинения +## К1 — Формулировка проблем исходного текста (0–1 балл) -### К1 — Отражение позиции автора (рассказчика) (0–1 балл) +**1 балл**: Экзаменуемый (в той или иной форме) верно сформулировал одну из проблем исходного текста. Фактических ошибок, связанных с пониманием и формулировкой проблемы, нет. -1 балл: Позиция автора по указанной проблеме сформулирована верно. -0 баллов: Позиция автора не сформулирована или сформулирована неверно. +**0 баллов**: Экзаменуемый не смог верно сформулировать ни одну из проблем исходного текста. -Важно (изменение 2026): проблема задана в формулировке задания. Ученик раскрывает -позицию АВТОРА по этой проблеме — не формулирует проблему самостоятельно. +**Подсказки для проверки:** +- Проблема должна быть сформулирована как вопрос или тезис +- Она должна соответствовать содержанию исходного текста +- Допустимы разные формулировки одной и той же проблемы --- -### К2 — Комментарий к позиции автора (0–3 балла) +## К2 — Комментарий к сформулированной проблеме исходного текста (0–6 баллов) -Структура: 2 примера-иллюстрации с пояснениями + смысловая связь с пояснением. +Структура: **2 примера-иллюстрации** из текста + **смысловая связь** между ними. -| Баллов | Условия | -|--------|---------| -| 3 | 2 примера с пояснениями + смысловая связь с пояснением | -| 2 | 2 примера с пояснениями + связь без пояснения ИЛИ связь не указана/неверна | -| 1 | 1 пример с пояснением | -| 0 | Пример без пояснения ИЛИ нет примеров ИЛИ пересказ ИЛИ цитирование большого фрагмента ИЛИ комментарий без опоры на текст | +| Баллы | Условия | +|-------|---------| +| 6 | Оба примера с пояснениями + связь с анализом | +| 5 | Оба примера с пояснениями + связь без анализа | +| 4 | Оба примера с пояснениями, связь не указана | +| 3 | Один пример с пояснением + связь | +| 2 | Оба примера без пояснений + связь | +| 1 | Один пример без пояснения | +| 0 | Примеры отсутствуют или текст пересказан | -Правила: -- Пример без пояснения не засчитывается -- Фактическая ошибка в комментарии учитывается по К4 -- Не принимаются: комикс, аниме, манга, фанфик, графический роман, компьютерная игра +**Важно:** +- Пример-иллюстрация = конкретный фрагмент/факт из текста с объяснением его роли +- Смысловая связь: сравнение, противопоставление, причина-следствие, вывод и т.д. +- Пересказ без анализа = 0 баллов +- Фактические ошибки в комментарии снижают балл (−1 за каждую, но не более −2) --- -### К3 — Собственное отношение к позиции автора (0–2 балла) +## К3 — Отражение позиции автора исходного текста (0–1 балл) -2 балла: Отношение сформулировано и обосновано + приведён пример-аргумент. -1 балл: Отношение обосновано, но аргумент не приведён. - ИЛИ Аргумент есть, но отношение формальное («Я согласен с автором»). -0 баллов: Только формальное согласие/несогласие без обоснования. - ИЛИ Отношение не сформулировано. - ИЛИ Не соответствует указанной проблеме. +**1 балл**: Позиция автора верно сформулирована. Фактических ошибок нет. -Источники аргумента: читательский, историко-культурный или жизненный опыт. -Не принимаются: комикс, аниме, манга, фанфик, графический роман, компьютерная игра. +**0 баллов**: Позиция автора не сформулирована или сформулирована неверно. + +**Подсказки:** +- Позиция = ответ автора на поставленную проблему +- Должна быть явно выражена, не просто угадана +- Можно цитировать или пересказывать --- -## II. Речевое оформление +## К4 — Отношение к позиции автора по проблеме исходного текста (0–1 балл) -### К4 — Фактическая точность речи (0–1 балл) +**1 балл**: Экзаменуемый выразил своё отношение к позиции автора и обосновал его. -1 балл: Фактические ошибки отсутствуют. -0 баллов: Допущена 1 фактическая ошибка или более. +**0 баллов**: Экзаменуемый не выразил своё отношение или оно не обосновано. -Фактические ошибки: неверные имена/даты/названия, искажение содержания упоминаемых -текстов и событий, ошибки в именах реальных людей. +**Подсказки:** +- Формальное согласие/несогласие без обоснования = 0 +- Обоснование: личный опыт, примеры из жизни/литературы, логические доводы +- Фраза "я согласен с автором" без аргумента = 0 --- -### К5 — Логичность речи (0–2 балла) +## К5 — Смысловая цельность, речевая связность и последовательность изложения (0–2 балла) -2 балла: Логические ошибки отсутствуют. -1 балл: 1–2 логические ошибки. -0 баллов: 3 и более логические ошибки. +**2 балла**: Работа характеризуется смысловой цельностью, речевой связностью и последовательностью изложения. Логических ошибок нет. Абзацное членение присутствует. -Типичные: нарушение последовательности, противоречия, нарушение причинно-следственных -связей, отсутствие связи между абзацами. +**1 балл**: 1–2 логические ошибки ИЛИ нарушено абзацное членение. + +**0 баллов**: 3+ логические ошибки ИЛИ отсутствует абзацное членение. + +**Типичные логические ошибки:** +- Нарушение последовательности мысли +- Отсутствие связи между абзацами +- Повтор одной мысли разными словами +- Противоречия в тексте --- -### К6 — Соблюдение этических норм (0–1 балл) +## К6 — Точность и выразительность речи (0–2 балла) -1 балл: Этические ошибки отсутствуют. -0 баллов: Пропаганда экстремизма/фашизма/нетрадиционных ценностей, нецензурная брань, - материалы запрещённые среди несовершеннолетних, иностранные слова при наличии - общеупотребительных русских аналогов не из нормативных словарей. +**2 балла**: Работа характеризуется точностью выражения мысли, разнообразием грамматического строя речи. + +**1 балл**: Работа характеризуется точностью выражения мысли, но однообразием грамматического строя речи ИЛИ выразительностью, но использованием неточных слов. + +**0 баллов**: Точность и выразительность речи существенно снижены. + +**Примечание:** К6 не может быть выше К10. Если К10 = 0, то К6 = 0. --- -## III. Грамотность +## К7 — Соблюдение орфографических норм (0–3 балла) -> Нормы К7–К10 разработаны для сочинений от 150 слов. -> При объёме менее 150 слов — работа не засчитывается, все баллы = 0. +| Баллы | Количество ошибок | +|-------|-------------------| +| 3 | 0 ошибок | +| 2 | 1 ошибка | +| 1 | 2–3 ошибки | +| 0 | 4+ ошибки | -### К7 — Орфография (0–3 балла) +**Что считается ошибкой:** +- Неверное написание слова +- Слитное/раздельное/дефисное написание +- Прописные/строчные буквы -| Баллов | Ошибок | -|--------|--------| -| 3 | 0 | -| 2 | 1–2 | -| 1 | 3–4 | -| 0 | 5+ | - -### К8 — Пунктуация (0–3 балла) - -| Баллов | Ошибок | -|--------|--------| -| 3 | 0 | -| 2 | 1–2 | -| 1 | 3–4 | -| 0 | 5+ | - -### К9 — Грамматика (0–3 балла) - -| Баллов | Ошибок | -|--------|--------| -| 3 | 0 | -| 2 | 1–2 | -| 1 | 3–4 | -| 0 | 5+ | - -Типичные: ошибки в управлении и согласовании, неправильное образование форм слова, -нарушение синтаксических норм. - -### К10 — Речевые нормы (0–3 балла) - -| Баллов | Ошибок | -|--------|--------| -| 3 | 0 | -| 2 | 1–2 | -| 1 | 3–4 | -| 0 | 5+ | - -Типичные: тавтология, плеоназм, неуместное/несвойственное употребление слова. +**Что НЕ считается ошибкой:** +- Описки (если исправлены) +- Перенос слова --- -## Итоговая таблица (ЕГЭ 2026) +## К8 — Соблюдение пунктуационных норм (0–3 балла) -| К1 | К2 | К3 | К4 | К5 | К6 | К7 | К8 | К9 | К10 | Итого | -|----|----|----|----|----|----|----|----|----|-----|-------| -| 1 | 3 | 2 | 1 | 2 | 1 | 3 | 3 | 3 | 3 | 22 | +| Баллы | Количество ошибок | +|-------|-------------------| +| 3 | 0 ошибок | +| 2 | 1–2 ошибки | +| 1 | 3–4 ошибки | +| 0 | 5+ ошибок | -Изменения 2026 vs 2025: -- К2: максимум снижен с 6 до 3 баллов -- К3: максимум увеличен с 1 до 2 баллов -- К9, К10: максимум увеличен с 2 до 3 баллов каждый -- К11 (этика) и К12 (фактика) упразднены, включены в К5 и К6 -- Итоговый максимум: 22 балла (было 25) +**Типичные ошибки:** +- Пропуск запятой при однородных членах +- Ошибки в сложных предложениях +- Неверное оформление прямой речи + +--- + +## К9 — Соблюдение языковых норм (грамматика) (0–2 балла) + +| Баллы | Количество ошибок | +|-------|-------------------| +| 2 | 0 ошибок | +| 1 | 1–2 ошибки | +| 0 | 3+ ошибки | + +**Типичные грамматические ошибки:** +- Ошибки в согласовании (управлении) +- Неправильное образование форм слова +- Нарушение синтаксических норм + +--- + +## К10 — Соблюдение речевых норм (0–2 балла) + +| Баллы | Количество ошибок | +|-------|-------------------| +| 2 | 0–1 ошибка | +| 1 | 2–3 ошибки | +| 0 | 4+ ошибки | + +**Типичные речевые ошибки:** +- Тавтология (повтор одного слова/однокоренных слов) +- Плеоназм (масло масляное) +- Неуместное употребление слова +- Употребление слова в несвойственном значении + +--- + +## К11 — Соблюдение этических норм (0–1 балл) + +**1 балл**: Этические ошибки отсутствуют. + +**0 баллов**: Допущена 1+ этическая ошибка. + +**Этические ошибки:** +- Грубость, оскорбления в адрес кого-либо +- Национальная/религиозная нетерпимость +- Речевая агрессия + +--- + +## К12 — Соблюдение фактологической точности (0–1 балл) + +**1 балл**: Фактические ошибки отсутствуют. + +**0 баллов**: Допущена 1+ фактическая ошибка. + +**Фактические ошибки:** +- Неверные имена, даты, названия произведений +- Искажение содержания упомянутых текстов +- Неверные факты о реальных событиях/людях + +--- + +## Таблица максимальных баллов + +| К1 | К2 | К3 | К4 | К5 | К6 | К7 | К8 | К9 | К10 | К11 | К12 | Итого | +|----|----|----|----|----|----|----|----|----|-----|-----|-----|-------| +| 1 | 6 | 1 | 1 | 2 | 2 | 3 | 3 | 2 | 2 | 1 | 1 | **25** | diff --git a/local-testers/english-listening-checker.html b/local-testers/english-listening-checker.html new file mode 100644 index 0000000..d886a8c --- /dev/null +++ b/local-testers/english-listening-checker.html @@ -0,0 +1,563 @@ + + + + + +ЕГЭ Английский — Аудирование + + + +
+ +

ЕГЭ — Аудирование (Английский язык)

+

Загрузи аудиозапись ответов ученика → получи транскрипт → сверь с ключами → баллы

+ + +
+
Настройки API
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
1
+
+
Загрузи аудиозапись ответов ученика
+
+
🎤
+
Нажми или перетащи аудиофайл
+
MP3, WAV, M4A, OGG, WEBM — до 25 МБ
+ +
+ +
+
+
+ + +
+
+
2
+
+
Введи правильные ответы (ключи)
+

Заполни ключи для заданий, которые есть в варианте. Пустые задания игнорируются.

+ +
+ ЗаданиеКлюч (верный)— пусто — +
+ +
Задание 1 — Соответствие (A–F → цифра 1–7)
+
+ +
+ +
Задания 2–9 — True(1) / False(2) / Not Stated(3)
+
+ +
+ +
Задания 10–18 — Выбор из 3 вариантов (1/2/3)
+
+ +
+
+
+
+ + +
+ + +
+ + + + + +
+ +
+
Транскрипт ответов ученика
+
+
+
Распознанные ответы
+
+
+
+ +
+
Детальная проверка
+ +
+

Задание 1 — Установление соответствия

+ + + +
ВысказываниеОтвет ученикаКлючРезультат
+
+ +
+ +
+

Задания 2–9 — True / False / Not Stated

+ + + +
ЗаданиеОтвет ученикаКлючРезультат
+
+ +
+ +
+

Задания 10–18 — Выбор ответа

+ + + +
ЗаданиеОтвет ученикаКлючРезультат
+
+
+ +
+
+
Итоговый балл
+
+
из 23 первичных баллов
+
+
+
Ошибки
+
+
+
+ +
+ +
+ + + + diff --git a/local-testers/russian-writing-checker.html b/local-testers/russian-writing-checker.html new file mode 100644 index 0000000..785e5f6 --- /dev/null +++ b/local-testers/russian-writing-checker.html @@ -0,0 +1,300 @@ + + + +
+ +
+
Эндпоинт и модель
+
+ +
+
+ +
+
+ +
+
+ +
+
Режим
+
+ + + +
+ +
+
Загрузи фото бланка (можно несколько)
+
+ Нажми или перетащи изображения сюда + +
+
+
+ + + + +
+ +
+ +
+ + + +
+ +