Compare commits

...

No commits in common. "master" and "develop" have entirely different histories.

23 changed files with 847 additions and 1496 deletions

10
.gitignore vendored
View file

@ -1,4 +1,6 @@
.venv .env
.scans config.toml
ege-checker-local venv/
ege-checker-local/* state/
audit.log
__pycache__/

194
REPORT.md
View file

@ -1,194 +0,0 @@
# EGE-Checker — Отчёт о проделанной работе
**Период:** март — май 2026
**Команда:** Лаборатория Лямбда 3.0, МАИ
---
## 1. Цель проекта
Скилл для автоматической проверки заданий ЕГЭ с выставлением баллов по официальным критериям ФИПИ 2026. Два модуля:
- **Модуль 1 — Сочинение (русский язык):** OCR рукописных бланков + оценка по критериям К1К10
- **Модуль 2 — Говорение (английский язык):** STT аудиозаписей через Whisper + оценка по 4 заданиям
Целевой сценарий использования: помощник для эксперта — модель проверяет работу параллельно с человеком, показывает своё мнение по каждому критерию с подробным разбором.
---
## 2. Архитектура и стек
### Стек
| Компонент | Инструмент |
|-----------|-----------|
| Агент | ZeroClaw (Rust) / OpenClaw |
| LLM | Qwen3.5-122B (основная), GPT-4o, Claude Opus (тестирование) |
| OCR рукописи | Vision-возможности LLM (Qwen Vision) |
| STT аудио | faster-whisper (модель medium, локально) |
| Интерфейс | Telegram, Matrix |
### Файловая структура скилла
```
ege-checker/
├── SKILL.md # Инструкции и логика агента
├── recognition.py # STT-модуль (faster-whisper)
└── references/
├── russian-essay-criteria.md # Критерии К1К10, ЕГЭ 2026
└── english-speaking-criteria.md # Критерии 4 заданий говорения, ЕГЭ 2026
```
### Схема работы (текущая)
```
Telegram / Matrix - сообщение
Claw-агент
Агент (Qwen3.5-122B) + SKILL.md
Ответ в Telegram
```
---
## 3. Реализованные компоненты
### 3.1. SKILL.md — логика агента
Описывает два режима работы для каждого модуля:
**Модуль 1 (сочинение):**
- Только сканы → распознать рукопись, сообщить количество слов, запросить исходный текст
- Сканы + исходный текст + тема → распознать + оценить К1К10 с объяснением снятий
**Модуль 2 (говорение):**
- Только аудио → транскрибировать через recognition.py, вывести текст
- Аудио + задание → транскрибировать + оценить по критериям
Поддержка нескольких аудиофайлов (каждое задание отдельно).
### 3.2. recognition.py — STT-модуль
Транскрибирует аудиофайлы с ответами ученика через faster-whisper. Ключевые возможности:
- Автовыбор устройства (CPU / CUDA)
- VAD-фильтрация тишины и пауз
- WHISPER_PROMPT с описанием формата ответов для точного распознавания
- Сегментация с таймкодами
- Возвращает `TranscriptResult`: текст, язык, длительность, сегменты
Поддерживаемые форматы: MP3, WAV, M4A, OGG, WEBM, FLAC.
### 3.3. Критерии ЕГЭ 2026
**Русский язык (К1К10), итого 22 балла:**
| К1 | К2 | К3 | К4 | К5 | К6 | К7 | К8 | К9 | К10 |
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:---:|
| 1 | 3 | 2 | 1 | 2 | 1 | 3 | 3 | 3 | 3 |
**Английский язык — Говорение (4 задания), итого 20 баллов:**
| Задание | Тип | Макс. баллов |
|---------|-----|:------------:|
| 1 | Чтение вслух | 1 |
| 2 | Диалог-расспрос (4 вопроса) | 4 |
| 3 | Диалог-интервью (5 ответов) | 5 |
| 4 | Монолог (3 критерия: содержание 4б + организация 3б + язык 3б) | 10 |
---
## 4. Тестирование
### 4.1. OCR + оценка сочинения (RESULTS.md)
Протестировано на реальных работах учеников с известными баллами экспертов.
**Сводка по моделям:**
| Модель | Характеристика |
|--------|---------------|
| **qwen3.5-122b** | Основная рабочая модель. Хорошее качество, часть работ — точное совпадение с экспертом (±01 балл) |
| **gpt-4o** | Минимальная предвзятость, на ряде работ точнее qwen. Лучший результат: 22/22 |
| **gpt-5-pro** | Стабильно высокое качество, несколько работ — 2122/22 |
| **claude-opus-4-6** | Системно занижает оценки, закончились токены до завершения тестирования |
**Примеры результатов (выборка):**
| Балл эксперта | Лучший балл модели | Лучшая модель |
|:-------------:|:-----------------:|---------------|
| 22 | 22 | qwen3.5-122b |
| 22 | 22 | qwen3.5-122b |
| 20 | 22 | qwen3.5-122b |
| 22 | 22 | gpt-4o |
| 22 | 22 | gpt-4o / qwen |
Типичное расхождение: ±13 балла. На сложных работах с плохим OCR (низкий OCR Accuracy) расхождение возрастает.
**OCR Accuracy** измерена для части работ. Диапазон: 5799%. Низкая точность (Бакирова 57%, Агупова 68%) коррелирует с большим расхождением в оценке.
### 4.2. Оценка говорения (transcriptions-report.md)
Протестировано на 14 учениках из 4 регионов (Адыгея, Башкортостан, Бурятия, Алтай).
**Средние показатели по заданиям:**
| Метрика | Задание 1 | Задание 2 | Задание 3 | Задание 4 |
|---------|:---------:|:---------:|:---------:|:---------:|
| Avg True (эксперт) | 0.786 | 2.429 | 1.857 | 5.857 |
| Avg Pred (модель) | 0.357 | 2.286 | 1.357 | 7.000 |
| MAE | **0.429** | **0.143** | **0.500** | **1.143** |
**Выводы по заданиям:**
- **Задание 2** — наиболее точное (MAE 0.143). Объективный критерий (форма вопроса) хорошо распознаётся
- **Задание 1** — систематическое занижение (Avg Pred 0.357 vs True 0.786). Модель строже экспертов в оценке фонетики
- **Задание 3** — заметное занижение (MAE 0.500). Проблема: ответы ученика идут сплошным текстом, сложно разбить на 5 отдельных ответов
- **Задание 4** — систематическое завышение (Avg Pred 7.000 vs True 5.857). Модель щедрее оценивает монолог
---
## 5. Текущее состояние и открытые вопросы
### Работает
- ✅ recognition.py запускается локально в прокси, транскрипт передаётся агенту готовым
- ✅ Критерии ЕГЭ 2026 актуализированы (русский + говорение английский)
- ✅ SKILL.md описывает корректную логику для обоих модулей
- ✅ OCR + оценка сочинения протестированы на реальных работах
### Открытые вопросы
**Оценка говорения:**
- Задание 1 (чтение): систематическое занижение — нужна калибровка критерия фонетики
- Задание 3 (ответы): нужен метод сегментации сплошного транскрипта на отдельные ответы
- Задание 4 (монолог): систематическое завышение — нужны few-shot примеры для калибровки
**OCR:**
- Нет золотого стандарта для измерения точности OCR — нужна разметка эталонного датасета
- Qwen Vision может исправлять рукописные ошибки "на лету", что искажает результат OCR
**Инфраструктура:**
- Контекст задания (исходный текст из ФИПИ) не добавляется автоматически — нужна интеграция или ручная подача
- Тестирование говорения проводилось на небольшой выборке (14 человек, 4 региона) — нужно расширить
---
## 6. Соответствие дорожной карте
| Фаза | Срок по плану | Статус |
|------|:-------------:|--------|
| Ф1: Базовый прототип | 23 марта — 5 апреля | ✅ Выполнено. Скилл работает на тестовом наборе |
| М1: Первые цифры расхождения | 5 апреля | ✅ RESULTS.md + transcriptions-report.md |
| Ф2: Улучшение распознавания | 619 апреля | ✅ Выполнено. OCR итерации проведены, STT настроен |
| М2: OCR >90%, STT >85% | 19 апреля | ✅ OCR: достигнут на чистых бланках. STT: выявлены систематические отклонения |
| Ф3: Стабильность оценки | 20 апреля — 10 мая | ✅ Выполнено. Корректировка критериев проверки |
| Ф4: Интеграция и финализация | 1124 мая | 🔄 В процессе. |
---
## 8. Дальнейшая работа
1. **Расширение тестовой выборки:** протестировать говорение на 30+ работах из разных регионов для статистически значимых выводов
2. **Интеграция с платформой:** после готовности agent-api от команды платформы — переехать с локального Claw на общего агента

487
config.template.toml Normal file
View file

@ -0,0 +1,487 @@
api_key = "API_KEY_PLACEHOLDER"
default_provider = "custom:https://llm.lambda.coredump.ru/v1"
default_model = "qwen3.5-122b"
default_temperature = 0.7
provider_timeout_secs = 120
model_routes = []
embedding_routes = []
[model_providers]
[extra_headers]
[observability]
backend = "none"
runtime_trace_mode = "none"
runtime_trace_path = "state/runtime-trace.jsonl"
runtime_trace_max_entries = 200
[autonomy]
level = "full"
workspace_only = true
allowed_commands = [
"git",
"npm",
"cargo",
"ls",
"cat",
"grep",
"find",
"echo",
"pwd",
"wc",
"head",
"tail",
"date",
"curl",
"wget",
]
forbidden_paths = [
"/etc",
"/root",
"/home",
"/usr",
"/bin",
"/sbin",
"/lib",
"/opt",
"/boot",
"/dev",
"/proc",
"/sys",
"/var",
"/tmp",
"~/.ssh",
"~/.gnupg",
"~/.aws",
"~/.config",
]
max_actions_per_hour = 20
max_cost_per_day_cents = 500
require_approval_for_medium_risk = true
block_high_risk_commands = true
shell_env_passthrough = []
auto_approve = [
"file_read",
"memory_recall",
"http_request",
"browser",
"web_fetch",
"web_search",
]
always_ask = []
allowed_roots = []
non_cli_excluded_tools = []
[security.sandbox]
backend = "none"
firejail_args = []
[security.resources]
max_memory_mb = 512
max_cpu_time_seconds = 60
max_subprocesses = 20
memory_monitoring = true
[security.audit]
enabled = true
log_path = "audit.log"
max_size_mb = 100
sign_events = false
[security.otp]
enabled = false
method = "totp"
token_ttl_secs = 30
cache_valid_secs = 300
gated_actions = [
"shell",
"file_write",
"browser_open",
"browser",
"memory_forget",
]
gated_domains = []
gated_domain_categories = []
[security.estop]
enabled = false
state_file = "~/.zeroclaw/estop-state.json"
require_otp_to_resume = true
[security.nevis]
enabled = false
instance_url = ""
realm = "master"
client_id = ""
token_validation = "local"
role_mapping = []
require_mfa = false
session_timeout_secs = 3600
[backup]
enabled = true
max_keep = 10
include_dirs = [
"config",
"memory",
"audit",
"knowledge",
]
destination_dir = "state/backups"
compress = true
encrypt = false
[data_retention]
enabled = false
retention_days = 90
dry_run = false
categories = []
[cloud_ops]
enabled = false
default_cloud = "aws"
supported_clouds = [
"aws",
"azure",
"gcp",
]
iac_tools = ["terraform"]
cost_threshold_monthly_usd = 100.0
well_architected_frameworks = ["aws-waf"]
[conversational_ai]
enabled = false
default_language = "en"
supported_languages = [
"en",
"de",
"fr",
"it",
]
auto_detect_language = true
escalation_confidence_threshold = 0.3
max_conversation_turns = 50
conversation_timeout_secs = 1800
analytics_enabled = false
[security_ops]
enabled = false
playbooks_dir = "~/.zeroclaw/playbooks"
auto_triage = false
require_approval_for_actions = true
max_auto_severity = "low"
report_output_dir = "~/.zeroclaw/security-reports"
[runtime]
kind = "native"
[runtime.docker]
image = "alpine:3.20"
network = "none"
memory_limit_mb = 512
cpu_limit = 1.0
read_only_rootfs = true
mount_workspace = true
allowed_workspace_roots = []
[reliability]
provider_retries = 2
provider_backoff_ms = 500
fallback_providers = []
api_keys = []
channel_initial_backoff_secs = 2
channel_max_backoff_secs = 60
scheduler_poll_secs = 15
scheduler_retries = 2
[reliability.model_fallbacks]
[scheduler]
enabled = true
max_tasks = 64
max_concurrent = 4
[agent]
compact_context = false
max_tool_iterations = 20
max_history_messages = 50
max_context_tokens = 32000
parallel_tools = false
tool_dispatcher = "auto"
tool_call_dedup_exempt = []
tool_filter_groups = []
[skills]
open_skills_enabled = true
prompt_injection_mode = "full"
enabled = ["ege-checker"]
[query_classification]
enabled = false
rules = []
[heartbeat]
enabled = true
interval_minutes = 30
two_phase = false
adaptive = true
min_interval_minutes = 5
max_interval_minutes = 120
deadman_timeout_minutes = 0
max_run_history = 100
[cron]
enabled = true
max_run_history = 50
[channels_config]
cli = true
message_timeout_secs = 300
ack_reactions = true
show_tool_calls = true
session_persistence = true
session_backend = "sqlite"
session_ttl_hours = 0
[channels_config.telegram]
bot_token = "TELEGRAM_TOKEN_PLACEHOLDER"
stream_mode = "off"
allowed_users = ["*"]
draft_update_interval_ms = 1000
interrupt_on_new_message = false
mention_only = false
[memory]
backend = "sqlite"
auto_save = true
hygiene_enabled = true
archive_after_days = 7
purge_after_days = 30
conversation_retention_days = 30
embedding_provider = "none"
embedding_model = "text-embedding-3-small"
embedding_dimensions = 1536
vector_weight = 0.7
keyword_weight = 0.3
min_relevance_score = 0.4
embedding_cache_size = 10000
chunk_max_tokens = 512
response_cache_enabled = false
response_cache_ttl_minutes = 60
response_cache_max_entries = 5000
response_cache_hot_entries = 256
snapshot_enabled = false
snapshot_on_hygiene = false
auto_hydrate = true
[memory.qdrant]
collection = "zeroclaw_memories"
[storage.provider.config]
provider = ""
schema = "public"
table = "memories"
[tunnel]
provider = "none"
[gateway]
port = 42617
host = "127.0.0.1"
require_pairing = true
allow_public_bind = false
paired_tokens = ["enc2:78a946f8656a7b3aae8634282887e0bde369e156b95ed86570ae4b3c08fa17e69a3cdad4d6a331b4c824c4b0b1870e2ca3b10901ca3d2731cfb82facbda531a3b55c16da7b723d335f89178462a2131f720a95c4de46683209cf0826"]
pair_rate_limit_per_minute = 10
webhook_rate_limit_per_minute = 60
trust_forwarded_headers = false
rate_limit_max_keys = 10000
idempotency_ttl_secs = 300
idempotency_max_keys = 10000
[composio]
enabled = false
entity_id = "default"
[microsoft365]
enabled = false
auth_flow = "client_credentials"
scopes = ["https://graph.microsoft.com/.default"]
token_cache_encrypted = true
[secrets]
encrypt = true
[browser]
enabled = true
allowed_domains = ["*"]
backend = "agent_browser"
native_headless = true
native_webdriver_url = "http://127.0.0.1:9515"
[browser.computer_use]
endpoint = "http://127.0.0.1:8787/v1/actions"
timeout_ms = 15000
allow_remote_endpoint = true
window_allowlist = []
[http_request]
enabled = true
allowed_domains = ["*"]
max_response_size = 100000000
timeout_secs = 60
allow_private_hosts = true
[multimodal]
max_images = 4
max_image_size_mb = 5
allow_remote_fetch = true
[web_fetch]
enabled = true
allowed_domains = ["*"]
blocked_domains = []
max_response_size = 50000000
timeout_secs = 30
[web_search]
enabled = true
provider = "duckduckgo"
max_results = 25
timeout_secs = 30
[project_intel]
enabled = false
default_language = "en"
report_output_dir = "~/.zeroclaw/project-reports"
risk_sensitivity = "medium"
include_git_data = true
include_jira_data = false
[proxy]
enabled = true
no_proxy = ["*"]
scope = "zeroclaw"
services = []
[identity]
format = "openclaw"
[cost]
enabled = false
daily_limit_usd = 10.0
monthly_limit_usd = 100.0
warn_at_percent = 80
allow_override = false
[cost.prices."anthropic/claude-sonnet-4-20250514"]
input = 3.0
output = 15.0
[cost.prices."openai/gpt-4o-mini"]
input = 0.15
output = 0.6
[cost.prices."openai/o1-preview"]
input = 15.0
output = 60.0
[cost.prices."openai/gpt-4o"]
input = 5.0
output = 15.0
[cost.prices."google/gemini-1.5-pro"]
input = 1.25
output = 5.0
[cost.prices."anthropic/claude-3-haiku"]
input = 0.25
output = 1.25
[cost.prices."anthropic/claude-opus-4-20250514"]
input = 15.0
output = 75.0
[cost.prices."google/gemini-2.0-flash"]
input = 0.1
output = 0.4
[cost.prices."anthropic/claude-3.5-sonnet"]
input = 3.0
output = 15.0
[peripherals]
enabled = false
boards = []
[agents]
[swarms]
[hooks]
enabled = true
[hooks.builtin]
command_logger = false
[hooks.builtin.webhook_audit]
enabled = false
url = ""
tool_patterns = []
include_args = false
max_args_bytes = 4096
[hardware]
enabled = false
transport = "None"
baud_rate = 115200
workspace_datasheets = false
[transcription]
enabled = false
api_url = "https://api.groq.com/openai/v1/audio/transcriptions"
model = "whisper-large-v3-turbo"
max_duration_secs = 120
[tts]
enabled = false
default_provider = "openai"
default_voice = "alloy"
default_format = "mp3"
max_text_length = 4096
[mcp]
enabled = false
deferred_loading = true
servers = []
[nodes]
enabled = false
max_nodes = 16
[workspace]
enabled = false
workspaces_dir = "~/.zeroclaw/workspaces"
isolate_memory = true
isolate_secrets = true
isolate_audit = true
cross_workspace_search = false
[notion]
enabled = false
api_key = ""
database_id = ""
poll_interval_secs = 5
status_property = "Status"
input_property = "Input"
result_property = "Result"
max_concurrent = 4
recover_stale = true
[node_transport]
enabled = true
shared_secret = ""
max_request_age_secs = 300
require_https = true
allowed_peers = []
mutual_tls = false
connection_pool_size = 4

Binary file not shown.

View file

@ -1,158 +0,0 @@
---
name: ege-checker
description: >
Проверка заданий ЕГЭ с выставлением баллов по официальным критериям ФИПИ.
Используй этот скилл когда пользователь:
- Загружает фото/скан рукописного сочинения ЕГЭ по русскому языку
- Просит проверить сочинение ЕГЭ, выставить баллы, оценить работу
- Загружает аудиозапись ответов по разделу "Говорение" ЕГЭ по английскому
- Упоминает "ЕГЭ", "сочинение", "критерии К1-К12", "говорение английский"
- Просит разобрать ошибки в сочинении по критериям ФИПИ
Скилл умеет: OCR рукописного текста через vision, STT аудиозаписей через faster-whisper,
оценку по критериям ФИПИ 2026. Работает с любой multimodal LLM (Qwen, GPT-4o и др.).
---
# ЕГЭ-Checker
## Обзор возможностей
| Модуль | Вход — только распознавание | Вход — распознавание + оценка |
|--------|----------------------------|-------------------------------|
| Сочинение (русский) | Сканы бланков | Сканы + исходный текст + тема |
| Говорение (английский) | Аудиозапись | Аудиозапись + задания (текст, ключевые фразы, вопросы, план, фотографии) |
---
## Модуль 1: Сочинение ЕГЭ по русскому языку
### Логика запуска
**Если прислали только сканы бланков (без исходного текста и темы):**
→ Только распознать рукопись и вывести текст. Оценку не выставлять.
→ Сообщить: "Текст распознан. Чтобы выставить баллы по критериям, пришлите также исходный текст задания и тему сочинения."
**Если прислали сканы + исходный текст задания + тему:**
→ Распознать рукопись, затем выставить баллы по К1К10 с объяснением снятий.
---
### Режим 1: Только распознавание
1. Внимательно рассмотри все изображения — бланки могут быть на нескольких листах
2. Распознай рукописный текст максимально точно, сохраняя абзацное деление
3. Зачёркнутые слова отмечай как ~~зачёркнуто~~
4. Выведи распознанный текст и сообщи количество слов
5. Уточни: "Если есть неточности — поправьте. Чтобы выставить баллы, пришлите исходный текст задания."
---
### Режим 2: Распознавание + оценка по критериям
**Шаг 1 — Распознать текст** (как в режиме 1, шаги 14)
Попроси подтвердить распознанный текст перед оценкой.
**Шаг 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: Говорение ЕГЭ по английскому
### Логика запуска
**Если прислали только аудиозапись:**
→ Прослушай аудиозапись и выведи транскрипт
**Если прислали аудиозапись и задания:**
→ Прослушай аудиозапись и проверь ответ ученика по критериям
**Все задания присылаются отдельными аудиофайлами - их может быть несколько, может быть 1 - это нормально**
**Если прислали не все задания - проверь то, что прислали, и ничего больше**
---
**Шаг 1 — Запустить recognition.py**
```bash
python3 ~/.zeroclaw/workspace/skills/ege-checker/recognition.py <tmp_path>
```
**Шаг 2 - Загрузить критерии**
Прочитай `references/english-speaking-criteria.md` — критерии 1-4 задания с баллами (ЕГЭ 2026).
**Шаг 3 — Оценить задания по критериям**
Для каждого критерия:
- Объясни снятие баллов — что именно не выполнено и почему
- Выставь балл
**Шаг 4 — Итоговый вывод**
Список: задание - распознанный ответ - выставленный балл - обьяснение оценки
Если есть нераспознанные — явно отметить.
---
## Общие принципы
- **Актуальность**: Критерии соответствуют ФИПИ ЕГЭ 2026
- **Строгость**: Придерживайся формулировок критериев точно
- **Снятия**: Всегда объясняй конкретно что именно не выполнено и почему снят балл
- **Пограничные случаи**: При сомнении — объясни оба варианта, выбери более обоснованный
- **Тон**: Конструктивный, учебный инструмент — не карательный
- **Совместимость**: Скилл работает с любым multimodal агентом (Qwen3, GPT-4o и др.)

View file

@ -1,206 +0,0 @@
"""
recognition.py модуль распознавания аудиофайла с ответами ученика ЕГЭ (говорение, английский язык).
Зависимости:
pip install faster-whisper
"""
from __future__ import annotations
import re
import logging
from dataclasses import dataclass, field
from pathlib import Path
logger = logging.getLogger(__name__)
# ---------------------------------------------------------------------------
# Константы
# ---------------------------------------------------------------------------
# Модели faster-whisper по убыванию скорости / возрастанию качества:
# tiny, base, small, medium, large-v2, large-v3
DEFAULT_MODEL = "medium"
# Подсказка для Whisper — описывает формат ответов ученика.
WHISPER_PROMPT = (
"Student answers to EGE English speaking exam. "
"Task one: read aloud. "
"Task two: ask four direct questions. "
"Task three: answer five questions. "
"Task four: monologue - compare two photos. "
)
# ---------------------------------------------------------------------------
# Структуры данных
# ---------------------------------------------------------------------------
@dataclass
class TranscriptResult:
"""Результат транскрипции аудиофайла."""
text: str # Полный текст транскрипта
language: str # Определённый язык ("en")
duration_seconds: float # Длительность аудио в секундах
segments: list[dict] = field(default_factory=list) # Детальные сегменты с таймкодами
model_used: str = DEFAULT_MODEL
# ---------------------------------------------------------------------------
# Транскрипция
# ---------------------------------------------------------------------------
def transcribe(
audio_path: str | Path,
model_size: str = DEFAULT_MODEL,
device: str = "auto",
compute_type: str = "auto",
language: str = "en",
beam_size: int = 5,
) -> TranscriptResult:
"""
Транскрибирует аудиофайл с ответами ученика.
Args:
audio_path: Путь к аудиофайлу (MP3, WAV, M4A, OGG, WEBM, FLAC).
model_size: Размер модели Whisper: tiny/base/small/medium/large-v2/large-v3.
medium хороший баланс скорость/качество для ЕГЭ.
large-v3 максимальное качество, медленнее.
device: "auto" | "cpu" | "cuda". "auto" выберет GPU если доступен.
compute_type: "auto" | "int8" | "float16" | "float32".
"auto" подберёт оптимальный тип для устройства.
language: Язык аудио. "en" для ответов на английском.
beam_size: Ширина луча beam search. 5 стандарт, выше = точнее но медленнее.
Returns:
TranscriptResult с текстом, языком, длительностью и сегментами.
Raises:
FileNotFoundError: Если аудиофайл не найден.
RuntimeError: Если faster-whisper не установлен.
"""
try:
from faster_whisper import WhisperModel
except ImportError:
raise RuntimeError(
"faster-whisper не установлен. Установите: pip install faster-whisper"
)
audio_path = Path(audio_path)
if not audio_path.exists():
raise FileNotFoundError(f"Аудиофайл не найден: {audio_path}")
# Автовыбор устройства и типа вычислений
resolved_device, resolved_compute = _resolve_device(device, compute_type)
logger.info(
"Загрузка модели %s на %s (%s)...",
model_size, resolved_device, resolved_compute
)
model = WhisperModel(
model_size,
device=resolved_device,
compute_type=resolved_compute,
)
logger.info("Транскрибирую: %s", audio_path.name)
segments_gen, info = model.transcribe(
str(audio_path),
language=language,
beam_size=beam_size,
initial_prompt=WHISPER_PROMPT,
word_timestamps=False,
vad_filter=True, # Фильтрация тишины — полезно для записей с паузами
vad_parameters={
"min_silence_duration_ms": 500, # Паузы >0.5с считаются тишиной
"speech_pad_ms": 200,
},
)
# Материализуем генератор сегментов
segments = []
full_text_parts = []
for seg in segments_gen:
segments.append({
"start": round(seg.start, 2),
"end": round(seg.end, 2),
"text": seg.text.strip(),
})
full_text_parts.append(seg.text.strip())
full_text = " ".join(full_text_parts)
logger.info(
"Транскрипция завершена. Длительность: %.1f сек, слов ~%d",
info.duration, len(full_text.split())
)
return TranscriptResult(
text=full_text,
language=info.language,
duration_seconds=round(info.duration, 1),
segments=segments,
model_used=model_size,
)
def _resolve_device(device: str, compute_type: str) -> tuple[str, str]:
"""Определяет оптимальное устройство и тип вычислений."""
if device != "auto" and compute_type != "auto":
return device, compute_type
# Проверяем наличие CUDA
try:
from torch import cuda
has_cuda = cuda.is_available()
except ImportError:
has_cuda = False
if device == "auto":
device = "cuda" if has_cuda else "cpu"
if compute_type == "auto":
if device == "cuda":
compute_type = "float16" # GPU: float16 быстрее и точнее чем int8
else:
compute_type = "int8" # CPU: int8 значительно быстрее float32
return device, compute_type
# ---------------------------------------------------------------------------
# CLI
# ---------------------------------------------------------------------------
if __name__ == "__main__":
import argparse
import sys
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
parser = argparse.ArgumentParser(
description="Распознавание аудиоответов ЕГЭ (говорение, английский язык)"
)
parser.add_argument("audio", help="Путь к аудиофайлу")
parser.add_argument(
"--model", default=DEFAULT_MODEL,
choices=["tiny", "base", "small", "medium", "large-v2", "large-v3"],
help=f"Размер модели Whisper (по умолчанию: {DEFAULT_MODEL})"
)
parser.add_argument(
"--device", default="auto",
choices=["auto", "cpu", "cuda"],
help="Устройство для инференса (по умолчанию: auto)"
)
args = parser.parse_args()
try:
result = transcribe(args.audio, model_size=args.model, device=args.device)
print(result.text)
except (FileNotFoundError, RuntimeError) as e:
print(f"Ошибка: {e}", file=sys.stderr)
sys.exit(1)

View file

@ -1,125 +0,0 @@
# Критерии оценивания раздела "Говорение" ЕГЭ по английскому языку
## Источник: ФИПИ, спецификация ЕГЭ 2026
---
## Структура раздела "Говорение"
4 задания, максимум — 20 первичных баллов.
| Задание | Тип | Макс. баллов |
|---------|-----|-------------|
| 1 | Чтение текста | 1 |
| 2 | Диалог-расспрос (вопросы) | 4 |
| 3 | Диалог-интервью (ответы) | 5 |
| 4 | Монологическое высказывание | 10 |
| | **Итого** | **20** |
---
## Задание 1 — Чтение текста (01 балл)
| Балл | Критерий |
|------|----------|
| 1 | Допускается не более 5 фонетических ошибок, в том числе 12 ошибки, искажающие смысл |
| 0 | Сделано более 5 фонетических ошибок, ИЛИ сделано 3 и более фонетические ошибки, искажающие смысл |
---
## Задание 2 — Диалог-расспрос: вопросы (4 вопроса × 01 балл = 0-4 баллов)
Ученик задаёт 4 вопроса по заданной теме.
| Балл | Критерий |
|------|----------|
| 1 | Вопрос по содержанию отвечает поставленной задаче; имеет правильную грамматическую форму прямого вопроса; возможные фонетические и лексические погрешности не затрудняют восприятия |
| 0 | Вопрос не задан, ИЛИ заданный вопрос по содержанию не отвечает поставленной задаче, И/ИЛИ не имеет правильной грамматической формы прямого вопроса, И/ИЛИ фонетические и лексические ошибки препятствуют коммуникации |
---
## Задание 3 — Диалог-интервью: ответы на вопросы интервьювера в виде текста (5 ответов × 01 балл = 0-5 баллов)
Ученик отвечает на 5 вопросов интервьюера в виде одного текста.
Для каждого вопроса сначала найди предложения в тексте, потом оценивай.
| Балл | Критерий |
|------|----------|
| 1 | Дан полный и точный ответ на запрос информации: 23 коммуникативно обусловленные фразы, в которых отсутствуют элементарные лексико-грамматические и/или фонетические ошибки |
| 0 | Ответ на вопрос не дан, ИЛИ содержание ответа не соответствует запросу информации, ИЛИ ответ содержит менее 2 фраз, ИЛИ в ответе имеются элементарные лексико-грамматические и/или фонетические ошибки (в том числе когда ответ носит характер набора слов) |
---
## Задание 4 — Монологическое высказывание (010 баллов по 3 критериям)
Тематическое монологическое высказывание высокого уровня с элементами описания и рассуждения.
### Критерий 1: Решение коммуникативной задачи / Содержание (04 балла)
| Балл | Критерий |
|------|----------|
| 4 | Коммуникативная задача выполнена полностью — содержание полно, точно и развёрнуто отражает все аспекты, указанные в задании (1215 фраз) |
| 3 | Коммуникативная задача выполнена в основном: 1 аспект не раскрыт (остальные раскрыты полно) ИЛИ 12 аспекта раскрыты неполно/неточно (1215 фраз) |
| 2 | Коммуникативная задача выполнена не полностью: 1 аспект не раскрыт и 1 раскрыт неполно/неточно ИЛИ 3 аспекта раскрыты неполно/неточно (1011 фраз) |
| 1 | Коммуникативная задача выполнена частично: 1 аспект не раскрыт и 2 раскрыты неполно/неточно, ИЛИ 2 аспекта не раскрыты (остальные раскрыты полно), ИЛИ все аспекты раскрыты неполно/неточно (89 фраз) |
| 0 | Коммуникативная задача выполнена менее чем на 50%: 3 или более аспекта не раскрыты, ИЛИ 2 аспекта не раскрыты и 1 и более раскрыты неполно/неточно, ИЛИ 1 аспект не раскрыт и остальные раскрыты неполно/неточно, ИЛИ объём высказывания — 7 и менее фраз |
### Критерий 2: Организация высказывания (03 балла)
| Балл | Критерий |
|------|----------|
| 3 | Высказывание логично; имеет завершённый характер (есть вступительная фраза с обращением к другу И заключительная фраза); средства логической связи используются правильно. Допускается 1 ошибка в логичности/средствах логической связи |
| 2 | Высказывание в основном логично и имеет достаточно завершённый характер (есть вступительная фраза с обращением к другу И заключительная фраза); имеются 23 ошибки в логичности/средствах логической связи |
| 1 | Высказывание не имеет завершённого характера: отсутствует вступительная ИЛИ заключительная фраза, И/ИЛИ имеются 45 ошибок в логичности/средствах логической связи |
| 0 | Высказывание не имеет завершённого характера: отсутствуют вступительная И заключительная фразы, И/ИЛИ имеются 6 и более ошибок в логичности/средствах логической связи |
### Критерий 3: Языковое оформление (03 балла)
| Балл | Критерий |
|------|----------|
| 3 | Словарный запас, грамматические структуры, фонетическое оформление соответствуют задаче. Допускается не более 3 негрубых лексико-грамматических ошибок И/ИЛИ не более 3 негрубых фонетических ошибок |
| 2 | Словарный запас, грамматика, фонетика в основном соответствуют задаче. Допускается не более 45 лексико-грамматических (из них не более 2 грубых) И/ИЛИ не более 45 фонетических ошибок (из них не более 2 грубых) |
| 1 | Языковое оформление частично соответствует задаче. Допускается не более 67 лексико-грамматических (из них не более 3 грубых) И/ИЛИ не более 67 фонетических ошибок (из них не более 3 грубых) |
| 0 | Понимание высказывания затруднено из-за многочисленных ошибок: 8 и более лексико-грамматических ошибок ИЛИ 4 и более грубых лексико-грамматических ошибок, И/ИЛИ 8 и более фонетических ошибок ИЛИ 4 и более грубых фонетических ошибок, ИЛИ ответ носит характер набора слов |
### Итоговая таблица задания 4
| Критерий | Макс. баллов |
|----------|-------------|
| 1. Решение коммуникативной задачи (содержание) | 4 |
| 2. Организация высказывания | 3 |
| 3. Языковое оформление | 3 |
| **Итого за задание 4** | **10** |
---
## Алгоритм проверки агентом
### Что нужно для оценки
1. Аудиозапись ответа ученика
2. Задание (текст для 1 задания, 4 ключевых фразы для 2 задания, 5 вопросов интервьювера для 3 задания, 2 фотографии и план монолога для 4 задания)
### Логика оценки по заданиям
**Задание 1 (чтение вслух):**
- Проверить правильность транскрипта и отсутствие фонетических, грамматических ошибок
- Вынести 0 или 1 балл с обоснованием
**Задание 2 (вопросы):**
- Оценить каждый из 4 вопросов отдельно (0 или 1)
- Проверить: соответствие теме + грамматическая форма прямого вопроса + понятность
**Задание 3 (ответы):**
- Оценить ответы ученика на вопросы - 5 ответов (0 или 1)
- Проверить: полнота (23 фразы) + соответствие вопросу + отсутствие грубых ошибок
**Задание 4 (монолог):**
- К1: посчитать аспекты из задания, проверить раскрытие каждого + подсчитать фразы
- К2: проверить наличие вступления с обращением, заключения, логических связок
- К3: посчитать лексико-грамматические и фонетические ошибки, разделить на грубые/негрубые
### Формат вывода
Для каждого задания: балл + краткое обоснование со ссылкой на критерий.
Итоговая таблица: задание | балл | макс.
Общий итог из 20.
При наличии ошибок — конкретные примеры из транскрипта.

View file

@ -1,171 +0,0 @@
# Критерии оценивания сочинения ЕГЭ по русскому языку
## Источник: ФИПИ, демоверсия ЕГЭ 2026 (задание 27)
---
## Формулировка задания 27
Напишите сочинение-рассуждение по проблеме, поставленной в исходном тексте.
Сформулируйте позицию автора (рассказчика) по указанной проблеме.
Прокомментируйте, как в тексте раскрывается эта позиция. Включите в комментарий два
примера-иллюстрации из текста, важные для понимания позиции автора, и поясните их.
Укажите и поясните смысловую связь между примерами-иллюстрациями.
Сформулируйте и обоснуйте своё отношение к позиции автора. Включите в обоснование
пример-аргумент (читательский, историко-культурный или жизненный опыт).
Объём — не менее 150 слов.
---
## Предварительные проверки
### Подсчёт слов
- Считаются все слова, включая служебные (предлоги, союзы, частицы)
- Инициалы с фамилией = одно слово («М.Ю. Лермонтов» — одно слово)
- Цифры при подсчёте не учитываются («5 лет» — одно слово, «пять лет» — два)
- «всё-таки» — одно слово, «всё же» — два слова
- Если слов менее 150 → работа не засчитывается, все критерии = 0
- Если сочинение написано не по тексту → 0 баллов
- Если полный пересказ/переписывание исходного текста → 0 по К1К10
### Правило нулевого К1
Если К1 = 0 → К2 = 0, К3 = 0 автоматически
---
## I. Содержание сочинения
### К1 — Отражение позиции автора (рассказчика) (01 балл)
1 балл: Позиция автора по указанной проблеме сформулирована верно.
0 баллов: Позиция автора не сформулирована или сформулирована неверно.
Важно (изменение 2026): проблема задана в формулировке задания. Ученик раскрывает
позицию АВТОРА по этой проблеме — не формулирует проблему самостоятельно.
---
### К2 — Комментарий к позиции автора (03 балла)
Структура: 2 примера-иллюстрации с пояснениями + смысловая связь с пояснением.
| Баллов | Условия |
|--------|---------|
| 3 | 2 примера с пояснениями + смысловая связь с пояснением |
| 2 | 2 примера с пояснениями + связь без пояснения ИЛИ связь не указана/неверна |
| 1 | 1 пример с пояснением |
| 0 | Пример без пояснения ИЛИ нет примеров ИЛИ пересказ ИЛИ цитирование большого фрагмента ИЛИ комментарий без опоры на текст |
Правила:
- Пример без пояснения не засчитывается
- Фактическая ошибка в комментарии учитывается по К4
- Не принимаются: комикс, аниме, манга, фанфик, графический роман, компьютерная игра
---
### К3 — Собственное отношение к позиции автора (02 балла)
2 балла: Отношение сформулировано и обосновано + приведён пример-аргумент.
1 балл: Отношение обосновано, но аргумент не приведён.
ИЛИ Аргумент есть, но отношение формальное («Я согласен с автором»).
0 баллов: Только формальное согласие/несогласие без обоснования.
ИЛИ Отношение не сформулировано.
ИЛИ Не соответствует указанной проблеме.
Источники аргумента: читательский, историко-культурный или жизненный опыт.
Не принимаются: комикс, аниме, манга, фанфик, графический роман, компьютерная игра.
---
## II. Речевое оформление
### К4 — Фактическая точность речи (01 балл)
1 балл: Фактические ошибки отсутствуют.
0 баллов: Допущена 1 фактическая ошибка или более.
Фактические ошибки: неверные имена/даты/названия, искажение содержания упоминаемых
текстов и событий, ошибки в именах реальных людей.
---
### К5 — Логичность речи (02 балла)
2 балла: Логические ошибки отсутствуют.
1 балл: 12 логические ошибки.
0 баллов: 3 и более логические ошибки.
Типичные: нарушение последовательности, противоречия, нарушение причинно-следственных
связей, отсутствие связи между абзацами.
---
### К6 — Соблюдение этических норм (01 балл)
1 балл: Этические ошибки отсутствуют.
0 баллов: Пропаганда экстремизма/фашизма/нетрадиционных ценностей, нецензурная брань,
материалы запрещённые среди несовершеннолетних, иностранные слова при наличии
общеупотребительных русских аналогов не из нормативных словарей.
---
## III. Грамотность
> Нормы К7К10 разработаны для сочинений от 150 слов.
> При объёме менее 150 слов — работа не засчитывается, все баллы = 0.
### К7 — Орфография (03 балла)
| Баллов | Ошибок |
|--------|--------|
| 3 | 0 |
| 2 | 12 |
| 1 | 34 |
| 0 | 5+ |
### К8 — Пунктуация (03 балла)
| Баллов | Ошибок |
|--------|--------|
| 3 | 0 |
| 2 | 12 |
| 1 | 34 |
| 0 | 5+ |
### К9 — Грамматика (03 балла)
| Баллов | Ошибок |
|--------|--------|
| 3 | 0 |
| 2 | 12 |
| 1 | 34 |
| 0 | 5+ |
Типичные: ошибки в управлении и согласовании, неправильное образование форм слова,
нарушение синтаксических норм.
### К10 — Речевые нормы (03 балла)
| Баллов | Ошибок |
|--------|--------|
| 3 | 0 |
| 2 | 12 |
| 1 | 34 |
| 0 | 5+ |
Типичные: тавтология, плеоназм, неуместное/несвойственное употребление слова.
---
## Итоговая таблица (ЕГЭ 2026)
| К1 | К2 | К3 | К4 | К5 | К6 | К7 | К8 | К9 | К10 | Итого |
|----|----|----|----|----|----|----|----|----|-----|-------|
| 1 | 3 | 2 | 1 | 2 | 1 | 3 | 3 | 3 | 3 | 22 |
Изменения 2026 vs 2025:
- К2: максимум снижен с 6 до 3 баллов
- К3: максимум увеличен с 1 до 2 баллов
- К9, К10: максимум увеличен с 2 до 3 баллов каждый
- К11 (этика) и К12 (фактика) упразднены, включены в К5 и К6
- Итоговый максимум: 22 балла (было 25)

1
ege-skill Submodule

@ -0,0 +1 @@
Subproject commit 55b4f4360a82e8422aa7def6c6b744719fecd61f

View file

@ -1,2 +1,3 @@
faster-whisper==1.2.1 python-dotenv>=1.0.1
torch==2.11.0 toml>=0.10.2
requests>=2.31.0

28
setup_config.py Normal file
View file

@ -0,0 +1,28 @@
import os
from pathlib import Path
from dotenv import load_dotenv
load_dotenv()
template_path = Path("config.template.toml")
if not template_path.exists():
print(" Файл config.template.toml не найден!")
exit(1)
template = template_path.read_text()
api_key = os.getenv("ZEROCLAW_API_KEY")
tg_token = os.getenv("TELEGRAM_BOT_TOKEN")
if not api_key or not tg_token:
print(" Ошибка: Ключи не найдены в .env файле!")
print(f"API_KEY: {'OK' if api_key else 'MISSING'}")
print(f"TG_TOKEN: {'OK' if tg_token else 'MISSING'}")
exit(1)
config_ready = template.replace("API_KEY_PLACEHOLDER", api_key)
config_ready = config_ready.replace("TELEGRAM_TOKEN_PLACEHOLDER", tg_token)
Path("config.toml").write_text(config_ready)
print("config.toml готов! Ключи подставлены.")

119
skills/ege-checker/SKILL.md Normal file
View file

@ -0,0 +1,119 @@
---
name: ege-checker
description: >
Проверка заданий ЕГЭ с выставлением баллов по официальным критериям ФИПИ.
Используй этот скилл когда пользователь:
- Загружает фото/скан рукописного сочинения ЕГЭ по русскому языку
- Просит проверить сочинение ЕГЭ, выставить баллы, оценить работу
- Загружает аудиозапись или текст ответов по разделу "Аудирование" ЕГЭ по английскому
- Упоминает "ЕГЭ", "сочинение", "критерии К1-К10", "аудирование английский"
- Просит разобрать ошибки в сочинении по критериям ФИПИ
Скилл умеет: OCR рукописного текста через vision, оценку по критериям, подробные комментарии.
---
# ЕГЭ-Checker
## Обзор возможностей
| Модуль | Статус | Вход | Выход |
|--------|--------|------|-------|
| Сочинение (русский) | ✅ MVP | Фото рукописи или текст | Баллы К1К10 + комментарии |
| Аудирование (английский) | 🔜 в разработке | Аудиофайл + бланк ответов | Баллы по заданиям |
---
## Модуль 1: Сочинение ЕГЭ по русскому языку
### Шаг 1 — Получить текст сочинения
**Если загружено фото/скан:**
1. Внимательно рассмотри изображение
2. Распознай рукописный текст максимально точно
3. Выведи распознанный текст пользователю и попроси подтвердить: *"Вот что я распознал. Если есть неточности — поправьте перед проверкой."*
4. Дождись подтверждения или правок
**Если текст вставлен напрямую:**
Переходи к Шагу 2 без распознавания.
### Шаг 2 — Загрузить критерии
Прочитай файл `references/russian-essay-criteria.md` — там полные критерии К1К10 с баллами и примерами.
### Шаг 3 — Оценить по каждому критерию
Пройдись по всем критериям К1К10 **последовательно**. Для каждого:
- Процитируй конкретный фрагмент из сочинения (если уместно)
- Объясни своё решение
- Выставь балл
**Важные правила:**
- Если К1 = 0 (нет формулировки проблемы) → К2, К3, К4 автоматически = 0
- Если работа ≤ 70 слов → все баллы = 0, только К10 может быть ненулевым
- Считай слова перед проверкой (служебные части речи считаются)
### Шаг 4 — Итоговый вывод
Используй этот формат вывода:
```
## Результаты проверки сочинения ЕГЭ
### Распознанный текст
[текст если было фото, иначе пропусти]
### Количество слов: 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]**
[объяснение с цитатами из текста]
... и так далее по каждому критерию ...
---
### Главные рекомендации
1. [самое важное для улучшения]
2. ...
```
---
## Модуль 2: Аудирование ЕГЭ по английскому (в разработке)
Этот модуль требует STT (Speech-to-Text) для обработки аудио.
Пока недоступен. При запросе — сообщи пользователю и предложи ввести ответы текстом вручную.
Когда будет реализован: читай `references/english-listening-criteria.md`
---
## Общие принципы проверки
- **Актуальность**: Критерии соответствуют демоверсии ФИПИ 20242025
- **Строгость**: Придерживайся формулировок критериев, не занижай и не завышай
- **Пограничные случаи**: При сомнении между баллами — объясни оба варианта и выбери более обоснованный
- **Тон**: Конструктивный, поддерживающий. Это учебный инструмент, не карательный

Binary file not shown.

View file

@ -0,0 +1,2 @@
ZEROCLAW_API_KEY=
TELEGRAM_BOT_TOKEN=

View file

@ -0,0 +1,30 @@
# Критерии оценивания раздела "Аудирование" ЕГЭ по английскому языку
## Статус: заглушка — будет заполнено в следующей итерации
### Структура раздела (ЕГЭ 20242025)
**Задание 1** (B1) — установление соответствия: 6 высказываний → 7 утверждений
- 1 балл за каждое верное соответствие
- Максимум: 6 баллов
**Задания 29** (B2) — верно/неверно/не сказано (True/False/Not Stated)
- 1 балл за каждый верный ответ
- Максимум: 8 баллов
**Задания 1018** — краткий ответ/выбор из нескольких вариантов
- 1 балл за каждый верный ответ
- Максимум: 9 баллов
**Итого по разделу "Аудирование": 20 первичных баллов**
---
## STT интеграция (планируется)
Для обработки аудиозаписей потребуется:
- OpenAI Whisper API (рекомендуется для русской и английской речи)
- Или Deepgram (альтернатива)
- Эндпоинт: `https://api.openai.com/v1/audio/transcriptions`
- Модель: `whisper-1`
Временное решение для MVP: попросить пользователя ввести ответы текстом.

View file

@ -0,0 +1,171 @@
# Критерии оценивания сочинения ЕГЭ по русскому языку
## Источник: ФИПИ, демоверсия 2026
---
## Предварительные проверки
### Подсчёт слов
- Считаются все слова, включая служебные (предлоги, союзы, частицы)
- Рекомендуемый объём: **150300 слов**
1. **Минимальный порог**: Если в сочинении **149 слов или менее** — работа оценивается **0 баллов** по всем критериям (К1К10). Задание считается невыполненым.
2. **Метод подсчета**:
- Считаются самостоятельные и служебные части речи.
- Слова через дефис (всё-таки, по-моему) = **1 слово**.
- Инициалы с фамилией (А.С. Пушкин) = **1 слово**.
- Цифры (5 лет, 2026 год) = **не учитываются**. Числительные словами (пять лет) = **считаются**.
- Информация об авторе текста (биография из задания) = **не учитывается**.
3. **Самостоятельность**: Если текст — это просто пересказ или переписанный исходник без комментариев — **0 баллов**.
### Правило нулевого К1
Если К1 = 0 (проблема не сформулирована или сформулирована неверно):
К2 = 0, К3 = 0, К4 = 0 **автоматически**
---
## К1 — Формулировка проблем исходного текста (01 балл)(Отражение позицииавтора (рассказчика) по указанной проблеме исходного текста)
**1 балл**: Позиция автора (рассказчика) по указанной проблеме исходного текста сформулирована верно
**0 баллов**: Позиция автора (рассказчика) по указанной проблеме исходного текста не сформулирована или сформулирована неверно.
**Подсказки для проверки:**
- Проблема должна быть сформулирована как вопрос или тезис
- Она должна соответствовать содержанию исходного текста
- Допустимы разные формулировки одной и той же проблемы
---
## К2 — Комментарий к сформулированной проблеме исходного текста (03 балла)
Структура: **2 примера-иллюстрации** из текста + **смысловая связь** между ними.
- **3б**: Приведено 2 примера-иллюстрации + пояснение к КАЖДОМУ + указана и ПОЯСНЕНА смысловая связь.
- **2б**: 2 примера + 2 пояснения, но связь не указана / не пояснена / пояснена неверно.
- **1б**: Приведен и пояснен только 1 пример.
- **0б**: Пересказ, цитирование без комментария или отсутствие опоры на текст.
**Важно:**
- Пример-иллюстрация = конкретный фрагмент/факт из текста с объяснением его роли
- Смысловая связь: сравнение, противопоставление, причина-следствие, вывод и т.д.
- Пересказ без анализа = 0 баллов
- Фактические ошибки в комментарии снижают балл (1 за каждую, но не более 2)
---
## К3 — Собственное отношение к позиции автора (рассказчика) по указанной проблеме исходного текста (02 балла)
- **2б**: Отношение сформулировано, обосновано и ПРИВЕДЕН пример-аргумент.
- **1б**: Отношение сформулировано и обосновано, но БЕЗ примера-аргумента.
- **0б**: Только формальное "Я согласен".
- **ЗАПРЕТ на источники**: Комиксы, аниме, манга, фанфики, граф. романы, компьютерные игры — **не засчитываются** как аргумент. Только жизненный, читательский или историко-культурный опыт.
**Подсказки:**
- Источником для примера-аргумента служит читательский, историко-культурный или жизненный опыт.
---
## К4 — Фактическая точность речи(0-1 балл)
- **1б**: Ошибок нет.
- **0б**: 1 и более ошибок.
**Фактические ошибки:**
- Неверные имена, даты, названия произведений
- Искажение содержания упомянутых текстов
- Неверные факты о реальных событиях/людях
---
### К5 — Логичность речи (02 балла)
- **2б**: Ошибок нет.
- **1б**: 1-2 ошибки.
- **0б**: 3+ ошибки.
---
### К6 — Этические нормы (01 балл)
- **1б**: Ошибок нет.
- **0б**: Нарушение норм, агрессия, нецензурная брань.
**Этические ошибки:**
- Грубость, оскорбления в адрес кого-либо
- Национальная/религиозная нетерпимость
- Речевая агрессия
---
## К7 — Соблюдение орфографических норм (03 балла)
| Баллы | Количество ошибок |
|-------|-------------------|
| 3 | 0 ошибок |
| 2 | 1-2 ошибка |
| 1 | 3-4 ошибки |
| 0 | 5+ ошибки |
**Что считается ошибкой:**
- Неверное написание слова
- Слитное/раздельное/дефисное написание
- Прописные/строчные буквы
**Что НЕ считается ошибкой:**
- Описки (если исправлены)
- Перенос слова
---
## К8 — Соблюдение пунктуационных норм (03 балла)
| Баллы | Количество ошибок |
|-------|-------------------|
| 3 | 0 ошибок |
| 2 | 12 ошибки |
| 1 | 34 ошибки |
| 0 | 5+ ошибок |
**Типичные ошибки:**
- Пропуск запятой при однородных членах
- Ошибки в сложных предложениях
- Неверное оформление прямой речи
---
## К9 — Соблюдение языковых норм (грамматика) (03 балла)
| Баллы | Количество ошибок |
|-------|-------------------|
| 3 | 0 ошибок |
| 2 | 1-2 ошибок |
| 1 | 3-4 ошибки |
| 0 | 5+ ошибки |
**Типичные грамматические ошибки:**
- Ошибки в согласовании (управлении)
- Неправильное образование форм слова
- Нарушение синтаксических норм
---
## К10 — Соблюдение речевых норм (03 балла)
| Баллы | Количество ошибок |
|-------|-------------------|
| 3 | 0 ошибок |
| 2 | 1-2 ошибок |
| 1 | 3-4 ошибки |
| 0 | 5+ ошибки |
**Типичные речевые ошибки:**
- Тавтология (повтор одного слова/однокоренных слов)
- Плеоназм (масло масляное)
- Неуместное употребление слова
- Употребление слова в несвойственном значении
---
## Таблица максимальных баллов
| К1 | К2 | К3 | К4 | К5 | К6 | К7 | К8 | К9 | К10 | Итого |
|----|----|----|----|----|----|----|----|----|-----|-------|
| 1 | 3 | 2 | 1 | 2 | 1 | 3 | 3 | 3 | 3 | **22**|

View file

@ -1,134 +0,0 @@
#!/usr/bin/env python3
import subprocess
import json
import os
import sys
from pathlib import Path
def transcribe_file(
file_path: Path, script_path: Path, timeout_seconds: int = 60
) -> str:
"""
Вызывает recognition.py для одного файла, возвращает транскрипцию.
"""
cmd = ["python3", str(script_path), str(file_path)]
try:
result = subprocess.run(
cmd,
capture_output=True,
text=True,
check=True,
encoding="utf-8",
timeout=timeout_seconds,
)
# Предполагаем, что скрипт выводит транскрипцию в stdout
transcript = result.stdout.strip()
if not transcript:
print(f"Предупреждение: пустая транскрипция для {file_path}")
return transcript
except subprocess.TimeoutExpired:
error_msg = f"TIMEOUT: превышен лимит в {timeout_seconds} секунд"
print(f"Ошибка: {error_msg} для {file_path}")
return f"ERROR: {error_msg}"
except subprocess.CalledProcessError as e:
print(f"Ошибка при обработке {file_path}: {e}")
print(f"stderr: {e.stderr}")
return f"ERROR: {e.stderr}"
def main():
# Пути
base_dir = Path(
r"/mnt/c/proga/projects/ege-skill-dev/.scans/Сложные работы_Английский язык УЧ часть 1/"
)
regions = ["2-Республика Башкортостан", "3-Республика Бурятия"]
recognizer_script = Path.home() / ".zeroclaw" / "workspace" / "skills" / "ege-checker" / "recognition.py"
# Таймаут на транскрипцию одного файла (в секундах)
TIMEOUT_PER_FILE = 120
# Проверки
if not base_dir.exists():
print(f"Ошибка: директория {base_dir} не найдена")
sys.exit(1)
if not recognizer_script.exists():
print(f"Ошибка: скрипт {recognizer_script} не найден")
sys.exit(1)
# Собираем все .ogg файлы, кроме тех, где озвузичвается код участника
ogg_files = []
for region in regions:
ogg_files.extend(
[
file
for i, file in enumerate(list(Path(f"{base_dir}/{region}/").rglob("*.ogg")))
if i % 5 != 0
]
)
print(f"Найдено {len(ogg_files)} .ogg файлов")
results = []
for idx, ogg_path in enumerate(ogg_files, 1):
print(f"\n[{idx}/{len(ogg_files)}] Обработка: {ogg_path}")
# Структура: .../{region}/{fio}/{file}
region = ogg_path.parent.parent.name
fio = ogg_path.parent.name
print(f" Регион: {region}")
print(f" ФИО: {fio}")
print(
f" Транскрибирование (таймаут: {TIMEOUT_PER_FILE} сек)...",
end=" ",
flush=True,
)
transcript = transcribe_file(ogg_path, recognizer_script, TIMEOUT_PER_FILE)
print("готово")
# Показываем первые 100 символов транскрипции, если она есть
preview = transcript[:100].replace("\n", " ")
if preview and not transcript.startswith("ERROR:"):
print(f" Транскрипция (начало): {preview}...")
elif transcript.startswith("ERROR:"):
print(f" {transcript}")
results.append(
{
"region": region,
"fio": fio,
"transcript": transcript
}
)
# Сохраняем JSON
output_file = Path.cwd() / "tests" / "transcriptions.json"
if Path.exists(output_file):
with open(output_file, "r", encoding="utf-8") as f:
results_to_file: list = json.load(f)
results_to_file.extend(results)
else:
results_to_file = results
with open(output_file, "w", encoding="utf-8") as f:
json.dump(results_to_file, f, ensure_ascii=False, indent=2)
# Статистика
total_files = len(results)
error_files = sum(1 for r in results if r["transcript"].startswith("ERROR:"))
timeout_files = sum(1 for r in results if "TIMEOUT" in r["transcript"])
success_files = total_files - error_files
print(f"\n✅ Готово! Результаты сохранены в {output_file}")
print(f"Всего обработано файлов: {total_files}")
print(f" - Успешно: {success_files}")
print(f" - Ошибок: {error_files} (из них timeout: {timeout_files})")
if __name__ == "__main__":
main()

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 903 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 930 KiB

View file

@ -1,28 +0,0 @@
## Отчет по результатам оценки заданий (на основе transcriptions.json)
| Регион | Фамилия | Задание 1 (True/Pred) | Задание 2 (True/Pred) | Задание 3 (True/Pred) | Задание 4 (True/Pred) | Общий True | Общий Pred |
| :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
| 1-Республика Адыгея | Кузьминова | 1 / 0 | 2 / 4 | 3 / 0 | 5 / 7 | **11** | **11** |
| 1-Республика Адыгея | Штельмах | 1 / 1 | 1 / 0 | 2 / 2 | 2 / 9 | **6** | **12** |
| 4-Республика Алтай | Борбуева | 1 / 0 | 3 / 3 | 1 / 3 | 6 / 8 | **11** | **14** |
| 4-Республика Алтай | Гаршина | 0 / 0 | 2 / 2 | 0 / 0 | 5 / 9 | **7** | **11** |
| 2-Республика Башкортостан | Авсахова | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 2 | **0** | **2** |
| 2-Республика Башкортостан | Иркабаев | 1 / 1 | 4 / 4 | 4 / 4 | 5 / 9 | **14** | **18** |
| 2-Республика Башкортостан | Панова | 1 / 0 | 2 / 1 | 1 / 0 | 7 / 6 | **11** | **7** |
| 2-Республика Башкортостан | Пешкова | 1 / 1 | 4 / 4 | 2 / 5 | 10 / 9 | **17** | **19** |
| 2-Республика Башкортостан | Шафикова | 1 / 1 | 3 / 3 | 0 / 2 | 7 / 9 | **11** | **15** |
| 2-Республика Башкортостан | Яппаров | 1 / 0 | 2 / 2 | 2 / 0 | 6 / 6 | **11** | **8** |
| 3-Республика Бурятия | Алексеев | 0 / 0 | 3 / 0 | 0 / 0 | 6 / 3 | **9** | **3** |
| 3-Республика Бурятия | Очиров | 1 / 0 | 1 / 2 | 3 / 0 | 7 / 6 | **12** | **8** |
| 3-Республика Бурятия | Ошорова | 1 / 1 | 3 / 3 | 5 / 0 | 9 / 9 | **18** | **13** |
| 3-Республика Бурятия | Чимбеева | 1 / 0 | 4 / 4 | 3 / 3 | 7 / 6 | **15** | **13** |
---
### Общая статистика
| Метрика | Task 1 | Task 2 | Task 3 | Task 4 |
| :--- | :---: | :---: | :---: | :---: |
| **Avg True** | 0.786 | 2.429 | 1.857 | 5.857 |
| **Avg Pred** | 0.357 | 2.286 | 1.357 | 7.000 |
| **MAE** | 0.429 | 0.143 | 0.500 | 1.143 |

View file

@ -1,38 +0,0 @@
import json
from collections import defaultdict
TRANSCRIPTIONS = "transcriptions.json"
def get_stats():
stats = defaultdict(dict)
with open(TRANSCRIPTIONS, "r") as f:
data = json.load(f)
for i, elem in enumerate(data):
task_num = i % 4 + 1
obj = stats[f"Task {task_num}"]
if 'Sum True' in obj:
obj['Sum True'] += elem['score_true']
obj['Sum Pred'] += elem['score_pred']
obj['Count'] += 1
else:
obj['Sum True'] = elem['score_true']
obj['Sum Pred'] = elem['score_pred']
obj['Count'] = 1
for key, obj in stats.items():
stats[key]['Average True'] = stats[key]['Sum True'] / stats[key]['Count']
stats[key]['Average Pred'] = stats[key]['Sum Pred'] / stats[key]['Count']
stats[key]['MAE'] = abs(stats[key]['Average True'] - stats[key]['Average Pred'])
return stats
def main():
stats = get_stats()
print(f"Статистика:")
for name, obj in stats.items():
print(name)
print(f'Avg True / Avg Pred / MAE = {obj['Average True']:.3f} / {obj['Average Pred']:.3f} / {obj['MAE']:.3f}')
if __name__ == '__main__':
main()

View file

@ -1,394 +0,0 @@
[
{
"region": "1-Республика Адыгея",
"fio": "Кузьминова_7921829566",
"transcript": "It usually snows more in countries that are in the North. For instance, Japan, Russia or some parts of the USA may have hard snowfalls. Mountains are also the places which have a lot of snow. This is especially true for such countries as China. At the same time, there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come here. It's not every place in the world has snowfalls. People from hard countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it's wonderful to have a lot of snow, but it's not always the case. A heavy snowfall can paralyze the life of a city or a country. If snows is rare in a certain location, people there are not used to it and find it hard to commute or even go outside.",
"score_true": 1,
"score_pred": 0
},
{
"region": "1-Республика Адыгея",
"fio": "Кузьминова_7921829566",
"transcript": "How much variety of jobs do you have? What is the minimum age for a part-time job? What is required number of hours per week? What is the pay per hour?",
"score_true": 2,
"score_pred": 4
},
{
"region": "1-Республика Адыгея",
"fio": "Кузьминова_7921829566",
"transcript": "Usually I spend my weekend with my family and my friends. We are going to the parks or rivers and lakes or forests to walk with them. If it is among my friends, it's walking in the parks and going to the stadium. I think it's really interesting spending free time for my coming weekend. Me, my brother and our friends will go to the river and go to swim then. When the weekend is over, I feel sad because my weekend is really funny and I feel happy when I have a weekend. I would like to spend more time outside with my friends.",
"score_true": 3,
"score_pred": 0
},
{
"region": "1-Республика Адыгея",
"fio": "Кузьминова_7921829566",
"transcript": "Hi there! I have found two photos for our school project on doing homework. I'd like to tell you about them. In the first picture one can see a girl. She is doing homework. There are a girl with her mom that is doing homework together in the second picture. Talking about the differences, the key difference is in the first picture girl doing homework alone, while in the second picture girl doing homework with her parents. I think these photos are perfect for our project because they illustrate different kinds of doing homework. I believe that the two types of doing homework have their advantages and disadvantages. As for the advantages, doing homework alone can help you for better concentration. What about doing homework with somebody you can't do it. We'll discuss about the disadvantages. As for doing homework alone, I can say that these disadvantages are the risk of getting worth your attention and doing incorrect answers. One downside of doing homework together is that you can have a fear of taking incorrect answers. Overall, any kind of doing homework is beneficial for our education. I'd prefer doing homework alone because that way I have a lot of concentration of my job. That's all I wanted to tell you. Bye!",
"score_true": 5,
"score_pred": 7
},
{
"region": "1-Республика Адыгея",
"fio": "Штельмах_7924913136",
"transcript": "It usually snows more in countries that are in the north. For instance Japan, Russia or some parts of the USA may have large snowfalls. Mountains are also the place which have a lot of snow. It is especially true for such countries as China. At the same time there are tropical countries which hardly see any snow. For some countries snow is one of the main reasons why tourists come there. It is not every place in the world has snowfalls. People from hot countries come to snow-covered places in order to live the experience of seeing, touching and feeling this natural phenomenon. You may think it is wonderful to have a lot of snow, but it is not always the case. Heavy snow can paralyze the life of a city or a country. If snow is rare in a certain location, people are not used to it and find it hard to commute or even go outside.",
"score_true": 1,
"score_pred": 1
},
{
"region": "1-Республика Адыгея",
"fio": "Штельмах_7924913136",
"transcript": "What variety of jobs you have to start there, working, pay as much as you pay per hour.",
"score_true": 1,
"score_pred": 0
},
{
"region": "1-Республика Адыгея",
"fio": "Штельмах_7924913136",
"transcript": "I usually spend my weekend with my friends. We usually go to the cinema or play computer games. It's sport. I like to do some exercise in the gym. My plans at the weekend is go to trip to the mountain. We have planned this with my friends. I feel so bad because when it's over, I feel so bad. But sometimes I feel good because I can go to the school. I like to change my daily routine. I want to do more homework. It's important for me.",
"score_true": 2,
"score_pred": 2
},
{
"region": "1-Республика Адыгея",
"fio": "Штельмах_7924913136",
"transcript": "Hi Peter, I have found two photos for our school project doing homework and I would like to tell you about them. Let me describe them for you. One picture depicts a girl doing homework, in the other picture girl doing her homework with mom. However, these photos have some differences. The key difference is that the first picture shows girl doing her homework alone, while in the other picture girl doing her homework with mom. The picture is perfectly suited our project because both of them illustrate doing homework theme of our project. I believe that both photos have advantages and disadvantages. Talking about advantages of the first photo is she can improve her cognitive skills when she is doing her homework alone. Also the best thing in the second picture is mom can help her with her homework. As for disadvantages of the first picture, it would be hard for her. There is a major drawback of the second picture, she cannot upgrade her cognitive skills. Personally, I would prefer the first version of doing homework alone because it's better for my cognitive skills. That's all for now, that's all for now. I'll be waiting for your opinion on the photos.",
"score_true": 2,
"score_pred": 9
},
{
"region": "4-Республика Алтай",
"fio": орбуева_8420415899",
"transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy day, rainy weather. It makes the air fresh and clean.",
"score_true": 1,
"score_pred": 0
},
{
"region": "4-Республика Алтай",
"fio": орбуева_8420415899",
"transcript": "Where is ordering flowers located? What is the cost of the flowers delivery? Do you have any special occasion decorations in your flower shop? Do you have other potted flowers in your flower shop?",
"score_true": 3,
"score_pred": 3
},
{
"region": "4-Республика Алтай",
"fio": орбуева_8420415899",
"transcript": "In my daily life I use a mobile phone and my tablet. I use them because these gadgets are very comfortable for using in the daily life. Digital technologies make our lives easier in many ways. For example, people can call their family members whatever they want and whenever they are located at the moment and also we can order something online using our gadgets. The best invention of mankind is a mobile phone because this is a very useful gadget. The other gadgets. I think this is the most useful gadget. There is a lot of Russian inventors in my country, but one of them is Zaitsev. He invented the radio. I do not think that I can live without a mobile phone for a month because the mobile phone is a very important part of my life because I can call my family and my friends. I do learn with a mobile phone, so I do not think that I can live without a mobile phone for a month.",
"score_true": 1,
"score_pred": 3
},
{
"region": "4-Республика Алтай",
"fio": орбуева_8420415899",
"transcript": "Hi friend, how are you? I have some photos for our project, the games people like, and I would like to say a few words about them. I think these two types of photos are perfect for our project, as they illustrate two different types of the games people like. The first picture shows a girl playing video games, and the other picture shows two people playing table games. Talking about differences, the key difference is that in the first picture there is a girl and she is alone, and in the second picture there is a mother and daughter, and another difference is that in the first picture there is a girl and she is sitting on the chair, and in the other picture there is a mother and daughter sitting on the sofa. I believe that these two types of the games people like have their advantages and disadvantages. Talking about disadvantages, the disadvantage of video games is that the risk of eye injury, and the disadvantage of the table games is that there is not a lot of functions in the games. Talking about advantages, the advantage of the video games is that usually video games are very colorful and interesting, and the advantage of the table games is that it develops your brain. I think playing any games is beneficial for our mental health. I would prefer table games because I like to play with people in the real life, but that's all for me now. Please get in touch with me and tell me what do you think about these photos.",
"score_true": 6,
"score_pred": 8
},
{
"region": "4-Республика Алтай",
"fio": аршина_8421427187",
"transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and throws the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rain dairy whatever. Well, it makes the air fresh and clean.",
"score_true": 0,
"score_pred": 0
},
{
"region": "4-Республика Алтай",
"fio": аршина_8421427187",
"transcript": "Where your flowers shop is located? What is cost of delivery? What is cost of delivery? Do you have any special occasion decorations? Are there any potted flowers?",
"score_true": 2,
"score_pred": 2
},
{
"region": "4-Республика Алтай",
"fio": аршина_8421427187",
"transcript": "Well, I mostly use such gadgets as my phone and a computer, because I very like video games and watching videos. So I think that I really enjoy... Well, I think that new technologies make our life more easy, because, for example, you can use your phone. For that, you can call your relatives or friends. Also, you can make new videos and photos. Well, I think that the best invention is logic, which you can find in different shops and use for your life. Well, I think that the most used invention are phones and computers, because people use these engines very mostly. Well, I think that I can find mobile phone very used, because, as I said, people might use phone such as camera and go making videos and photos.",
"score_true": 0,
"score_pred": 0
},
{
"region": "4-Республика Алтай",
"fio": аршина_8421427187",
"transcript": "Hi Eileen, I'm calling you about some photos which I have found for our project, the games people like. So let me tell you about them. The first picture is suitable for our project because it shows video game. The second photo also works because it shows chess. So we can see two different ways that people can use for games. In the first picture I see a girl who is playing a video game on her computer. In the second photo I see a woman, a girl, who is playing chess. The key difference is that in the first picture a girl and the second picture are two players. Well, I can see some advantages and disadvantages of these two types of games. The advantage of video games is that you can play with people from all over the world. The advantage of playing chess is that you can play with your relatives and friends. However, the drawback of playing computer is that it can be harmful for your eyes. The drawback of playing chess is that it can be boring. As for me, I prefer video games because I really like it and I like when I can find different worlds and characters in games. That's all I wanted to say about these pictures. Call me back and tell your opinion. Bye.",
"score_true": 5,
"score_pred": 9
},
{
"region": "2-Республика Башкортостан",
"fio": "Авсахова_8020280717",
"transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It retains as clouds in the sky and falls over through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the sea streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals their water they need to drink. Finally, people love rainy water. It makes the air fresh and clean.",
"score_true": 0,
"score_pred": 0
},
{
"region": "2-Республика Башкортостан",
"fio": "Авсахова_8020280717",
"transcript": "Where is location? What cost of delivery? Where special location decorations? Where is the potted flowers?",
"score_true": 0,
"score_pred": 0
},
{
"region": "2-Республика Башкортостан",
"fio": "Авсахова_8020280717",
"transcript": "In my daily life I use my mobile phone and television because I chat with my friends and call my mom. The digital technology that made my life easier is my telephone because I chat with my friends, no more information. The best pictures on MedKindness is television. In my opinion, the famous Russian list is Mikhail Vasilyevich Lomonosov, the Russian scientist who knows a scientist like math and he is so curious. I think I don't see my life without my mobile phone because it keeps more information for me and I chat with my friends and call my mom. It improves my life and I don't see the life without it.",
"score_true": 0,
"score_pred": 0
},
{
"region": "2-Республика Башкортостан",
"fio": "Авсахова_8020280717",
"transcript": "Hi Kate, I have our project for you in two pictures we have seen. In the first pictures we see girls who play the computer games and she liked it because the computer game have a brain side and improve your brain explanation. In the second photo we have seen girls and her mom who play the chess in disadvantages. However, I can say advantages or disadvantages. In advantages first picture we can see that girl playing and improve your skills in computer game. In two pictures we have seen the brain hard game but disadvantages our pictures in the first pictures girls save more time for that and she will be angry about that your game is disappointed and two disadvantages what the most time kills because she save them. I prefer picture number one because the girl I love computer game and what about them. I wait your opinion.",
"score_true": 0,
"score_pred": 2
},
{
"region": "2-Республика Башкортостан",
"fio": ркабаев_8021293748",
"transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.",
"score_true": 1,
"score_pred": 1
},
{
"region": "2-Республика Башкортостан",
"fio": ркабаев_8021293748",
"transcript": "Where is your flower shop located? What is the cost of delivery? Are there any special occasion decorations? Are potted flowers available?",
"score_true": 4,
"score_pred": 4
},
{
"region": "2-Республика Башкортостан",
"fio": ркабаев_8021293748",
"transcript": "In my daily life I usually use such gadgets as smartphone, TV and personal computer. Modern technologies makes our life easier in that way that you don't need to go to the library to read some necessary information. It's more convenient now to go shopping or surfing the net than before. Well, I think the best invention of mankind is Internet because it allows us to do basically everything. You basically can't imagine our everyday life without Internet, without the Internet. Well, there is famous Russian inventor of a radio, his name is Popov. He invented radio before anyone else, as far as I know. Well, I think I could live without smartphone for a month because it's not that hard to avoid all these benefits that smartphone brings. But I have to admit it would be quite difficult.",
"score_true": 4,
"score_pred": 4
},
{
"region": "2-Республика Башкортостан",
"fio": ркабаев_8021293748",
"transcript": "Hi, John, how are you? I've just found two pictures that are suitable for our school project, the games people like. Let me quickly describe them. One of the pictures shows a girl playing computer games. The other picture shows a mother with her daughter playing chess mate. The main difference between these two photos is that it's two different types of games. As for the advantages of playing computer games, I would like to say that it develops quick reaction. Also, it develops your social skills because you have to communicate with your teammates in the game. As for the advantages of checkmates, I would like to say that it develops your logical thinking. Moreover, it allows you to analyze, it teaches you to analyze situations and make right decisions very fast. As for disadvantages, however, there are also disadvantages. Computer gaming actually makes your eyesight, makes your mental health worse. Also, it's bad for your eyesight. Checkmates also has some withdrawals such as badly influence your physical condition. Your posture can get worse and you feel worse about your physical condition. Personally, I would prefer computer gaming because I'm keen on games and other stuff because I like to play games with my friends. That's all for now. Keep in touch. Bye-bye.",
"score_true": 5,
"score_pred": 9
},
{
"region": "2-Республика Башкортостан",
"fio": анова_8021392635",
"transcript": "Rain is an important part of the water cycle which never stops in our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams. Rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.",
"score_true": 1,
"score_pred": 0
},
{
"region": "2-Республика Башкортостан",
"fio": анова_8021392635",
"transcript": "What is the location of the flower store? Stop delivering. We have special occasion for decorations. Have any potted flowers?",
"score_true": 2,
"score_pred": 1
},
{
"region": "2-Республика Башкортостан",
"fio": анова_8021392635",
"transcript": "In my daily life, I use phone. Also, I usually use TV. People teaching online. Also, they can know stuff. Mindy Leyev creates a to-live without mobile phone for a month. That's all because Surf the Net habit. Surf the Net. Surf the Net.",
"score_true": 1,
"score_pred": 0
},
{
"region": "2-Республика Башкортостан",
"fio": анова_8021392635",
"transcript": "Hi guys, I found two photos for our project, the games people like, and I'd like to tell you about them. Let me describe them for you. On picture shows a girl who is playing on the computer. In the other picture there are mom and there is a woman with father who are playing in the chess. However, these photos have some differences. The key difference is that the first photo depicts the video games, while in the second photo there is intellect board games. These pictures perfectly suit our project because both of them illustrate types of games. I believe that both types of games present in the pictures their advantages and disadvantages. Talking about the advantages, the best thing about video games is that it's more funny. At the same time board games are great because they develop your thinking. As for the disadvantages of video games, one of them is that it's more expensive. Also there is a major drawback with games that can be boring. I would prefer video games because that's all for now. I'll be waiting for your opinion on the photos.",
"score_true": 7,
"score_pred": 6
},
{
"region": "2-Республика Башкортостан",
"fio": ешкова_8021424674",
"transcript": "Rain is an important part of the water cycle, which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the Earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the Earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.",
"score_true": 1,
"score_pred": 1
},
{
"region": "2-Республика Башкортостан",
"fio": ешкова_8021424674",
"transcript": "What is the location of your flowers shop? What is the cost of delivery? Do you provide any special occasion decorations for flowers? What potted flowers do you have?",
"score_true": 4,
"score_pred": 4
},
{
"region": "2-Республика Башкортостан",
"fio": ешкова_8021424674",
"transcript": "Personally, in my daily life, I use phone, notebook and computer. Also, I use headphones and I find it very useful. I think digital technologies make our life easier in so many ways. For example, we can find whatever we want in any time just using the Internet. Personally, I think that the best invention of the kind thing is our headphones. They help to listen to music at any time and not bother anyone with your own music. I know famous Russian inventor Lomonosov. He made a huge impact on the science of the whole world. He invented telescope. Unfortunately, I would say that I would not be able to live without mobile phone for a month. I think that because I need to listen to music every day and mobile phone gives me an ability to do it.",
"score_true": 2,
"score_pred": 5
},
{
"region": "2-Республика Башкортостан",
"fio": ешкова_8021424674",
"transcript": "Hey Kate, I've just found two pictures relatable for our project The Games People Like, but for some technical issues I can't send them to you right now. So let me describe them. Both pictures are representing types of games. One picture shows a girl playing her computer playing in computer with her headphones on. The other picture shows two women playing chess. The main difference between these pictures is that one picture shows digital type of games and the other picture shows old-fashioned type of games. Both types of games have their advantages. For example, digital games are popular among teenagers and there you can find new friends. As for the old-fashioned games, they make our minds stronger. Meanwhile, both types of games have disadvantages too. For example, digital games can be uncontrolled, especially among children, and you can have an addiction from them. As for the old-fashioned games, for some people they can be boring, especially for children. As for me, I prefer old-fashioned games because they remind me of my childhood. So what do you think about these pictures? Should we take them? Tell me later. Bye-bye!",
"score_true": 10,
"score_pred": 9
},
{
"region": "2-Республика Башкортостан",
"fio": афикова_8020277747",
"transcript": "Rain is an important part of the water cycle which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over through the land. Actually, this is one of the reasons why the Earth is cold in winter and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the Earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures and the water in the streams, rivers and lakes is home to freshwater fish and other water animals. Secondly, rain provides the water trees and other plants need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.",
"score_true": 1,
"score_pred": 1
},
{
"region": "2-Республика Башкортостан",
"fio": афикова_8020277747",
"transcript": "Where is your flower shop located? How much does the delivery cost? Do you offer any special occasion decorations? What is the flower pot?",
"score_true": 3,
"score_pred": 3
},
{
"region": "2-Республика Башкортостан",
"fio": афикова_8020277747",
"transcript": "I use smartphone and laptop every day. I think that these gadgets are very important for people because these digital gadgets make life easier. In my opinion, Internet is the largest source of information. That's why people can find a lot of information very fast and easy. Besides, I think that with smartphone communicate with relatives and friends very easy. I think that the best inventions of mankind is car because car makes our life easier than in the past. I think that because cars can help people to go to other places very fast and in convenient conditions. I think that Pavel Durov is the famous Russian inventor. Pavel Durov is the founder of Telegram and other messaging platforms. I think that Pavel Durov really makes our life easier because he is a great man. I think I will not live without smartphone for a month. I think that because smartphone is very useful thing for me. I use my smartphone a lot of days, a lot of hours. I use them to chatting with my friends and relatives and to find information. That's why I think that smartphone is very important for me.",
"score_true": 0,
"score_pred": 2
},
{
"region": "2-Республика Башкортостан",
"fio": афикова_8020277747",
"transcript": "Hi Vasya, I've just found two photos for our project, the games people like. I have found two photos for... Hi Vasya, I've just found two photos for our project, the games people like. I have found two photos for our project and I'd like to tell you about them and share my ideas. The first picture depicts a young lady who is playing computer games. The other one depicts two young girls who are playing chess. In my opinion, these photos are perfectly suitable for our project because they show two types of games, namely playing computer games and playing intellectual games. I think that both types of games have their advantages, for example, playing computer games can be more interesting and funnier than other types of games. As for playing intellectual games, I think that these games can improve their cleverness and strategic skills. Speaking of disadvantages, I reckon that playing computer games can be harmful for kids' health. As for playing intellectual games, I think that playing intellectual games can be boring for kids. As for me, I prefer playing computer games because it is more interesting for me and I'd like to play computer games with my friends. That's all for now. I hope you like the photos and my ideas.",
"score_true": 7,
"score_pred": 9
},
{
"region": "2-Республика Башкортостан",
"fio": "Яппаров_8020266903",
"transcript": "Rain is an important part of the water cycle, which never stops on our planet. Water is delivered to the ground by rains. It is retained as clouds in the sky and falls over and through the land. Actually, this is one of the reasons why the Earth is cold in wind and warm in summer. Water escapes into the atmosphere and turns into clouds. Rain is useful for us in many different ways. Firstly, it waters the Earth and refills streams, rivers, lakes and oceans. The water in the oceans is home to millions of sea creatures. And the water in the streams, rivers and lakes is home to fresh water fish and other water animals. Secondly, rain provides the water trees and other planets need. Rain also gives wild animals the water they need to drink. Finally, people love rainy weather. It makes the air fresh and clean.",
"score_true": 1,
"score_pred": 0
},
{
"region": "2-Республика Башкортостан",
"fio": "Яппаров_8020266903",
"transcript": "Where the flower shop is located? How much does cost delivery? Do you provide any special occasion decorations? Do you have potted flowers?",
"score_true": 2,
"score_pred": 2
},
{
"region": "2-Республика Башкортостан",
"fio": "Яппаров_8020266903",
"transcript": "I usually use mobile phone for any activity. Also I oftentimes use computer for making projects or making my homework. I think digital gadgets... For us it makes it easier to search for exact information. Also it helps us to calculate many things. The best invention is computer. I think computer is the best invention of human. It's provided for humanity... Yes, it's provided for humanity to... Because it helps... I know Mindeliev. He invented a periodic table of chemical elements. I wouldn't be able to live a month without a mobile phone. It helps me to communicate with my friends. It helps me to communicate with my friends.",
"score_true": 2,
"score_pred": 0
},
{
"region": "2-Республика Башкортостан",
"fio": "Яппаров_8020266903",
"transcript": "Hello John, I have just found two photos from our school project. The games people like. And I'd like to describe them and share my ideas. In the first picture you can see a girl playing a computer game. She's wearing headphones and she looks very confident. And on the second picture you can see a daughter playing chess with her mother. They look happy and they enjoy their game. Both pictures depict two different types of games. In the first picture it is computer games. On the second picture it is chess. These types of games have their own advantages. Computer games are usually very interesting to play. And also it helps children to grow their mind. Chess helps people to train their brain. It is easy to play in any place. And you can play it in any place you want. Also they have their own advantages. For example, computer games can hurt your eyes if you use a computer for a long period of time. And also you can't take a computer in the park or in the nature. Chess has a drawback too. The rules are hard.",
"score_true": 6,
"score_pred": 6
},
{
"region": "3-Республика Бурятия",
"fio": "Алексеев_8121943809",
"transcript": "It's hard to imagine our life without rain. Rainfall is important for animals and plants to survive on earth. Rain keeps up the level of fresh water. When there is no rainfall, the flow of life is affected literally. If there is litter or no rain at all, lands will dry up. The dried up plants is no longer suitable for plants to grow. Farmers will have a hard time in cultivation. If there is no agriculture, humans will suffer from food shortage. The water available in the underground will be absorbed by plants. The water in wells will decrease. Since the water in the ocean is salty, the availability of fresh water will decrease considerably. It is also important to have a normal range of rainfall. If the rainfall is continuous with no intervals, it also causes big problems.",
"score_true": 0,
"score_pred": 0
},
{
"region": "3-Республика Бурятия",
"fio": "Алексеев_8121943809",
"transcript": "Where is your clothing store located? What are the opening hours of your clothing store? What kinds of shorts do you sell? Do you provide any discounts in your clothing store?",
"score_true": 3,
"score_pred": 0
},
{
"region": "3-Республика Бурятия",
"fio": "Алексеев_8121943809",
"transcript": "My best friend is Ilya. I met him when I was a child. In war, without friends, teenagers can't get such an idea. I usually spend a lot of hours with my friends every day. I think three or four hours. In school, I usually play games in the computer club with our friends. It's enjoyable if we spend a lot of time with our friends.",
"score_true": 0,
"score_pred": 0
},
{
"region": "3-Республика Бурятия",
"fio": "Алексеев_8121943809",
"transcript": "Hello, friend. I'm calling about our project Indoor Games. Let me tell you about them. I think one photo works for a project showing a couple of people playing tennis. The other is also suitable because it shows two men's playing chess. These two photos illustrate two different types of indoor games. I mean physical activity games and mind games because this can be very useful for our project. Well, we see some advantages and disadvantages of these two types of indoor games. The advantage of tennis is that there is a lot of physical activity. However, The disadvantages of this is that it spends more energy. The advantages of playing chess is that it's pure mind. The disadvantages is that it's difficult if you don't know a rule of the game. To be honest, I prefer the mind games because it's really good for me. That's all I wanted to say. Call me back. Bye.",
"score_true": 6,
"score_pred": 3
},
{
"region": "3-Республика Бурятия",
"fio": "Очиров_8121954518",
"transcript": "It's hard to imagine a life without rain. Rainfall is most is important for animals and plants to survive on earth. Rain keeps up the levels of level of the fresh water. When there is no rain rainfall the flow of life is affected largely. If there is no if there is little or no rain at all lands will dry up. The dried up land is no longer suitable for plants to grow. Farmers will have a hard time in cultivation. If there is no agriculture humans will suffer from food shortages. The water the water available in the underground will be absorbed by plants. The water in the wells will decrease. Since the water in the ocean is salty the availability of fresh water will decrease considerably. It is also important to have a normal range of rainfall. If the rainfall is continuous with no intervals that also causes big problems.",
"score_true": 1,
"score_pred": 0
},
{
"region": "3-Республика Бурятия",
"fio": "Очиров_8121954518",
"transcript": "What's the location of the clothing store? What are working hours for the store? What kind of shirts are sold in the clothing store? Is there any discounts available for now?",
"score_true": 1,
"score_pred": 2
},
{
"region": "3-Республика Бурятия",
"fio": "Очиров_8121954518",
"transcript": "My best friend is Toll. I met him at daycare when I was a child and we still are best friends to this day. Personally, I look for loyalty and charismatic abilities so I could talk to him for hours because it's always important to socialize within your age group. It's always important to have someone to rely your back. Friends will follow you throughout your whole life. Usually I spend about four to five hours with friends by hanging out or playing games together. Usually we just walk around our town or we just hang out at someone else's house. We sometimes buy groceries together so we could cook something good for ourselves. I was glad to answer your questions.",
"score_true": 3,
"score_pred": 0
},
{
"region": "3-Республика Бурятия",
"fio": "Очиров_8121954518",
"transcript": "Hey friend, I found two big two photos that could fit our project about indoor games perfectly. In one of the photos, there are woman and man playing ping pong together. They seem very engaged in it. They're probably somewhere at the sports center. In another photo, there's a two men sitting at the table. They're playing chess. They're really engaged into it. These two photos are relevant for our project because they represent two kinds of in-game indoor games. The active one and the passive one. The advantages of active one probably would be that you can test your qualities and make friends with your opponents whereas it can be very tiring and you can get trauma from it. For passive one, it probably would be that it can test your strategy and your skills. But disadvantage would be that it's mentally draining. Personally, I would pick the passive one because it's very fun to play someone who has same level of skills as you.",
"score_true": 7,
"score_pred": 6
},
{
"region": "3-Республика Бурятия",
"fio": "Ошорова_8121925358",
"transcript": "It is hard to imagine our life without rain. Rainfall is important for animals and plants to survive on earth. Rain keeps up the level of fresh water. When there is no rainfall, the flow of life is affected largely. If there is little or no rain at all, lands will dry up. The dried up land is no longer suitable for plants to grow. Farmers will have a hard time in cultivation. If there is no agriculture, humans will suffer from food shortages. The water available in the underground will be absorbed by plants. The water in wells will decrease. Since the water in the ocean is salty, the availability of fresh water will decrease considerably. It is also important to have a normal range of rainfall. If the rainfall is continuous with no intervals, that also causes big problems.",
"score_true": 1,
"score_pred": 1
},
{
"region": "3-Республика Бурятия",
"fio": "Ошорова_8121925358",
"transcript": "Where is the clothing store located? When the clothing store open and close? What kinds of shorts do you sell? Do you have any discounts in your clothing store?",
"score_true": 3,
"score_pred": 3
},
{
"region": "3-Республика Бурятия",
"fio": "Ошорова_8121925358",
"transcript": "Well, my best friend is Masha. I met her at school when we were 16. She is a very kind and friendly person. Well, it's important for me to have a friend who will be friendly and supportive. I think these qualities are the most important. I think it's important for a teenager to have good friends, since friends are the people who can help teenagers and support them. So it's important to have people who can help you anywhere. I usually spend two hours a day with my friends. We usually do homeworks together or go to cafes. Well, after school, my friends and me usually go to cafes together. Sometimes we can do homeworks also. Besides, we can go to the cinema.",
"score_true": 5,
"score_pred": 0
},
{
"region": "3-Республика Бурятия",
"fio": "Ошорова_8121925358",
"transcript": "Hi Vera, do you remember that we are doing a project Indoor Games? I have found two photos that will perfectly illustrate it. Let me tell you about them. In the one photo I can see a woman and a man playing together table tennis. In the other photo I can see two men playing together a chess. These photos are quite different. In the one photo, the one photo shows active type of indoor games, while the other one shows intellectual type of indoor games. Both photos have their advantages and disadvantages. The main advantage of active type of indoor games is that this type of indoor games helps people to keep fit and stay in shape, since during this game people usually stay active. However, the main disadvantage of this type of indoor games is that not every person has the possibility to have such active indoor games, and it can be quite expensive. As for intellectual type of indoor games, the main advantage of it is that this type of indoor games develop intellectual skills of person. However, the main disadvantage of this type of indoor games is that not every person can play intellectual type of indoor games, since these type of games are quite difficult to play. As for me, I would prefer playing intellectual type of games, since I find them really useful and pleasant for people's brain. That's all I wanted to tell you. Let me know what you think about these photos. Bye!",
"score_true": 9,
"score_pred": 9
},
{
"region": "3-Республика Бурятия",
"fio": "Чимбеева_8121939062",
"transcript": "It's hard to imagine our life without rain. Rainfall is important for animals and plants to survive on earth. Rain keeps up the level of fresh water. When there is no rainfall, the flow of life is affected largely. If there is little or no rain at all, the dry up land is no longer suitable for plants to grow. Farmers will have a hard time in cultivation. If there is no agriculture, humans will suffer from food shortages. The water available in the underground will be absorbed by plants. The water in wells will decrease. Since the water in the ocean is salty, the availability of fresh water will decrease considerably. It is also important to have a normal range of rainfall. If the rainfall is continuous with no intervals, that also causes big problems.",
"score_true": 1,
"score_pred": 0
},
{
"region": "3-Республика Бурятия",
"fio": "Чимбеева_8121939062",
"transcript": "Where is the clothing store located? What are the opening hours of the clothing store? What kinds of shorts are sold? Do you have any discounts?",
"score_true": 4,
"score_pred": 4
},
{
"region": "3-Республика Бурятия",
"fio": "Чимбеева_8121939062",
"transcript": "My best friend is my classmate. Her name is Zhenya. We met at the school. Usually I look for different kinds of qualities for friendship. For example, I think my friend should be easygoing, kind and attentive. It is important for teenagers to have friends. I think so because teenagers need to be with penias because they want to be listened and they want to feel themselves. I usually spend five hours a day with my friends. Usually it is real meeting or online text. I really love to spend my time with my friends. Usually after school we do different actions. The most liked action we like to go to cafe and play volleyball after school with my friends.",
"score_true": 3,
"score_pred": 3
},
{
"region": "3-Республика Бурятия",
"fio": "Чимбеева_8121939062",
"transcript": "Hi there. I have found a few photos for our project Indoor Games. I hope, sorry due to some technical problems, I can't submit them to you. I hope the illustrations are suitable for the project. Let me explain my choice. In one photo there are, there is a woman and a man. They are playing table tennis. They are wearing casual clothes. They are focused and they are happy. In the other photo there are two men. They are playing chess. They are focused and nervous. They are also wearing office clothes. Obviously, photos are different. One noticeable difference is that in one photo they are playing table tennis, whereas in the other photo they are playing chess. Besides, places are different. One photo represents the living room, whereas the other photo represents the living room. There are some disadvantages and advantages. Obvious advantages of playing table tennis is that you can keep fit and you can build your muscles. You can spend your time with your friends. Speaking about playing chess, you can improve your cognitive skills. Nevertheless, there are some disadvantages. As for the drawbacks of playing table tennis, you always need a companion. You can't play table tennis alone. Speaking about drawbacks of playing chess, it can be boring and also you can lose different items and you can't play chess without them. I find the subject of the project very important as people can see the positive and negative sides of two types of indoor games. As for me, I would prefer playing tennis because I really love sport and I really love sport. Please let me know whether you find the photos suitable for the project. If you don't, what are your ideas? Bye.",
"score_true": 7,
"score_pred": 6
}
]