Как создать форму поиска с диалоговым потоком - PullRequest
0 голосов
/ 20 ноября 2018

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

Как следует структурировать этот тип намерения (или набор намерений)?Мы пробовали одно намерение с несколькими параметрами, но нам не нужно, чтобы все они были обязательными.Мы также написали функцию JavaScript для выполнения, но как мы можем сообщить обратному потоку диалогов о том, нужна ли нам дополнительная информация?

Большое спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

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

Поскольку вы этого не сделаете - вам нужен другой подход.

Это может быть сделано с одним намерением, хотя вы можете обнаружить, что несколько намерений облегчают его в некоторых отношениях. Подход в целом такой же:

  • Когда вы задаете вопрос, убедитесь, что вы установили Исходящий контекст с относительно коротким сроком жизни (2-3 - это хорошо), чтобы указать, что вы собираете информацию о пользователе.
  • Создайте намерение (или намерения) с примерами фраз, которые содержат необходимую вам информацию.
    • Некоторые из них будут иметь очевидные типы объектов (номер телефона и почтовый индекс), в то время как другие будут более сложными (имя имеет системный тип объекта, но оно не включает все возможные имена).
    • Вам нужно будет создать примеры фраз, которые собирают параметры самостоятельно, а также фразы, которые имеют смысл. Вы лучший судья в этом, и вам, вероятно, следует написать несколько примеров разговоров, прежде чем писать фразы.
  • В своем исполнении вы выясните, достаточно ли у вас информации.
    • Если вы это сделаете, вы можете ответить и очистить контекст, который был установлен. (Очистка важна, чтобы Dialogflow снова не совпадал с намерением сбора информации.)
    • Если вы этого не сделаете, вы можете добавить имеющуюся информацию в качестве параметров в контекст, чтобы сохранить ее для дальнейшей обработки, убедиться, что вы сбрасываете срок действия контекста (чтобы он не истек) и предлагать пользователю ввести Дополнительная информация. Опять же, если вы заранее поучаствуете в разговоре, то здесь вам помогут.
0 голосов
/ 20 ноября 2018

Слот для заполнения предназначен для этой цели.

Надеюсь, это поможет.

Пожалуйста, оставьте больше кода / деталей, чтобы ответы были более конкретными.

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