Как захватить пользовательский текст с помощью Dialogflow - PullRequest
0 голосов
/ 14 января 2019

Я работаю над созданием нового бота для чата Google. Кажется, что использование Dialogflow может быть лучшим инструментом для этого. (Пожалуйста, сообщите иначе, если я ошибаюсь). Цель состоит в том, чтобы иметь возможность создать бота Q & A, который может получить полный ответ пользователя в качестве ответа.

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

Бот, которого я хочу создать, должен иметь возможность вести следующую беседу: (B: Bot, U: User)

U: I would like to work remotely today.
B: Ok, please let us know what you will be working on today
U: I will be completing task A, B and C
B: Great, your team has been notified that you will be completing task A, B and C.

или

U: I will be in the office late today
B: Sure, what time do you think you will be in the office?
U: Before 2pm
B: Great, your team has been notified you will be in the office before 2pm

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

Ответы [ 2 ]

0 голосов
/ 14 января 2019

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

Например, вы можете сделать намерение work_remotely с пользовательскими фразами I would like to work remotely today, I would like to work remotely today and will be working on tasks A, B and C.
Назначьте параметр @sys.any и выделите A, B and C. Кроме того, вы можете пометить этот параметр как обязательный и предоставить приглашение Ok, please let us know what you will be working on today, для которого пользователь будет отвечать задачами, над которыми он работает. Наконец бот захватит значение параметра и даст ответ Great, your team has been notified that you will be completing task $parameter_value.

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

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

0 голосов
/ 14 января 2019

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

Итак, в вашем первом примере вы, вероятно, захотите подобрать фразы, такие как

  • Я буду [выполнять задания A, B и C]
  • Я [работаю над D]
  • Вероятно [продолжение с E и F]

Части, которые я пометил [скобками], действительно являются теми частями, которые вы хотите, а остальные компоненты ответа семантически совпадают. Вы можете пометить каждую из этих частей с помощью @sys.any, что напоминает регулярное выражение .* (но не совсем).

Для вашего второго примера вам может потребоваться несколько Интентов, соответствующих вашему ответу. Помните: Содержание соответствует тому, что говорит пользователь, а не тому, как вы обрабатываете этот ответ .

Одно намерение может собирать конкретные ответы со временем, например:

  • Когда-нибудь [после] [14:00]
  • [Вокруг] [3]
  • [Не раньше] [1:30]
  • Вероятно [нет] [сегодня]

Каждый из них имеет два параметра: один - время, а другой - фраза относительно этого времени.

Вы также можете иметь другие намерения с такими фразами, как

  • Это зависит
  • я не знаю

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

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

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