DialogFlow Fulfillment - 如何获取参数的原始值和默认值

DialogFlow Fulfilment - How to get both original and default value for a parameter

我正在尝试从 $time 和 $time.original 的意图中获取时间值。我需要 $time 值对其进行一些处理,我需要 $time.original 将输出显示给用户。

例如,如果用户说 'are you open tomorrow?',我想回复 'Yes, we are open tomorrow?' 但在后端,我需要日期 'tomorrow' 的值来进行处理。

如有任何帮助,我们将不胜感激。

我还没有尝试过,但我想你可以用它的系统实体来解析它 Dialogflow system Entities 正如他们显示的@sys.date 和示例与您需要的相匹配。我猜它会把它处理成 date

首先,如果您想捕获 tomorrow 而不是 @sys.time

等实体的值,则需要 @sys.date 实体

现在进入问题,直接提取参数值只会得到解析后的日期值,而不是原始值。
但是如果我们设置一个输出上下文,那么我们可以从那个上下文中提取解析值和原始值。

这是我们在 webhook 上获得的请求,我们可以通过解析我们在意图中设置的 output-context 来获取日期和 date.original:

{"responseId":"###","queryResult":{"queryText":"are you open tomorrow","parameters":{"date":"2018-12-28T12:00:00+05:30"},"allRequiredParamsPresent":true,"fulfillmentText":"","fulfillmentMessages":[{"text":{"text":[""]}}],"outputContexts":[{"name":"projects/###/agent/sessions/###/contexts/time","lifespanCount":5,"parameters":{"date":"2018-12-28T12:00:00+05:30","date.original":"tomorrow"}}],"intent":{"name":"projects/###/agent/intents/###","displayName":"time-intent"},"intentDetectionConfidence":1,"languageCode":"en"}}