对话流上下文

Dialogflow Context

我遇到了一些问题,我无法从 dialogflow 的上下文访问我的参数,我只是尝试使用 agent.getContextagent.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
}

使用与 V1 或 V2 一致的方法。您可以按如下方式修改代码,它将起作用。我只能这样工作了。

设置上下文:

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

获取上下文

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

我建议在每个事务中不断更新上下文,因为它的生命周期会在您跨越多个事务时自动终止该上下文。