Проблема при разборе ответа Dialogflow в AppResponse из-за пустого речевого ответа - PullRequest
0 голосов
/ 10 апреля 2019

Я использую настройку тестового приложения в Google Action. Итак, я сделал новое действие, а затем создал его агент на Dialogflow и Firebase. В агенте Dialogflow я использовал опцию «Восстановить из Zip» в настройках проекта. Теперь все намерения восстановлены.

Я перешел на вкладку выполнения и переключил опцию Webhook, использовал ссылку для webhook и сохранил ее (я использовал ngrok http 5000 в качестве сервера для генерации ссылки на Webhook, которую я должен обновлять при каждом повторном запуске сервера). Теперь я вернулся к своему действию и попытался протестировать мое приложение с симулятора и получил ошибку «Не удалось проанализировать ответ Dialogflow в AppResponse из-за пустого речевого ответа».

Я проверил токен доступа клиента в настройках Агента диалога и вкладке Отладка в симуляторе консоли действий, и оба они были одинаковыми. В консоли ngrok отображается «302 найдено».

302 Найденная ошибка и ошибка 404 Не найден

Я попытался удалить и снова собрать Агента Dialogflow, но результат был тот же.

Это ответ, который генерируется при тестировании моего приложения.

{
  "responseMetadata": {
    "status": {
      "code": 10,
      "message": "Failed to parse Dialogflow response into AppResponse because of empty speech response",
      "details": [
        {
          "@type": "type.googleapis.com/google.protobuf.Value",
          "value": "{\"id\":\"13defd18-3bd2-49f9-832f-c084e2c67a50\",\"timestamp\":\"2019-04-10T13:55:33.587Z\",\"lang\":\"en-us\",\"result\":{},\"status\":{\"code\":206,\"errorType\":\"partial_content\",\"errorDetails\":\"Webhook call failed. Error: Failed to parse webhook JSON response: Expect message object but got: null.\"},\"sessionId\":\"ABwppHFKNCvUrR9vysffVhu2E6smTc7lBCsXs6GKh77cfjRgDjhYBw-voVq5fYcbE0YLoT4KRhE_G8lRiT8lab84FTU0bw\"}"
        }
      ]
    }
  }
}

И это отображается на вкладке «Отладка»

