Урок за один виклик
Приклад від початку до кінця: агент створює урок з одного аркуша та восьми блоків. Це ті самі дані, що лежать в опису інструмента, і автоматична перевірка гарантує, що сервер їх приймає.
Кроки
- Агент отримує список інструментів (
tools/list) і читає описtutor_create_lesson. - Для кожного типу блока агент отримує точну форму вмісту й ключа відповідей — інструментом
tutor_get_block_schema. Тип блока визначає, які поля обов’язкові; відсутнє значення записується явнимnull. - Агент збирає весь урок і викликає
tutor_create_lessonодин раз. КлючidempotencyKeyробить повтор безпечним: якщо з’єднання обірвалося, другий виклик поверне перший результат, а не створить другий урок. - Якщо в уроці є помилки, сервер нічого не створює й повертає їх усі, кожну зі шляхом. Агент виправляє й повторює.
- Агент передає вам
reviewUrl: там урок відкривається в конструкторі, де його можна переглянути й доопрацювати.
Запит
Аргументи виклику tutor_create_lesson. Блоки з відповідями (mcq, gap_fill, matching, translation) мають answerKey; за ним рахуються бали.
{
"idempotencyKey": "reference-lesson-0001",
"lesson": {
"title": "Get by: living on little",
"description": "A short text and exercises on the phrasal verb «get by».",
"subject": "angliyska-mova",
"level": "b1",
"outputLanguage": "uk",
"worksheets": [
{
"title": "Get by",
"purpose": "classwork",
"blocks": [
{
"type": "passage",
"title": "Text",
"content": {
"paragraphs": [
{
"id": "p1",
"text": "Anna moved to a new city with very little money. She could get by on bread and soup."
}
],
"numbered": false,
"truncated": false
}
},
{
"type": "vocabulary",
"title": "Words",
"content": {
"items": [
{
"id": "v1",
"expression": "get by",
"meaning": "давати собі раду",
"ipa": null,
"sourceLine": null
}
]
}
},
{
"type": "mcq",
"title": "Choose the meaning",
"instruction": "Choose the correct answer.",
"content": {
"questions": [
{
"id": "q1",
"text": "What does «get by» mean?",
"options": [
{
"key": "a",
"text": "to manage with little"
},
{
"key": "b",
"text": "to walk past"
}
]
}
]
},
"answerKey": {
"items": {
"q1": {
"field": "choice",
"value": "a"
}
}
}
},
{
"type": "gap_fill",
"title": "Fill the gap",
"content": {
"items": [
{
"id": "g1",
"before": "She could",
"after": "on very little."
}
]
},
"answerKey": {
"items": {
"g1": {
"field": "gap",
"value": "get by"
}
}
}
},
{
"type": "matching",
"title": "Match",
"content": {
"left": [
{
"id": "l1",
"text": "get by"
}
],
"right": [
{
"key": "r1",
"text": "давати собі раду"
},
{
"key": "r2",
"text": "зазирнути"
}
]
},
"answerKey": {
"items": {
"l1": {
"field": "match",
"value": "r1"
}
}
}
},
{
"type": "open_prompt",
"title": "Your answer",
"content": {
"response_mode": "per_prompt",
"lines": 3,
"prompts": [
{
"id": "o1",
"text": "How do you get by when money is tight?"
}
],
"shared_label": null
}
},
{
"type": "translation",
"title": "Translate",
"content": {
"direction": "to_content",
"items": [
{
"id": "t1",
"source": "Вона якось дає собі раду."
}
]
},
"answerKey": {
"items": {
"t1": {
"field": "translation",
"value": "She somehow gets by.",
"compare": "sentence"
}
}
}
},
{
"type": "callout",
"content": {
"tone": "info",
"label": null,
"text": "Bring your dictionaries on Friday."
}
}
]
}
]
}
}Відповідь
Сервер повертає ідентифікатор уроку, посилання для перегляду та ідентифікатори створених аркушів і блоків — їх можна використати в інших інструментах, щоб змінити окремий блок.
{
"lessonId": "4f0c6b3e-8d1a-4c59-9f1e-2a7b9c0d1e23",
"reviewUrl": "https://mentor.chitay.org.ua/app/worksheets/4f0c6b3e-8d1a-4c59-9f1e-2a7b9c0d1e23",
"worksheets": [
{
"id": "7a1d2c3b-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
"blockIds": [
"b1c2d3e4-f5a6-4b7c-8d9e-0f1a2b3c4d5e"
]
}
]
}Як перевірити результат
- Відкрийте
reviewUrlу браузері, де ви ввійшли в Ментор. - Перегляньте аркуш і всі вісім блоків; за потреби змініть їх у конструкторі.
- Коли урок влаштовує, призначте його учням так само, як будь-який інший.
Помилковий блок не пошкодить уже створене: якщо хоч один блок не пройшов перевірку, не створюється нічого — ні аркушів, ні самого уроку.
