如何在响应 json 负载中设置上下文?

How do I set context in the response json payload?

我已经设置了一个 nodeJS 服务器来 return 对 dialogflow webhook 的响应。我希望能够在 JSON 响应中发回上下文,以便对话流逻辑可以移动到对话流中的下一个所需 Intent。

在响应负载中,我尝试插入 "outputContexts" 数组以设置上下文。但是,这不适用于这种形式。下面粘贴了响应 Json。变量 contextName 保存要发回的上下文的期望值。

var simpleResponse = {
  "payload": {
    "google": {
      "expectUserResponse": true,
      "outputContexts": [
        {
          "name": "projects/my-agent-v2/agent/sessions/" + sessionId + "/contexts/" + contextName,
          "lifespanCount": 1,
          "parameters": {
            "param": "param value"
          }
        }
      ],
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "Simple response",
              "displayText": "Simple response"
            }
}]}}}};

控件应该移动到 intent = awaiting_more_details。以上 returned 上下文是此意图的 "input context"。

我希望这能让我了解我想要实现的目标。

您的响应格式错误,outputContexts 数组必须在顶级对象中,在 payload 旁边。请参阅 Dialogflow 的 Discovery document for the authoritative specification: https://www.googleapis.com/discovery/v1/apis/dialogflow/v2beta1/rest