DialogFlow Fulfillment 抛出 "No Response defined for device"

DialogFlow Fulfillment throws "No Response defined for device"

我正在使用 dialogflow-fulfillment npm 包,包括使用:

"dialogflow-fulfillment": "github:dialogflow/dialogflow-fulfillment-nodejs"

我必须这样做,因为 Google 似乎无法将 0.6.2 版本上传到 NPM。 (据说可以修复此错误,但没有)。

显然 DialogFlow 似乎无法意识到它已经在控制台中定义了 Reponses。当我调用 agent.setContext()agent.context.set() 而不通过 agent.add() 添加响应时,我收到一个执行错误:

No Response defined for device: [SOME DEVICE]

即使我定义了静态响应。 agent.setFollowupEvent() 也是如此,但我可以只添加一个空的 Response agent.add(' '),因为它无论如何都不会执行。但是当我使用 .setContext() 执行此操作时,空响应将被中继给用户而不是静态响应。

agent.setFollowupEvent() 的问题似乎在 0.6.2 中已修复,但我没有广泛测试。

在反复失去理智之后,我不得不再次简单地添加控制台中定义的所有Response。我通过遍历 consoleMessages 并添加它们来做到这一点。

for (let response of agent.consoleMessages) agent.add(response);

这似乎适用于所有 Intents,尽管可能需要进一步测试。