← Все работы
онлайн-образование · GetCourse · виджет в урок

Ученик получает ответ, не выходя из урока

Онлайн-курс живёт на GetCourse: видео, конспект, тест. Ученик спотыкается о термин — и уходит в поиск, где ему отвечают вообще, без привязки к этому курсу. Мы собрали виджет, который живёт в углу урока и отвечает только по материалам курса, а когда ответа в них нет — так и говорит.

1 строкакода добавляется в урок
0правок в шаблоне платформы
2–5предложений в ответе
0,24 ₽стоит вопрос вместе с ответом
01 — Задача

Вопрос об уроке уходит из урока

Человек смотрит урок, застревает на одном слове и открывает новую вкладку. Дальше он читает чужой пересказ темы, спорит с ним про себя и возвращается в курс с версией, которой в курсе нет.

Второй путь — написать куратору. Тогда ответа нужно ждать, а куратор третий раз за неделю объясняет одно и то же одними и теми же словами.

Обычный чат-бот эту дыру только расширяет. Он охотно ответит на любой вопрос — своими словами и мимо программы. Для курса это хуже молчания: ученик уносит уверенный ответ, которого преподаватель не говорил.

02 — Главное решение

Ассистент читает только материалы курса

База знаний фиксированная. В неё кладут расшифровки уроков, чек-листы и глоссарии — и ничего сверх этого. В интернет ассистент не ходит: у него нет ни поиска, ни доступа к внешним источникам.

Правила ответа заданы прямо и коротко: отвечать по материалам; если ответа в них нет — сказать об этом и отправить к куратору; ничего не додумывать. Отдельным правилом — не выдавать готовые ответы на тесты: ассистент помогает разобраться в материале, сдавать тест за ученика он не должен.

Из-за этого на четыре разных вопроса он ведёт себя четырьмя разными способами.

расшифровки уроков чек-листы глоссарии частые вопросы курса порядок прохождения
спросилиПро то, что было в уроке
Отвечает двумя-пятью предложениями и подсказывает, в каком уроке смотреть подробнее.
спросилиПро то, чего в материалах нет
Говорит, что этого в уроке нет, и предлагает задать вопрос куратору. Не достраивает ответ из общих знаний.
спросилиВообще не про курс
Мягко возвращает к теме курса — без нотаций и без спора.
попросилиРешить за меня тест
Разбирает вопрос вместе с учеником, но готовый ответ не выдаёт. Это осознанное правило.
03 — Как это видит ученик

Кнопка в углу урока и предупреждение под полем ввода

Виджет не переделывает страницу. В правом нижнем углу появляется кнопка, по ней открывается панель чата, урок остаётся на месте и ничем не перекрыт.

Вопрос задаётся обычными словами — так же, как задали бы преподавателю. Ответ появляется постепенно, по мере того как пишется. Диалог помнит последние двенадцать реплик, поэтому «а поподробнее?» работает.

Под полем ввода стоит строка «возможны неточности, сверяйтесь с уроком». Она нужна, чтобы ученик помнил: источник — урок, а чат помогает в нём разобраться.

страница урока
ИИ-ассистент курсана связи · отвечает по материалам урока ×
Спросите про урок…
ИИ-ассистент · возможны неточности, сверяйтесь с уроком
Схема интерфейса: строки виджета настоящие, содержание урока и реплики показаны полосами. Заголовок, приветствие, три вопроса-подсказки и цвет задаются под конкретный урок.
04 — Что пришлось решить

Платформа не запускала наш скрипт — и была права

Первая вставка не заработала. Тег в разметке урока стоял, файл виджета лежал на месте, кнопка не появлялась. Ошибок в консоли тоже не было.

Причина оказалась не в платформе и не в виджете. Содержимое блока платформа подставляет в страницу как готовую разметку — а браузер по спецификации не выполняет скрипты, вставленные таким способом. Тег в документе есть, и он мёртвый.

Обходной путь простой: попросить браузер создать скрипт самому — уже на живой странице.

не работает
<script src="…/widget.js"></script>
Тег появляется в документе, но не выполняется.
работает
<img src=x style="display:none" onerror="var s=document.createElement('script');s.src='…/widget.js';document.body.appendChild(s);this.remove()">
Картинки нет, срабатывает обработчик ошибки — он и создаёт скрипт. Обёртка убирает себя из документа.
что мешало Скрипт из блока урока не выполняется

Платформа подставляет содержимое блока как готовую разметку, а браузер такие скрипты не запускает.

что сделали

Подключаем виджет обёрткой, которая создаёт тег скрипта уже на странице. В урок идёт одна строка.

что мешало Блок урока может жить внутри рамки

Если платформа рендерит блок отдельным окном внутри страницы, виджет оказался бы заперт в этой рамке.

что сделали

Виджет проверяет, где он оказался, и вешает себя на главную страницу урока — поэтому панель открывается поверх всего.

что мешало Незащищённое соединение платформа режет

Файл виджета, отданный не по HTTPS, до урока просто не доедет: страница его заблокирует.

что сделали

Виджет отдаётся по HTTPS, сертификат бесплатный и продлевается сам.

