首页 > 解决方案 > 对话流上下文

问题描述

我遇到了一些问题,我无法从对话框流的上下文中访问我的参数,我只是尝试使用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
}

标签: dialogflow-esdialogflow-es-fulfillmentinline-editor

解决方案


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

设置上下文:

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

获取上下文

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

我建议继续更新每个事务中的上下文,因为如果您跨越多个事务,它将自动终止该上下文的生命周期。


推荐阅读