【问题标题】:How to store data in conversation using Dialogflow webhook如何使用 Dialogflow webhook 在对话中存储数据
【发布时间】:2018-09-11 02:36:14
【问题描述】:

我正在使用 dialogflow webhook 并希望在对话中存储数据。

以下是我从dialogflow docs了解到的

response.setHeader('Content-Type', 'application/json');
   response.send(JSON.stringify({
    "payload": {
        "google": {
          "expectUserResponse": true,
          "richResponse": {
            "items": [
              {
                "simpleResponse": {
                  "textToSpeech": "OKAY"
                }
              }
            ]
          }, 
          "conversationToken" : "count=1"
        }
      }
   }))

这不起作用,因为来自下一个请求的 JSON 没有此存储值。

【问题讨论】:

    标签: dialogflow-es


    【解决方案1】:

    您可以查看我的完整答案here。 简而言之,使用上下文来存储参数。

    使用输出上下文保存参数

    {  
      "fulfillmentText":"This is a text response",
      "fulfillmentMessages":[  ],
      "source":"example.com",
      "payload":{  
        "google":{  },
        "facebook":{  },
        "slack":{  }
      },
      "outputContexts":[  
        {  
          "name":"<Context Name>",
          "lifespanCount":5,
          "parameters":{  
            "<param name>":"<param value>"
          }
        }
      ],
      "followupEventInput":{  }
    }
    

    【讨论】:

    • lifespanCount 可以使用的最大值是多少?
    • 我从没用过超过4次。默认情况下,Dialogflow设置为5次。
    • 我们已经使用250 来处理最后渴望的上下文。无论如何,最大值都不是问题,因为您可以随时刷新该值,因此您可以将上下文设置为 5 生命周期并在所有 webhook 调用中刷新它,例如,它永远不会死。
    • 我们保存在上下文中的这个参数会在上下文的生命周期后丢失,对吧?我们如何在一次对话中保存数据,就像 conv.data 以防 actions-on-google conversation 对象?
    • 创建一个不会在意图调用中使用的上下文并设置一个大的生命周期
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多