【问题标题】:Dialogflow fulfillment doesn't work after intent is already mapped已映射意图后,Dialogflow 实现不起作用
【发布时间】:2023-04-01 23:40:01
【问题描述】:

我刚开始学习对话流,我正在按照指令here 来实现意图。但是,即使它看起来是正确的,我也无法让它工作,我做错了什么?

我在启用 webhook 的情况下创建购买汽车意图:

Fulfillment 已启用且 Intent 已映射:

  function BuyCar(agent) {
    agent.add(`Sure I can help you with that`);
    agent.add(`Web hook response`);
    agent.end("");
  }
  
  let intentMap = new Map();
  intentMap.set('Default Welcome Intent', welcome);
  intentMap.set('Default Fallback Intent', fallback);
  intentMap.set('Buy-Car', BuyCar);
  agent.handleRequest(intentMap);

没有反应的想法:

在诊断中,它给出了这个错误:

我做错了什么?

log中也出现如下错误,是什么意思?

【问题讨论】:

  • 我用经过“买车”语句训练的测试意图尝试了你的代码,它对我来说效果很好。您也可以显示您的 package.json 吗?您是否还使用this git example 作为您的基本代码?
  • 嗨,Ricco,我能够通过删除多重响应来修复它,dialogflow 不支持多重响应吗?代理.add(Sure I can help you with that); agent.add(Web hook response);
  • 我觉得这很奇怪。我还没有遇到与多个响应相关的任何错误。您可以针对多个回答创建一个与您的问题相关的新问题。
  • 啊,我想这是因为我用来测试它的 Web Demo 不支持富文本或多响应,这很愚蠢,因为这是谷歌最简单的内置测试平台。
  • 我明白了,是的,documentation 表明了这一点。您可以尝试在其他集成上进行测试,例如 Dialogflow messenger 或位于 dialogflow 控制台右侧的测试控制台,以确保。

标签: dialogflow-es dialogflow-es-fulfillment


【解决方案1】:

该错误是在 Dialogflow 控制台提供的 Web Demo 中测试多行响应引起的。网络演示仅限于“单一文本响应”。参考Web Demo limitations。

如果响应是多行或包含丰富的消息,一种可能的解决方法是在位于 Dialogflow 控制台右侧的“测试控制台”中执行测试,或者尝试使用不同的集成,例如 Dialogflow Messenger。

【讨论】:

    猜你喜欢
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多