Как получить данные во время разговора в диалоговом потоке, используя библиотеку выполнения, а не действия-google

Я пытаюсь получить все параметры сразу в диалоговом потоке, используя библиотеку диалогового потока вместо использования action-google.

Возможно ли это сделать?

Мой код похож на -:

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
let conv= agent.conv();

function welcome(agent) {

let date = new Date();
var curHr = date.getHours();

if(curHr.toString() < 12)
{
  agent.add('Hello, Good Morning!');

}
else{
    agent.add('Hello, Hope you are having good day!');
}
}

function fein(agent){
const fein = agent.parameters.fein;
const name = agent.parameters['business-name'];
conv.user.storage = {
     fein: fein
  };


agent.add(conv.user.storage.fein.toString());
}

Но не удалось получить вывод.

Я не уверен, что делаю это правильно, пожалуйста, помогите, как это сделать.


person Ridhima Garg    schedule 13.11.2019    source источник


Ответы (1)


Прежде чем использовать объекты user.storage, вы должны проверить, нужны ли вам сохраненные данные для хранения между разговорами. Если вам нужно, чтобы данные были доступны только в рамках текущего разговора, проще использовать конв.данные.

Если вам нужно, чтобы информация сохранялась между несколькими разговорами, используйте conv.user.storage. При использовании conv.user.storage убедитесь, что пользователи включили параметр История приложений и веб-поиска и установили флажок Включить историю Chrome в управление действиями.

введите здесь описание изображения

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

person Jordi    schedule 13.11.2019
comment
Хорошо, но мой объект агента в приведенном выше коде относится к webhookClient, а не к библиотеке действий в Google. Будет ли conv.data работать для объекта агента? - person Ridhima Garg; 13.11.2019
comment
Я почти уверен, что conv.data работает и для Dialogflow, если вы вызываете agent.conv(); - person Jordi; 13.11.2019
comment
Я попробовал conv.data.fein = fein, но не смог вывести какое-либо сообщение. - person Ridhima Garg; 13.11.2019
comment
Я могу видеть вывод в console.actions.google.com, но не в тестовой консоли, также не на интегрированном веб-сайте. Я интегрировал чат-бота с помощью kommunicate. - person Ridhima Garg; 13.11.2019
comment
Ах, хорошо, я не уверен, работает ли это для других интеграций, глядя на документацию, похоже, что agent.conv — это встроенная интеграция с Google Assistant. Так что это объясняет, почему он не работает для общения. dialogflow.com/docs/reference/fulfillment- библиотека/ - person Jordi; 13.11.2019
comment
Я до сих пор не могу понять, какие шаги нужно предпринять. Пожалуйста, предложите, если что. - person Ridhima Garg; 14.11.2019