小编phn*_*ngs的帖子

无法在Dialogflow实现中读取上下文(突然未定义)

我们使用google cloud功能作为webhook构建了一个Dialogflow代理,该代理可以正常运行直到昨天晚上。那时,我导出了代理,之后又重新导入,它工作了一段时间。

停止工作的是,即使根据UI和原始API响应设置了上下文,agent.context.get('...');(也agent.getContext('...'))确实会返回undefined

例如,我有一个意图,该意图具有必需的slot shop,启用了用于填充插槽的webhook。当我测试代理时,命名的意图info正确匹配,并且上下文info_dialog_params_store似乎也存在:

意图

根据原始API响应,这是输出上下文的一部分:

"outputContexts": [
      {
        "name": "projects/MYAGENTNAME/agent/sessions/0b753e8e-b377-587b-3db6-3c8dc898879b/contexts/info_dialog_params_store",
        "lifespanCount": 1,
        "parameters": {
          "store": "",
          "store.original": "",
          "kpi": "counts",
          "date_or_period": "",
          "kpi.original": "trafico",
          "date_or_period.original": ""
        }
      }
Run Code Online (Sandbox Code Playgroud)

在webhook中,我将意图正确地映射到js函数:

let intentMap = new Map();
intentMap.set('info', info);
agent.handleRequest(intentMap);
Run Code Online (Sandbox Code Playgroud)

info函数的第一行如下所示:

function info(agent) {
    store_context = agent.context.get('info_dialog_params_store');
}
Run Code Online (Sandbox Code Playgroud)

哪个返回

TypeError: Cannot read property 'get' of undefined
    at info (/user_code/index.js:207:36)
    at WebhookClient.handleRequest (/user_code/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:303:44)
    at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/user_code/index.js:382:9)
    at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:57:9)
    at /var/tmp/worker/worker.js:762:7 …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform dialogflow-es dialogflow-es-fulfillment

5
推荐指数
2
解决办法
980
查看次数