Как Jev выбирает действие браузера
Человек говорит «открой документацию», и браузер переходит в нужный раздел. Между просьбой и кликом система должна распознать речь и выбрать ссылку. За выбор в таком сценарии отвечает Jev, модель искусственного интеллекта компании TypeSafe.
Та же задача возникает в службе поддержки: прочитать обращение и выбрать отдел, который сможет помочь. Jev оценивает ситуацию в пределах вариантов, которые ей предоставило приложение.
Что решает Jev
Многие рабочие задачи сводятся к выбору: куда направить обращение клиента, насколько срочна заявка, какую кнопку нажать. Для такого выбора Jev получает описание ситуации и вопрос. Форму ответа заранее определяет создатель приложения. Например, в задаче распределения обращений ответом должно стать название одного из отделов компании. Программа знает, как использовать этот ответ: передать заявку выбранному отделу.
У Jev есть три основных способа оценки. Первый способ состоит в выборе одного из перечисленных вариантов. Например, обращение клиента можно направить в отдел продаж, техническую поддержку или бухгалтерию. Создатели приложения задают варианты и объясняют их смысл, модель определяет наиболее подходящий.
Второй способ позволяет оценить ситуацию по шкале. Заявке можно присвоить обычную, повышенную или критическую срочность. Jev оценивает вероятность каждого уровня и сводит результат к положению на шкале. Поэтому итог может находиться между соседними уровнями: оценка учитывает несколько возможных ответов.
Третий способ даёт оценку вероятности ответа «да». Например, нужна ли этому обращению проверка старшего специалиста? Оценка, близкая к 50%, означает, что модель не склоняется явно к одной стороне. Программа сама решает, достаточно ли этой оценки для автоматического действия или нужна проверка человеком.
В этом и состоит смысл «типизированного решения»: у ответа заранее задан вид, который программа умеет использовать. Получив название отдела, она направляет обращение; получив оценку срочности, меняет место заявки в очереди. Правила этих действий задают создатели приложения.
Как устроен голосовой браузер
В демонстрации Moritz Kremb человек голосом открывает Wikipedia, выбирает English и возвращается назад. Рядом со страницей находится пульт с распознанной командой, решением Jev и журналом действий.
Браузер сначала превращает речь в текст. Затем приложение составляет список доступных операций по текущей странице: открыть ссылку, заполнить поле, прокрутить вниз, вернуться назад. Jev получает команду и этот список. Для фразы "нажми Документация" ей нужно определить, какой из предложенных пунктов соответствует просьбе.
Модель возвращает выбранный пункт. Приложение связывает его с конкретным действием и выполняет его после собственных проверок. Если нужной операции в списке нет, модель не может добавить её самостоятельно. Поэтому качество управления зависит и от того, насколько полно программа описала страницу.
Кнопка без понятной подписи может оказаться вне списка. То же относится к элементу, который выглядит как кнопка, но нарисован внутри изображения. Уточнение фразы поможет только тогда, когда программа уже умеет находить нужный элемент.
В открытом прототипе Voice Browser за выбором Jev можно наблюдать на учебной странице: ввести команду с клавиатуры, увидеть оценки вариантов и результат действия. Голосовое управление в прототипе остаётся экспериментальным.
Что означают проценты рядом с решением
Вместе с выбором Jev возвращает вероятности предложенных вариантов. Они показывают, как модель распределила свою оценку между возможными ответами. Если у одного пункта 98%, а у другого 2%, первый получил явное предпочтение. При близких значениях решение менее определённо.

Показатель 98% сам по себе не означает, что система верно выполнит 98 команд из ста. Для такого вывода нужны отдельные испытания на множестве команд и страниц. Здесь число говорит о том, насколько модель предпочла один вариант остальным.
Почему программа может остановиться
Страница способна измениться за время ответа модели. Пользователь может передумать или отправить новую команду. Поэтому пульт проверяет, что прежняя просьба ещё актуальна, выбранное действие разрешено, а нужный элемент остался на странице.
В списке вариантов есть пункт "ничего не делать". Он позволяет остановиться, когда модель не находит подходящего действия. Пульт также требует достаточной вероятности выбранного пункта и заметного отрыва от следующего. Из-за этих условий полезная команда тоже может остаться невыполненной.

Поле на странице было доступно для ввода, однако Jev выбрала остановку. Человек видит, что просьбу можно выполнить; модель оценила ситуацию иначе. Пульт позволяет заметить этот сбой и повторить команду. Возможность остановиться полезна, но сама остановка тоже бывает ошибкой.
Операции с последствиями требуют дополнительного контроля. Voice Browser запрашивает подтверждение для кнопок с признаками отправки, оплаты или удаления. Проверка опирается на подпись и тип элемента; необычно названная операция может пройти без подтверждения. Ответственность за безопасность конкретного сайта остаётся у приложения и пользователя.
Где такой подход применим
Jev подходит для задач, в которых можно заранее перечислить решения или задать шкалу. Возможное применение: переключение разделов справочника во время созвона, распределение обращений между отделами, выбор следующего шага в небольшом рабочем пульте. Для каждого такого сценария нужно определить допустимые действия и проверить ошибки на своих примерах.
В управлении браузером особенно важны понятные подписи кнопок и возможность отменить действие. Прототип Voice Browser имеет ограничения: он не охватывает внутренние страницы Chrome, некоторые вложенные области сайта и элементы без доступного текстового описания. После перехода на другой сайт может понадобиться новое разрешение пользователя.
Облачная обработка тоже задаёт границы. Jev получает команду, заголовок страницы и подписи элементов. Значения полей и пароли пульт не собирает, однако личная информация может содержаться в самих подписях. Распознавание речи Chrome также может обращаться к удалённому сервису.
Полезность такой системы определяется всей цепочкой: насколько понятна команда, доступны нужные действия, верен выбор и предусмотрена остановка. Jev решает задачу выбора внутри этой цепочки. Программа определяет, каким образом этот выбор превратится в действие.
Источники
TypeSafe о Jev, выбор из вариантов, шкала оценки, вероятность да/нет, распознавание речи в браузере. Jev и класс моделей типизированных решений; структурированные ответы ИИ; результаты работы прототипа Voice Browser.