Dialogflow上下文突然未定义

时间:2019-03-07 09:10:50

标签: google-cloud-platform dialogflow dialogflow-fulfillment

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

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

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

Intent

根据原始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": ""
        }
      }

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

let intentMap = new Map();
intentMap.set('info', info);
agent.handleRequest(intentMap);

info函数的第一行如下:

function info(agent) {
    store_context = agent.context.get('info_dialog_params_store');
}

哪个返回

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
    at /var/tmp/worker/worker.js:745:11
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickDomainCallback (internal/process/next_tick.js:128:9)

我非常确定,除了进行一些重构之外,我没有更改任何可能影响代理正常工作的内容。

我还尝试了激活和停用beta功能,因为我看到环境可能存在问题,但这并没有改变任何东西。

有人知道我可以朝哪个方向进一步调查?

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我解决了它,更新了package.json中的dialogflow-fulfillment:

来自“ dialogflow-fulfillment”:“ ^ 0.5.0” 到“实现对话流”:“ ^ 0.6.0”

答案 1 :(得分:1)

实际上,我可以通过以下“魔术”步骤对其进行修复:

  • 将我的原始功能复制到文本文件中
  • 将原始示例代码复制并粘贴到GUI实现代码编辑器(Code on GitHub
  • 部署功能
  • 为我的 x = -3.5 int(x) --> -3.0 x - int(x) --> (-3.5) - (-3.0) = -0.5 函数创建了一个最小示例:
info
  • 对其进行了测试,并且有效
  • 复制我的原始代码
  • 一切都很好

答案 2 :(得分:1)

我通过关闭“测试版功能”解决了该问题 enter image description here