DialogFlow实现-如何同时获取参数的原始值和默认值

时间:2018-12-26 17:54:01

标签: dialogflow chatbot dialogflow-fulfillment

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

例如,如果用户说:“你明天有空吗?”,我想回答:“是的,我们明天有空吗?”但在后端,我需要日期“明天”的值来进行处理。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

首先,如果要捕获@sys.date之类的实体而不是tomorrow的实体,则需要@sys.time实体

现在要问的是,直接提取参数值只会给我们解析的日期值,而不是原始值。
但是,如果我们设置了输出上下文,则可以从该上下文中提取解析的值和预期的原始值。

这是我们在Webhook上获得的请求,我们可以通过解析我们在意图中设置的输出上下文来获取日期和date.original:

  

{“ responseId”:“ ###”,“ queryResult”:{“ queryText”:“您是否打开   明天“,”参数“:{”日期“:” 2018-12-28T12:00:00 + 05:30“},” allRequiredParamsPresent“:true,” fulfillmentText“:”“,” fulfillmentMessages“:[{” text “:{” text“:[”“]}}]],” outputContexts“:[{” name“:”项目/ ### / agent / sessions / ### / contexts / time“,” lifespanCount“:5 ,“参数”:{“日期”:“ 2018-12-28T12:00:00 + 05:30”,“ date.original”:“明天” }}}],“意图”: {“ name”:“项目/ ### / agent / intents / ###”,“ displayName”:“时间意图”},“ intentDetectionConfidence”:1,“语言代码”:“ en”}}}

time-intent

答案 1 :(得分:0)

我还没有尝试过,但是我想您可以使用系统实体Dialogflow system Entities来解析它 如图所示,它们与@ sys.date和示例匹配。我想它将一直处理到日期