Ментор від Читай

Урок за один виклик

Приклад від початку до кінця: агент створює урок з одного аркуша та восьми блоків. Це ті самі дані, що лежать в опису інструмента, і автоматична перевірка гарантує, що сервер їх приймає.

Кроки

  1. Агент отримує список інструментів (tools/list) і читає опис tutor_create_lesson.
  2. Для кожного типу блока агент отримує точну форму вмісту й ключа відповідей — інструментом tutor_get_block_schema. Тип блока визначає, які поля обов’язкові; відсутнє значення записується явним null.
  3. Агент збирає весь урок і викликає tutor_create_lesson один раз. Ключ idempotencyKey робить повтор безпечним: якщо з’єднання обірвалося, другий виклик поверне перший результат, а не створить другий урок.
  4. Якщо в уроці є помилки, сервер нічого не створює й повертає їх усі, кожну зі шляхом. Агент виправляє й повторює.
  5. Агент передає вам 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"
      ]
    }
  ]
}

Як перевірити результат

  1. Відкрийте reviewUrl у браузері, де ви ввійшли в Ментор.
  2. Перегляньте аркуш і всі вісім блоків; за потреби змініть їх у конструкторі.
  3. Коли урок влаштовує, призначте його учням так само, як будь-який інший.

Помилковий блок не пошкодить уже створене: якщо хоч один блок не пройшов перевірку, не створюється нічого — ні аркушів, ні самого уроку.