Smart questions¶
Генерация асинхронная: статус и результат - методом «Статус генерации» (раздел «ИИ-генерации»).
Создание вопросов¶
Создаёт вопросы с ответами и пояснениями по учебному материалу.
Запрос: POST {API_URL}/v1/smart-questions, авторизация - токен, тело - multipart/form-data.
| Параметр | Тип | Описание |
|---|---|---|
file* |
file | Материал, .docx или .pdf, до 20 МБ |
difficulty |
string | easy, medium (по умолчанию) или hard |
question_count |
integer | Сколько вопросов: 1-7, по умолчанию 5 |
question_groups |
array | Виды заданий, поле повторяется для каждого: question_groups=selection&question_groups=matching; без него ИИ выбирает сам |
topic |
string | Тема, до 255 символов; без неё ИИ определит тему по материалу |
instruction |
string | Пожелания, до 1000 символов |
grade_level |
integer | Класс, 1-12 |
start_page |
integer | Первая страница диапазона, от 1 |
end_page |
integer | Последняя страница диапазона, не меньше start_page; без границ - весь файл, можно задать одну |
Виды заданий: selection - выбор ответа, matching - сопоставление, completion - дополнить, ordering - порядок, classification - классификация, short_written_answer - короткий письменный ответ, application - применение знаний.
Ответ 202: объект «Генерация», kind: "smart_questions".
Результат - result.questions:
| Параметр | Тип | Описание |
|---|---|---|
questions[].question_text* |
string | Текст вопроса |
questions[].question_type* |
string | closed - с вариантами, open - свободный ответ |
questions[].question_category* |
string | Вид задания внутри группы, например multiple_choice, true_false, match_items |
questions[].options |
array | Варианты closed вопроса; null у open |
questions[].options[].label* |
string | Метка варианта: A, B, ... |
questions[].options[].text* |
string | Текст варианта |
questions[].correct_answer* |
string | Метка верного варианта у closed, образец ответа у open |
questions[].explanation* |
string | Пояснение по материалу |
{
"questions": [
{
"question_text": "Какая дробь равна 1/2?",
"question_type": "closed",
"question_category": "multiple_choice",
"options": [{"label": "A", "text": "2/4"}, {"label": "B", "text": "2/3"}],
"correct_answer": "A",
"explanation": "2/4 сокращается до 1/2."
}
]
}
Если в материале нет учебного содержания, генерация завершится failed.
Распечатать вопросы можно методом «Бланк вопросов».
Бланк вопросов¶
Возвращает PDF для печати: шапка с логотипом школы и полями для имени ученика, вопросы, а на отдельной странице - ответы с пояснениями.
Вопросы присылает клиент, обычно result.questions генерации, в том числе поправленные учителем; ИИ не вызывается, бланк собирается сразу.
Запрос: POST {AI_URL}/v1/smart-questions/pdf, авторизация - токен.
| Параметр | Тип | Описание |
|---|---|---|
questions* |
array | 1-30 вопросов в формате result.questions |
topic |
string | Заголовок бланка и имя файла, до 255 символов; без него заголовок - «Вопросы по материалу» |
grade_level |
integer | Класс в шапке, 1-12 |
difficulty |
string | Сложность в шапке: easy, medium или hard |
{
"topic": "Дроби",
"grade_level": 5,
"difficulty": "medium",
"questions": [
{
"question_text": "Какая дробь равна 1/2?",
"question_type": "closed",
"question_category": "multiple_choice",
"options": [{"label": "A", "text": "2/4"}, {"label": "B", "text": "2/3"}],
"correct_answer": "A",
"explanation": "2/4 сокращается до 1/2."
}
]
}
Вид вопроса на бланке зависит от question_category: варианты с кружками для выбора, с квадратиками, если верных несколько; карточки для сопоставления, порядка и пропусков; таблица-сортировка для классификации; линейки для письменного ответа.
Ответ 200: файл application/pdf как вложение, имя файла - по теме.
| Код ошибки | Когда |
|---|---|
401 |
Нет токена или он недействителен |
422 |
Неверное тело |