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

Так же, как вы сказали бы Привет своему другу, прежде чем поговорить с ним, вызов агента на платформе действий выполняется таким же образом - это запускает взаимодействие с нашим агентом в разговорной манере. На данный момент это пользователь, запрашивающий разговор с нашим агентом - этот вызов обнаруживается с помощью узнаваемых терминов, которые мы определяем в консоли Dialogflow. Это позволяет нам, как разработчикам, определять способ начала нашего разговора.

Намерение - это конкретное действие, которое пользователь может вызвать, используя один из терминов, определенных в консоли Dialogflow. Например, пользователь может спросить: «Сегодня будет дождь?» или «Где находится ближайшая пиццерия?» - если эти термины определены в консоли, они будут обнаружены Dialogflow, и будет запущено намерение, указанное в разделе.

Список определенных намерений для вашего агента можно найти, перейдя к элементу навигации Намерения в меню слева в консоли.

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

В рамках нашего намерения мы можем определить список параметров Говорит пользователя - это позволяет нам определять различные фразы, которые может произносить пользователь, чтобы вызвать наше намерение. Этот список параметров, которые говорят пользователи, можно найти, перейдя к желаемому намерению:

Чем больше опций User Says мы определим, тем легче пользователям будет вызвать желаемое намерение. Выше вы можете увидеть список различных вариантов, но я мог бы расширить его еще больше. Например, если вы говорите о желании научиться играть на гитаре, предложение может начинаться со многих различных слов, требующих действия:

  • Покажи мне, как играть аккорд
  • Научи меня играть на аккордах
  • Подскажите, как играть аккорд
  • Можете ли вы научить меня играть на аккорде?
  • Я хочу знать, как играть аккорд
  • Я хочу научиться играть на аккордах
  • Как сыграть аккорд

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

Сущность - это свойство, которое может использоваться Dialogflow для ответа на запрос пользователя - сущность обычно будет ключевым словом в запросе, таким как имя, дата, местоположение и т. Д. Когда пользователь говорит или вводит свой запрос, Dialogflow будет найдите объект, и значение данного объекта может быть использовано в запросе.

Dialogflow уже содержит набор предопределенных системных сущностей, которые можно использовать при построении намерения. Если этого недостаточно, у нас также есть возможность определять наши собственные сущности для использования в наших намерениях. Мы можем определить эти сущности в консоли Dialogflow - снимок экрана ниже демонстрирует это:

В левой части вы определяете значение для Entity, это значение, которое будет использоваться, когда Entity обнаруживается системой. А с правой стороны находятся синонимы для каждого значения - это позволяет нам определять различные фразы, которые можно использовать для объекта, что позволяет нам повысить шансы на распознавание запроса пользователя.

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

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

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

Я надеюсь, что такое разбиение понятий помогло заложить фундамент знаний, когда дело доходит до Dialogflow, помогая вам с уверенностью перейти на панель инструментов и начать создавать собственного агента 🙂

Я хотел бы поговорить о Dialogflow или о том, что вы прочитали в этой статье. Не стесняйтесь писать мне твит или оставлять отзывы ниже!