首页 文章

dialogflow:不明白我如何通过编码检索上下文

提问于
浏览
-1

我有一些我不能理解的东西 .

在这里我想做的情况:

机器人:你好,你想做什么?用户:搜索产品机器人:您在寻找哪种产品?用户:Apple Bot - >与apple匹配的产品列表

这是一个片段代码:

function searchProduct() {
    agent.add('Which product are you looking for ?');
    // receive the product answer 
    //-> then research the matched product in DB
  }

  const intentMap = new Map();
  intentMap.set('I want a product', searchProduct);
  agent.handleRequest(intentMap);

在此代码中,我要求用户提供他正在寻找的产品 . 但当他回答“Apple”时,如何在同一功能中接收用户响应以继续我的过程?

我知道有“上下文”的概念,但为了继续“搜索产品”的过程,我需要回到功能中 .

现在,我使用对话框实现 . 我试着理解这个文档来找到解决方案:https://github.com/dialogflow/dialogflow-fulfillment-nodejs/blob/master/docs/WebhookClient.md

1 回答

  • 0

    简短的回答是你不能(或者,至少不应该)在“相同”的功能中做到这一点 . 每个函数代表一个Intent,或者用户与我们沟通的内容 . 在函数中我们需要执行以下操作:

    • 确定用户对我们说的重要内容 .

    • 根据他们所说的内容计算任何内容 .

    • 根据(1)和(2)向用户发送回复 .

    一旦我们将回复发送给用户 - 那一轮谈话就结束了 . 我们需要等待用户触发下一个Intent,以便我们重复上述操作 .

    使用上下文,因此我们知道我们所处的整个会话的哪个阶段 . 作为我们的回复的一部分(上面的步骤3),我们可以设置一个上下文,它将帮助Dialogflow确定应该触发哪个Intent(因此应该是哪个功能)呼吁处理我们目前所知的事情) . 上下文还可以存储有关对话的先前轮次的信息 .

    请记住,意图不是我们所说的,而是关于用户所说的内容 . 我们发送的回复是基于我们需要的,然后我们将使用单个Intent来捕获每个部分 . 处理Intent的函数会将答案存储在Context中并确定问题的下一部分 .

相关问题