Создание чат-ботов с Dialogflow, Watson, ChatterBot и Rasa - страница 4
Например, в обучающей фразе мы может промаркировать системной сущностью число пицц или время.
При создании сущностей необходимо помнить несколько вещей, чтобы хорошо обучить агента.
Во-первых, важно быть последовательным при маркировке сущностей в обучающих фразах.
Это поможет агенту не запутаться в том, что следует опознать в качестве данной сущности.
Например, не нужно включать предлоги в маркировку в обучающей фразе.
И нужно указать разнообразие примеров конкретной сущности в обучающих фразах.
Это позволит агенту правильно научиться распознавать эту сущность.
Dialogflow
. Контекст и выполнение
Вы когда-нибудь сталкивались с ситуацией, когда вы подходите к группе людей, и вы ловите себя на том, что пытаетесь понять, о чем они говорят?
Или если к вам приходит друг и говорит: «А как насчет завтра?»
Вы, вероятно, спросите: «Что ты имеешь в виду?»
И в этих случаях вы пытаетесь понять контекст.
То же самое происходит с чат-ботами, которым нужно знать в каком контексте пользователь общается с чат-ботом.
Например, я спрашиваю: «Что там сегодня на обед?»
И получаю в ответ: «Сэндвич».
Тогда, если я спрошу: «А как насчет ужина?», я ожидаю, что другой человек знает, что я имею в виду то, что мы собираемся съесть, а не то, во сколько мы должны отправиться на обед.
Эти сведения могут быть предоставлены агенту через контекст.
Контекст позволяет агенту отслеживать, где находится пользователь в диалоге.
В Dialogflow, контекст – это средство для приложения восстановить значения переменных, которые были упомянуты в диалоге.
И контекст позволяет агенту контролировать потоки диалога.
Это можно сделать, определив конкретные состояния, в которые диалог должен находиться в случае совпадения с конкретным намерением.
Давайте посмотрим пример того, как добавить контекст к намерению.
Здесь мы создадим два новых намерения для отрицательных и положительных ответов и добавим к ним контекст.
Но для начала, добавим ответ в намерение order.pizza.
И не забудем нажать кнопку сохранения.
Теперь, когда мы зададим вопрос, «Могу ли я получить пиццу?»
Агент ответит «Конечно. Хотели бы вы получить напиток с вашим заказом?».
И если я просто наберу ответ «Да», агент на самом деле не будет знать, что делать.
Вернемся на страницу «намерения» и создадим новое намерение.
Назовем это новое намерение «Заказать пиццу и дополнительно напиток – да».
Нажмем кнопку сохранения и вернемся в намерение order.pizza.
И здесь создадим выходной контекст pizza-upsell и сохраним намерение.
И когда мы это сделаем, вы можете заметить, что к контексту добавилось число 5, и это означает продолжительность жизни контекста.
Таким образом, этот контекст будет активным для пяти взаимодействий.
Теперь, мы можем предоставить этот же контекст, как входной контекст для нашего нового намерения.
Добавим контекст pizza upsell в качестве входного контекста в это намерение.
Таким образом, при повторном заказе, когда пользователь закажет пиццу, агент распознает намерение, и активирует этот контекст.
А затем агент прослушает ответ и попытается определить, это да или нет.
И мы создадим такое же намерение для отрицательного ответа, и этим же контекстом в качестве входного контекста.
Теперь у нас есть два намерения, но нам нужно добавить для них обучающие фразы.
Для намерения нет, мы добавим фразы с отказом, а для намерения да, мы добавим подтверждающие фразы.