{
  "response": "Archive test isn't responding right now. Try again soon.",
  "expectUserResponse": true,
  "conversationToken": "Eo8CS2s1M0...",
  "audioResponse": "//NExAARSI...",
  "ssmlMarkList": [],
  "debugInfo": {
    "assistantToAgentDebug": {
      "curlCommand": "curl -v 'https://api.api.ai/api/integrations/google?token=749bb0fdf16048d09d1c6109db620061' -H 'Content-Type: application/json;charset=UTF-8' -H 'Google-Actions-API-Version: 2' -H 'Authorization: eyJhbGciOiJSUzI1NiIsImtpZCI6IjZmNjc4MWJhNzExOTlhNjU4ZTc2MGFhNWFhOTNlNWZjM2RjNzUyYjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhdWQiOiJpbnRlcm5ldC1hcmNoaXZlLTg0MTBkIiwibmJmIjoxNTU0OTA3OTAxLCJpYXQiOjE1NTQ5MDgyMDEsImV4cCI6MTU1NDkwODMyMSwianRpIjoiNDNlYmQyNDg2NGFkYTdjZDg5MjBiMjMzOGM1OTFhM2Y2ZTUzMjYzNyJ9.XIhb-qvfBXw1luas0zUIFNZIwIjN1yDsHe9SAQiM2pO9pru6f6rA-lkr2Fk0M2NSQyFa1qVot8Tx7zv8Xd4t0ZEThVw2sTCiWr1Xg4G7s-VN1UbVve9gty2j4IbWxxMdyqmmwzK3h9Q5dC19GgiZkK_e4muAVCIu5tah-OGVqyAWdh2X4WoyooWaLQ3U8TjoojX08vkDqEBkgXZbWOozBIbqhU8S5uJBDj2BG5ddtIEqwIAlmBwfJGCzjLjcdfFNmg9_x-TXz2lHh8x35_LbHWuRWcvlHxWRalSWiPJRV-0MiGp4YLPytYF3ukcaNibLOmg7UOIdlDB52EiIfrqPQQ'  -A 'Mozilla/5.0 (compatible; Google-Cloud-Functions/2.1; +http://www.google.com/bot.html)' -X POST -d '{\"user\":{\"userId\":\"ABwppHE--5IkRBwbhoIw34x3AcE1bsikcwcWHlOhgn0TnFrdWmYlARBBuxXF0Kkw_6_U5QsVRQ78RA5KjrCaeDLhuuLQyw\",\"locale\":\"en-US\",\"lastSeen\":\"2019-04-10T14:53:34Z\"},\"conversation\":{\"conversationId\":\"ABwppHEoy1L0upi8ML-kl2otjumOoWAtXa4v5dOJC3vXXCkoD4EPyjPmtWEG6unJD_8_fO0Ddxwo2T7x5g7LwordBkb-ew\",\"type\":\"NEW\"},\"inputs\":[{\"intent\":\"actions.intent.MAIN\",\"rawInputs\":[{\"inputType\":\"KEYBOARD\",\"query\":\"Talk to archive test\"}]}],\"surface\":{\"capabilities\":[{\"name\":\"actions.capability.MEDIA_RESPONSE_AUDIO\"},{\"name\":\"actions.capability.AUDIO_OUTPUT\"},{\"name\":\"actions.capability.ACCOUNT_LINKING\"},{\"name\":\"actions.capability.WEB_BROWSER\"},{\"name\":\"actions.capability.SCREEN_OUTPUT\"}]},\"isInSandbox\":true,\"availableSurfaces\":[{\"capabilities\":[{\"name\":\"actions.capability.SCREEN_OUTPUT\"},{\"name\":\"actions.capability.WEB_BROWSER\"},{\"name\":\"actions.capability.AUDIO_OUTPUT\"}]}],\"requestType\":\"SIMULATOR\"}'",
      "assistantToAgentJson": "{\"user\":{\"userId\":\"ABwppHE--5IkRBwbhoIw34x3AcE1bsikcwcWHlOhgn0TnFrdWmYlARBBuxXF0Kkw_6_U5QsVRQ78RA5KjrCaeDLhuuLQyw\",\"locale\":\"en-US\",\"lastSeen\":\"2019-04-10T14:53:34Z\"},\"conversation\":{\"conversationId\":\"ABwppHEoy1L0upi8ML-kl2otjumOoWAtXa4v5dOJC3vXXCkoD4EPyjPmtWEG6unJD_8_fO0Ddxwo2T7x5g7LwordBkb-ew\",\"type\":\"NEW\"},\"inputs\":[{\"intent\":\"actions.intent.MAIN\",\"rawInputs\":[{\"inputType\":\"KEYBOARD\",\"query\":\"Talk to archive test\"}]}],\"surface\":{\"capabilities\":[{\"name\":\"actions.capability.MEDIA_RESPONSE_AUDIO\"},{\"name\":\"actions.capability.AUDIO_OUTPUT\"},{\"name\":\"actions.capability.ACCOUNT_LINKING\"},{\"name\":\"actions.capability.WEB_BROWSER\"},{\"name\":\"actions.capability.SCREEN_OUTPUT\"}]},\"isInSandbox\":true,\"availableSurfaces\":[{\"capabilities\":[{\"name\":\"actions.capability.SCREEN_OUTPUT\"},{\"name\":\"actions.capability.WEB_BROWSER\"},{\"name\":\"actions.capability.AUDIO_OUTPUT\"}]}],\"requestType\":\"SIMULATOR\"}",
      "delegatedRequest": {
        "delegatedRequest": ""
      }
    },
    "agentToAssistantDebug": {
      "agentToAssistantJson": "{\n  \"responseMetadata\": {\n    \"status\": {\n      \"code\": 10,\n      \"message\": \"Failed to parse Dialogflow response into AppResponse because of empty speech response\",\n      \"details\": [{\n        \"@type\": \"type.googleapis.com/google.protobuf.Value\",\n        \"value\": \"{\\\"id\\\":\\\"1d8ba08c-783a-4de8-8241-1942da0de46e\\\",\\\"timestamp\\\":\\\"2019-04-10T14:56:42.073Z\\\",\\\"lang\\\":\\\"en-us\\\",\\\"result\\\":{},\\\"status\\\":{\\\"code\\\":206,\\\"errorType\\\":\\\"partial_content\\\",\\\"errorDetails\\\":\\\"Webhook call failed. Error: Failed to parse webhook JSON response: Expect message object but got: null.\\\"},\\\"sessionId\\\":\\\"ABwppHEoy1L0upi8ML-kl2otjumOoWAtXa4v5dOJC3vXXCkoD4EPyjPmtWEG6unJD_8_fO0Ddxwo2T7x5g7LwordBkb-ew\\\"}\"\n      }]\n    }\n  }\n}",
      "delegatedResponse": {
        "delegatedResponse": ""
      }
    },
    "sharedDebugInfoList": [
      {
        "name": "ResponseValidation",
        "debugInfo": "",
        "subDebugEntryList": [
          {
            "name": "MalformedResponse",
            "debugInfo": "Failed to parse Dialogflow response into AppResponse because of empty speech response.",
            "subDebugEntryList": []
          }
        ]
      }
    ]
  },
  "visualResponse": {
    "visualElementsList": [
      {
        "displayText": {
          "content": "Archive test isn't responding right now. Try again soon."
        }
      }
    ],
    "suggestionsList": [],
    "agentLogoUrl": ""
  },
  "clientError": 0,
  "is3pResponse": true,
  "clientOperationList": [],
  "projectName": ""
}

Выход с ошибкой

MalformedResponse
Failed to parse Dialogflow response into AppResponse because of empty speech response.

...