Разработка голосового бота с использованием Google Dialogflow CX

И чем отличается CX от других сред…

Введение

Глядя на предыдущую историю Medium, написанную на Dialogflow, которая теперь называется Dialogflow ES, можно сказать, что одна большая проблема, которую я поднял, - это отсутствие среды разработки и управления диалоговыми окнами.

И этот ES должен будет использоваться как API с собственным кодом, управляющим диалогом и управлением состоянием.

Это было решено с помощью Dialogflow CX.

Другими словами, интерфейс, в котором можно управлять состоянием разговора.

В настоящее время на рынке существует пять отдельных групп по подходам к проектированию и разработке диалогов ...

Конфигурации диалогов, холст дизайна, собственный код, истории машинного обучения и, конечно же, холст дизайна.

CX попадает в категорию холста дизайна и действительно напоминает дизайнерский подход Botsociety в своем интерфейсе для дизайна.

CX - это инструмент корпоративного голосового робота (сначала голос) с продуманным дизайном для совместной работы. CX прочно вошел в состав предложения Google Cloud Platform.

Dialogflow CX Negatives

  • Необходимость постоянно сохранять в процессе работы и меняется по мере продвижения. Мне нравится подход IBM Watson Assistant, когда работа и изменения фиксируются на лету без необходимости явно сохранять изменения.
  • Индикатора обучения нет, поэтому возникает соблазн попробовать сразу же протестировать изменение, просто обнаружив, что оно еще не повлияло.
  • Ценообразование; действительно непомерно; особенно для развивающихся рынков.
  • Состояние машины пригнано. Канва дизайна может стать очень сложной и сложной для более крупных реализаций.
  • Похоже, что для высказываний агента вам нужно нажать клавишу ВВОД, чтобы зафиксировать изменение, а затем сохранить. Накладные расходы по экономии я считаю трудоемкими.

Положительные стороны Dialogflow CX

  • Консоль веб-разработки очень отзывчива, не загромождена и чиста. Противоположность консоли разработки Alexa.
  • Использование возможностей Google для преобразования речи в текст.
  • Удобная возможность воспроизвести последовательность высказываний в Симуляторе.
  • Если вы используете IDE чат-бота, кривая обучения совсем не крутая; нет абстрактных терминов или функциональности.
  • Управлять контекстом внутри страниц и потоков очень просто. Можно сделать какое-то отступление.
  • Возможность завершить поток и / или завершить сеанс очень важна. Есть случаи, когда вы хотите, чтобы сеанс оставался активным; многие пользователи предполагают, что чат является асинхронным, аналогично человеческим разговорам.
  • При сохранении сообщения об ошибках описательны и полезны.



Создание проекта

Первым шагом в создании приложения CX является создание нового проекта в Google Cloud Platform. Это первый признак того, что CX строго соответствует Google Cloud Platform.

В CX вы можете создавать различные проекты. Проекты - это высшая степень организации ваших помощников. В проекте может быть несколько агентов.

В рамках проекта вы можете просмотреть определенные агенты.

Агенты

Вы должны думать о CX-агенте как о виртуальном агенте, работающем с клиентами, в масштабе всей компании. Для помощника главный строительный блок - это агент . Это аналогично подходу, применяемому в IBM Watson Assistant, когда агент с различными навыками составляет агента.

Вот представление агента в проекте с тремя определенными агентами. При создании нового агента дается имя и доступен ряд языковых и местных жителей.

Одним из препятствий для развивающихся рынков является отсутствие поддержки местных языков или родного языка.

Агент облегчает общение с вашим пользователем. CX переведет пользовательский текст или аудио в структурированные данные для понимания потоков.

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

Потоки и страницы

Вот обзор самого простого бота Travel Agent ... но сначала, что такое поток и страница?

Поток

Например, у помощника банка будет несколько сложных диалогов, которые можно упорядочить по темам разговора.

Эти темы могут включать переводы, форекс, облигации, кредитные карты и т. Д.

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

Потоки используются для определения этих тем и связанных с ними разговоров.

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

Страница

CX-диалог разработан и визуально представлен в виде конечного автомата. Состояния беседы представлены страницами.

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

Диалог (сеанс) Dialogflow CX можно описать и визуализировать как конечный автомат.

Состояния сеанса CX представлены страницами.

На странице собираются намерения и сущности. Это огромный шаг вперед по сравнению с ES.

ES действительно не хватает холста для проектирования, чтобы наметить разговорные пути.

