Dialogflow es 使用输出上下文响应操作特定上下文

Dialogflow es 使用输出上下文响应操作特定上下文,dialogflow-es,actions-on-google,dialogflow-es-fulfillment,Dialogflow Es,Actions On Google,Dialogflow Es Fulfillment,我目前正在尝试使用webhook响应更改我的一个上下文的特定值,根据我所做的,以下内容应该可以工作: { "fulfillmentText": ${textToSpeech}, "fulfillmentMessages": [{ "text": { "text": [${text}] } }], "payload": { "google": {

我目前正在尝试使用webhook响应更改我的一个上下文的特定值,根据我所做的,以下内容应该可以工作:

       {
            "fulfillmentText": ${textToSpeech},
            "fulfillmentMessages": [{ "text": { "text": [${text}] } }],
            "payload": {
                "google": {
                    "expectUserResponse": true,
                    "richResponse": {
                        "items": [
                            {
                                "simpleResponse": {
                                    "textToSpeech": ${textToSpeech},
                                    "displayText": ${text}
                                }
                            }
                        ],
                        "suggestions": ${suggestions},
                        "linkOutSuggestion": {
                            "destinationName": "Feedback",
                            "url": ${feedbackURL}
                        }
                    }
                }
            },
            "outputContexts": [
                {
                  "name": "projects/${projectID}/agent/sessions/${conversationID}/contexts/${context}",
                  "lifespanCount": 15,
                  "parameters": { 
                    "param":"value"
                   }
                }]
        }

但是,这不会更改该上下文中指定的任何参数。我是否做得不正确,或者是否有更好的方法使用webhook响应更改输出上下文的参数?

您可能需要检查传入上下文的命名方式

姓名可以有:

  • projects//agent/sessions//context/
  • projects//agent/environments//users//sessions//context//
如果上下文使用第二种格式(包括环境和用户ID),则需要创建具有类似名称的上下文

具体地说,您认为
/contexts/
之前的部分应该与中提供的完整会话字符串匹配,您猜,该字符串与以下两种模式之一匹配:

  • projects//agent/sessions/
  • projects//agent/environments//users//sessions//

    • 刚刚设法解决了这个问题。 我没有尝试创建自己的输出上下文,而是操作了
      req.body.queryResult.outputContexts
      中的值

      例如:
      req.body.queryResult.outputContexts[0]。参数。param=“value”

      然后用原始outputContext发送响应

      {
                  "fulfillmentText": ${textToSpeech},
                  "fulfillmentMessages": [{ "text": { "text": [${text}] } }],
                  "payload": {
                      "google": {
                          "expectUserResponse": true,
                          "richResponse": {
                              "items": [
                                  {
                                      "simpleResponse": {
                                          "textToSpeech": ${textToSpeech},
                                          "displayText": ${text}
                                      }
                                  }
                              ],
                              "suggestions": ${suggestions},
                              "linkOutSuggestion": {
                                  "destinationName": "Feedback",
                                  "url": ${feedbackURL}
                              }
                          }
                      }
                  },
                  "outputContexts": ${req.body.queryResult.outputContexts}
              }
      

      谢谢你的资源。我使用的是第一种方法,但仍然不确定实际问题是什么,但我的修复似乎有效,所以它很好。