如何调用 Fulfillment 的意图(firebase 的云函数)?

How to call the intent from Fulfilment (cloud function for firebase)?

我正在 Dialogflow 上开发 POC。我想从 fulfillment 中编写的云函数中调用 Intent。

我有一个功能

function description(agent){

}

我已经通过

将此功能映射到意图
intentMap.set('DescIntent', description);

我在描述函数中有 if - else if 循环,每个条件语句都以向用户提问结束,这些问题的答案是 'yes' 或 'NO'。 我可以创建 1 个是和 1 个否的后续意图。但是如何将其映射到我的函数?

即我如何区分用户的响应是针对我的 if 条件还是针对我的 else if 条件?

如果我能得到这个例子我会很高兴我该怎么做。

由于我是这个主题的新手,如果我遵循的方法有误,请指正我。

Dialogflow 中的每个 Intent 处理 用户所说的一件事情

您的 Intent Handler(在您的示例中为 description())负责处理他们所说的一件事,然后将某些内容返回给用户作为答复。

因此,根据您的描述,每个 Followup Intent 都是发送给您的不同 Intent。您可以将每个映射到不同的函数,或者让一个函数检查 Intent 的名称并相应地处理它。

在向用户发送消息的函数中通常没有循环。在函数完成之前,不会将任何内容发送回用户。您可能有一些 if/else 语句根据用户本轮所说的内容以及您可能从他们过去所说的内容中记住的内容来确定回复,但这不是您在此处描述的内容。

如果您在 description() 中根据输入提出不同的问题,并且您需要在稍后的对话中对这些问题做出反应,您可以执行以下两项操作之一:

  1. 为每个问题设置不同的 Context。这将使您可以为问题的每个 yes/no 响应创建一个不同的 Intent,并创建一个不同的函数来处理每个问题的回复。您可以将要匹配的上下文设置为输入上下文。

  2. 您可以创建一个上下文并将上下文中的参数设置为您提出的问题的值。然后,在用户 yes/no 的 Intent 处理程序中,您可以从上下文中获取参数以查看您提出的问题并采取相应的行动。