Намерения

Намерения - это передовая линия вашего чат-бота, обнаружение намерений вашего пользователя. Намерения можно рассматривать как глагол; действие или цель, которых хочет достичь пользователь.

Намерения обычно переводят разговор из состояния в состояние.

В CX намерения определяются по имени и нескольким обучающим примерам. Намерения могут делать именно это, фиксировать намерения пользователя.

Или, как показано ниже, сущности могут быть определены в примере намерения контекстно.

Сущности

Сущности можно рассматривать как существительные, контекстно зависимую информацию. Что, если не обнаружено успешно, приводит к ситуации, когда бот повторно запрашивает у пользователя уже введенную информацию.

Только сущности (без синонимов)

Используйте синонимы, чтобы извлечь семантически похожие слова и сопоставить их с тем же значением. Например, для объекта "зеленый лук" может потребоваться синоним "лук-шалот".

Сущности Regexp

Вы можете указать в значениях регулярные выражения Google RE2, и они будут использоваться во время классификации запроса для извлечения параметров.

Автоматически добавлять объекты

Dialogflow использует машинное обучение для заполнения списка сущностей на основе существующих записей.

Нечеткое соответствие

Нечеткое сопоставление - это тип извлечения параметров, который приблизительно (а не точно) соответствует сущности. Он будет пытаться найти совпадения, даже если пользователи неправильно пишут слова или вводят только часть слов из записей сущности.

Исключение объектов помогает справиться с непочтительностью… фразами или словами, которые не должны совпадать. Например, в нашем боте для путешествий мы можем исключить названия городов, в которые мы не предлагаем организацию поездок.



Сборка и управление

Процесс написания или создания голосового бота начнется с вкладки Управление, где вы определите намерения и сущности. Веб-перехватчики и маршрутизация войдут в игру позже.

На вкладке управления можно создавать потоки, а затем страницы для каждого потока.

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

Начальный узел по умолчанию

В узле потока есть три параметра для управления диалогом и тем, как диалог переходит из состояния в состояние.

  • Маршрут по намерениям
  • Создать условие на основе условий
  • Обработка события

Во-первых, самый простой способ управлять состоянием - это выполнять маршрутизацию с помощью намерений.

Для Travel Bot все три потока, в которые мы вступаем, обрабатываются маршрутизатором намерения. На основе обнаруженного намерения можно управлять диалогом.

При наведении указателя мыши на маршрутизаторы с разными намерениями выделяется ссылка на следующий поток.

Переменные и сущности

Следующим шагом является представление переменных или параметров пользователю, о которых говорит бот. В потоке деталей путешествия мы захватываем составные объекты из высказывания пользователя.

После захвата эти объекты могут быть представлены пользователю следующим образом:

You want to travel to $session.params.to_city from  $session.params.from_city ?

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

Сущности и переменная сеанса хранятся в следующем формате:

{"to_city":
{"original":"Lisbon","resolved":
["Lisbon"],"type":""},
"from_city":
{"original":"Moscow","resolved":
["Moscow"],"type":""}} 
{"$session.params.CheckPoint":"true",
"from_city":["Moscow"],
"to_city":["Lisbon"]}

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

Агент Экспорт

Экспорт агента - это не формат ASCII, а двоичный файл. Хотя экспортировать приложение для резервного копирования, совместного использования и управления версиями удобно, использование его в двоичном формате не идеально.

Все другие коммерческие решения позволяют экспортировать компоненты NLU и управления диалогами в формате ASCII.

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





Тестирование и обратная связь

Тестирование можно автоматизировать с помощью тестовых случаев, аналитику можно просматривать прямо из коробки. На изображении ниже показана проверка; с категоризацией по:

  • Информация
  • Предупреждение
  • Ошибка

Бот может хорошо работать при тестировании; но предупреждения могут помочь предотвратить уязвимости при запуске ...

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

Вывод

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

Области, которые я не охватывал, включают расширенное распознавание речи (ASR) или также известное как преобразование речи в текст (STT). Это очень специализированная область, зависящая от языка говорящего. У Google есть огромные объемы данных и ресурсы, которые можно использовать для создания исключительного механизма STT.

Синтез речи (Text To Speech, TTS) - еще одна область, в которой Google преуспеет и предложит пользователям исключительный продукт.

Dialogflow CX кажется продуктом, который делает Google Duplex реальностью для компаний и организаций ...

И все это, конечно, за свою цену ...

Подробнее здесь…