Использование значений параметров из разных намерений в диалоге - PullRequest
1 голос
/ 12 апреля 2020

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

  const {last_name, street, house_no, 
         zip_code, birthdate, 
          email} = agent.parameters;

На выходе функции параметры помечены как «неопределенные». Я думаю, потому что agent.parameters ссылается только на намерение, которое вызывает веб-крючок, он не захватывает значения параметров из всех других намерений. Есть ли способ, как получить значения параметров из других намерений?

1 Ответ

0 голосов
/ 12 апреля 2020

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

1-е намерение

  const {last_name, street, house_no, 
     zip_code, birthdate, 
      email} = agent.parameters;

agent.context.set('context_name', 5, {'lastName' : last_name, 'street': street});

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

2nd Intent

const context = agent.context.get('context_name');
const lastName = context.parameters.lastName;
const street = context.parameters.street;
...