【问题标题】:DialogFlow Fulfilment - How to get both original and default value for a parameterDialogFlow Fulfillment - 如何获取参数的原始值和默认值
【发布时间】:2018-12-26 17:54:00
【问题描述】:
我正在尝试从 $time 和 $time.original 的意图中获取时间值。我需要 $time 值对其进行一些处理,并且我需要 $time.original 将输出显示给用户。
例如,如果用户说“你明天营业吗?”,我想回答“是的,我们明天营业吗?”但在后端,我需要日期“明天”的值来进行处理。
任何帮助将不胜感激。
【问题讨论】:
标签:
dialogflow-es
chatbot
dialogflow-es-fulfillment
【解决方案1】:
首先,如果您想获取 tomorrow 等实体的值而不是 @sys.time,则需要 @sys.date 实体
现在问题来了,直接提取参数值只会给我们解析的日期值,而不是原始值。
但是,如果我们设置一个输出上下文,那么我们可以从该上下文中提取解析值和原始值。
这是我们在 webhook 上获得的请求,我们可以通过解析我们在 Intent 中设置的输出上下文来获取日期和 date.original:
{"responseId":"###","queryResult":{"queryText":"你打开了吗
明天","参数":{"date":"2018-12-28T12:00:00+05:30"},"allRequiredParamsPresent":true,"fulfillmentText":"","fulfillmentMessages":[{"text ":{"text":[""]}}],"outputContexts":[{"name":"projects/###/agent/sessions/###/contexts/time","lifespanCount":5 ,"参数":{"date":"2018-12-28T12:00:00+05:30","date.original":"明天"}}],"intent": {"name":"projects/###/agent/intents/###","displayName":"time-intent"},"intentDetectionConfidence":1,"languageCode":"en"}}