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



我正在Dialogflow上开发POC。我想调用在实现中编写的来自云的Intent函数。

我有一个功能

function description(agent){
}

我已经通过将此功能映射到意图

intentMap.set('DescIntent', description);

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

I.e我如何区分从用户那里得到的响应,是针对我的if条件还是针对我的else-if条件?

如果我能举个例子,我会很高兴的。

由于我是这个话题的新手,如果我采用了错误的方法,请纠正我。

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

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

因此,在您描述的内容中,每个跟进意向都将是发送给您的不同意向。您可以将每个函数映射到不同的函数,也可以让一个函数检查Intent的名称并进行相应的处理。

通常,在向用户发送消息的函数内部没有循环。在功能完成之前,不会向用户发回任何信息。你可能会有一些if/else语句,根据用户本轮所说的话,再加上你可能记得他们过去说过的话,来决定回复,但这不是你在这里描述的。

如果你在description()中根据输入提出不同的问题,并且你需要在稍后的对话中对这些问题做出反应,你可以做两件事之一:

  1. 为每个问题设置不同的上下文。这将使您为每个对问题的是/否回答创建不同的意向,并为处理每个问题回复创建不同的功能。您可以将要匹配的上下文设置为输入上下文。

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

最新更新