Контекст диалогового потока - PullRequest
2 голосов
/ 02 марта 2020

У меня возникла проблема, я не могу получить доступ к своим параметрам из контекста в диалоговом потоке, я просто пытаюсь использовать agent.getContext и agent.context.get, но все еще не работает.

есть мой код для установки контекста

function noTelp(agent){
const telp = agent.parameters.phoneNumber;

let query = db.collection('pelanggan').where('no_telp','==',telp);
return query.get().then(snapshot => {
    if (snapshot.empty) {
      agent.add('Mohon Maaf data no telepon '+telp+' tidak ditemukan');
      agent.add('untuk menambahkan data kamu silahkan tuliskan nama kamu');
      agent.setContext({     >set the context
        name : 'tambahData',
        lifespan : 2,
        parameters : {noTelp : telp}
      });
      console.log('No matching documents.');
      return;
    }
}

и это для вызова контекста

function tambahData(agent){
   const context = agent.getContext('tambahData'); >get the context
   const telp = context.parameters.noTelp; >get the parameters from context
   const nama = agent.parameters.nama;

   agent.add(nama+telp); >test calling parameters
}

1 Ответ

0 голосов
/ 02 марта 2020

Использовался согласованный метод из V1 или V2. Вы можете изменить код, как показано ниже, он будет работать. Мне удалось работать только так.

Настройка контекста:

agent.context.set({
        name: 'global_main_context',
        lifespan: 5,
        parameters: param
    });

Получение контекста

let globalContext = agent.context.get('global_main_context');

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

...