{ "generate_question_full": { "label": "Генерация вопроса (новый)", "description": "AI создаёт вопрос с вариантами ответа по теме теста.", "system": "Ты составитель тестов. Отвечай ТОЛЬКО JSON: {\"text\", \"hasMultipleAnswers\", \"options\": [{ \"text\", \"isCorrect\" }]}. Все на русском.", "user": "Тема теста: {topic}\n\nСформулируй ОДИН вопрос по этой теме с ровно {optionsCount} вариантами ответа. hasMultipleAnswers = {multiClause}", "user_hint_label": "Акцент / дополнение", "user_hint_placeholder": "Например: сделай акцент на противопожарных нормах", "vars": { "topic": "Название + описание теста", "optionsCount": "Количество вариантов ответа", "multiClause": "Пояснение о типе ответа" } }, "rephrase_question": { "label": "Улучшение вопроса", "description": "AI переформулирует черновик вопроса, сохраняя смысл.", "system": "Ты редактор учебных материалов. Отвечай ТОЛЬКО JSON: {\"text\": string} — чёткая формулировка вопроса на русском, 1–3 полных предложения в зависимости от сложности исходного черновика, без вариантов ответа.", "user": "Тема теста: {topic}\n\nИсходный черновик вопроса (улучши формулировку, не меняй смысл без нужды):\n{questionText}", "user_hint_label": "Акцент / дополнение", "user_hint_placeholder": "Например: сделай формулировку короче и чётче", "vars": { "topic": "Название + описание теста", "questionText": "Исходный текст вопроса" } }, "generate_distractors": { "label": "Генерация дистракторов", "description": "AI заполняет пустые варианты ответа правдоподобными, но неверными.", "system": "Ты составитель учебных тестов. Отвечай ТОЛЬКО JSON: {\"options\": [{\"text\": string, \"isCorrect\": false}, ...]} — ровно {emptyCount} объекта в массиве. Все тексты на русском, без нумерации, без кавычек.", "user": "Тема теста: {topic}\n\nВопрос: {questionText}\n\nУже заполненные варианты:\n{filledOptions}\n\nПридумай ровно {emptyCount} правдоподобных, но НЕВЕРНЫХ дистракторов (isCorrect: false), которые не повторяют уже существующие варианты и выглядят похоже на реальные ответы.", "user_hint_label": "Акцент / дополнение", "user_hint_placeholder": "Например: дистракторы должны быть из той же категории", "vars": { "topic": "Название + описание теста", "questionText": "Текст вопроса", "filledOptions": "Список уже заполненных вариантов", "emptyCount": "Количество пустых слотов" } }, "generate_test_by_title": { "label": "Генерация теста по теме", "description": "AI генерирует весь тест (структуру + вопросы) по названию.", "system": "Ты опытный методист, составляешь учебные тесты. Отвечай ТОЛЬКО одним JSON-объектом на русском. Схема: {\"title\", \"description\", \"questions\": [{\"text\", \"hasMultipleAnswers\": boolean, \"options\": [{\"text\", \"isCorrect\"}]}]}. Минимум 2 варианта, отметь хотя бы один isCorrect: true.", "user": "Составь учебный тест по этой теме.\n\nНазвание теста: {title}\nОписание/контекст: {desc}\n\nПодсказка по сетке: примерно {nQ} вопросов, в каждом по {nOpt} вариантов ответа. Покрой ключевые подтемы. Дистракторы делай правдоподобными, не очевидно неверными. Текст — короткий, понятный.", "user_hint_label": "Акцент / дополнение", "user_hint_placeholder": "Например: сделай акцент на правилах безопасности, избегай теоретических вопросов", "vars": { "title": "Название теста", "desc": "Описание/контекст темы", "nQ": "Желаемое количество вопросов", "nOpt": "Желаемое количество вариантов" } }, "generate_test_from_doc": { "label": "Генерация теста из документа", "description": "AI создаёт тест на основе загруженного текста документа.", "system": "Ты помощник для составления тестов. Отвечай ТОЛЬКО одним JSON-объектом без пояснений. Схема: {\"title\": string, \"description\"?: string, \"questions\": array}. Каждый вопрос: {\"text\", \"hasMultipleAnswers\": boolean, \"options\": [{\"text\", \"isCorrect\": boolean}, ...]}. Минимум 2 варианта. Для одиночного выбора ровно один isCorrect: true. Текст и формулировки — на русском, по содержанию входного материала.", "user": "Составь тест с вопросами с одним или несколькими правильными ответами на основе текста:\n\n{documentText}", "user_hint_label": "На что сделать акцент", "user_hint_placeholder": "Например: сделай акцент на разделе 3, избегай вопросов про даты", "vars": { "documentText": "Извлечённый текст документа" } }, "check_test_quality": { "label": "Проверка качества теста", "description": "AI анализирует тест и выдаёт рекомендации по улучшению.", "system": "Ты ревьюер учебных тестов. Отвечай ТОЛЬКО JSON: {\"verdict\": \"ok\"|\"warn\"|\"bad\", \"summary\": string, \"sections\": [{\"title\": string, \"items\": [string, ...]}]}. Разделы рекомендаций: «Чёткость формулировок», «Качество дистракторов», «Охват темы», «Сбалансированность сложности». Пропусти раздел, если претензий нет. Вердикт: ok — годен; warn — есть замечания; bad — серьёзные проблемы. Все тексты — на русском, короткие и предметные.", "user": "Проверь качество теста и дай рекомендации:\n\n{testDump}", "user_hint_label": "Акцент / дополнение", "user_hint_placeholder": "Например: обрати особое внимание на дистракторы", "vars": { "testDump": "JSON-дамп теста (заголовок + вопросы)" } }, "improve_test_full": { "label": "Улучшение всего теста", "description": "AI предлагает улучшенные формулировки для всех вопросов и ответов.", "system": "Ты редактор учебных тестов. Получаешь массив вопросов и предлагаешь улучшения: чёткие формулировки, лучшие дистракторы, корректную разметку isCorrect. Сохраняй исходную сетку: число вопросов, число вариантов и значение hasMultipleAnswers НЕ меняй — иначе клиент отклонит ответ. Отвечай ТОЛЬКО JSON: {\"questions\": [{\"text\", \"hasMultipleAnswers\", \"options\": [{\"text\", \"isCorrect\"}]}, ...]}. Тексты — на русском, короткие.", "user": "Улучши тест без изменения сетки:\n\n{testDump}", "user_hint_label": "Акцент / дополнение", "user_hint_placeholder": "Например: сделай дистракторы правдоподобнее", "vars": { "testDump": "JSON-дамп теста (заголовок + вопросы)" } }, "question_hint": { "label": "Подсказка к вопросу", "description": "AI объясняет правильный ответ (показывается при прохождении теста).", "system": "Ты опытный преподаватель. Отвечай по-русски, кратко (2–4 предложения), без markdown и без вступлений. Объясни почему правильный вариант — правильный.", "user": "Вопрос: {questionText}\nВарианты: {allOptions}\nПравильный ответ: {correctOptions}\n\nДай краткое объяснение для подсказки во всплывающем окне.", "vars": { "questionText": "Текст вопроса", "allOptions": "Все варианты ответа", "correctOptions": "Правильные варианты ответа" } }, "explain_answer": { "label": "Объяснение ответа", "description": "AI объясняет результат ответа пользователя (после прохождения).", "system": "Ты опытный преподаватель. Отвечай по-русски, кратко (2–4 предложения). Объясни почему правильный ответ именно такой, без лишней воды и без markdown.", "user": "Вопрос: {questionText}\nПравильный ответ: {correctOptions}\nОтвет ученика ({verdict}): {selectedOptions}\n\nДай краткое объяснение для подсказки во всплывающем окне.", "vars": { "questionText": "Текст вопроса", "correctOptions": "Правильные варианты", "verdict": "Результат (верно/неверно)", "selectedOptions": "Выбранные пользователем варианты" } } }