Оговорка: на аккаунте заказчика сработал штатный блок платформы, и обходной приём не понадобился — поведение зависит от типа блока и настроек аккаунта. Поэтому в запасе держим оба пути. И ещё: в конструкторе и в предпросмотре скрипты не работают вовсе, проверять можно только на реальной странице урока, открытой учеником.

05 — Как проверять качество

Проверку устроили так, чтобы её нельзя было подогнать

Ассистента настраивают на «золотом наборе» — списке вопросов по материалам, где для каждого записан эталонный ответ. Прогон, сверка, разбор расхождений, повторный прогон. Так видно, где он отвечает неточно, до того как курс увидят ученики.

Приёмка устроена иначе. По договору ассистента принимают на двадцати вопросах — и мы предложили, чтобы эти двадцать составлял заказчик и не показывал их нам заранее. Иначе приёмка проверит нашу способность подогнать ответы.

настройка Золотой набор

Вопросы с эталонными ответами. Составить его может как исполнитель, так и заказчик — состав согласуется. Инструмент рабочий: он показывает слабые места, пока их ещё можно чинить.

приёмка Двадцать вопросов, которых мы не видели

Список готовит заказчик и держит у себя до приёмки. Так видно настоящее качество ответов, без подготовки к известным вопросам.

Прогонов пока не было: материалы тридцати уроков ещё не переданы. Пока это метод; результаты появятся после первого прогона.

06 — Сколько стоит держать

Вопрос ученика стоит двадцать четыре копейки

Модель считает объём текста в токенах, а токен — это кусочек примерно в половину слова. Одно обращение — это вопрос вместе с фрагментами уроков, которые ассистент прочитывает перед ответом, и сам ответ: около 3 700 токенов.

При тарифе российской модели GigaChat — 0,065 ₽ за тысячу токенов — вопрос с ответом обходится в 24 копейки.

тариф модели0,065 ₽за тысячу токенов, с НДС
×
объём обращения≈3 700токенов: 3 000 — вопрос с фрагментами уроков, 700 — ответ
=
вопрос с ответом≈0,24 ₽дальше всё упирается в то, сколько вопросов зададут
спрашивают реже расчётного
≈700 ₽
расчёт: 500 человек из тысячи, по 20 вопросов
≈2 400 ₽
спрашивают активнее расчётного
≈4 100 ₽

Столбики показывают расходы на модель за весь курс целиком. У оператора есть минимальный платёж 600 ₽ в месяц, и вопросы учеников до него не дотягивают — счёт упирается именно в минимум. Поэтому в бюджет кладут именно объём: 7 200 ₽ за год. Плюс небольшой сервер — 9 700 ₽ за год. Годовая эксплуатация выходит примерно в 16 900 ₽.

Это ориентировочный расчёт по опубликованным тарифам: боевой ассистент ещё не работал на живом потоке, и точного счёта пока нет. Аккаунты сервера и модели оформляются на заказчика — расходы видны ему напрямую, авансовый баланс без автопополнения не даёт неожиданных списаний.

07 — Границы

Где ассистент останавливается

Помощник в учёбе опаснее помощника в чём угодно другом: уверенно сказанная неправда закрепится и уедет с учеником дальше. Поэтому границы устанавливаются заранее, до того как появятся жалобы.

граница 01Чего нет в материалахБаза знаний фиксированная. Ассистент не ищет в интернете и не достраивает ответ из общих знаний — он говорит, что этого в уроке нет.
граница 02Тесты за ученикаРазбирает вопрос вместе с ним, но готовый ответ не выдаёт. Иначе тест перестаёт что-либо показывать преподавателю.
граница 03Персональные данныеАссистент не получает от платформы имя, почту и номер ученика и не хранит переписку. Вопросов по 152-ФЗ на приёмке не возникает.
граница 04Модель может исчезнутьВ августе поставщик снял модель с обслуживания, и ассистент замолчал. Теперь в связке вторая: если первая не отвечает, вопрос уходит ей.

Где мы сейчас: виджет собран и проверен вживую на двух аккаунтах GetCourse — на нашем демонстрационном и на платформе заказчика, где под это собрали отдельный урок. Проверялась именно возможность встроить ассистента: боевая база знаний ждёт материалы тридцати уроков, поэтому готовых ответов по курсу пока нет. В демонстрационной версии стоит зарубежная модель и ограничение в 30 вопросов за десять минут с одного адреса; для боевой выбрана российская.

08 — Что переносится дальше

Тот же виджет подходит для других платформ

Платформа тут — деталь. Устройство простое и повторяемое: страница, фиксированная база знаний, одна строка в разметке и правило «отвечать только по этой базе».

Меняются материалы и место, куда вставляется строка. Всё остальное остаётся тем же.

Другая платформа обучения
входстраница урока и материалы курсавыходтот же ассистент в углу страницы
Внутреннее обучение
входрегламенты, инструкции, чек-листы компаниивыходответ по правилам компании, без интернета
Первые недели новичка
входбаза знаний отдела и частые вопросывыходответы, за которыми не нужно дёргать коллег
Справка о продукте
входдокументация и разбор частых обращенийвыходпомощник в личном кабинете клиента