Не удалось проанализировать ответ Dialogflow в AppResponse из-за пустого речевого ответа, когда размер ответа превышает 1021 символ

Я разрабатываю действие Google с выполнением Dialogflow и у меня странная ошибка. В какой-то момент ответ неправильно анализируется в AppResponse, хотя он правильно сформирован.

Единственное отличие, кажется, размер. Я измерил размер и обнаружил, что когда ответ JSON от backend превышает 1021 символ (достаточно одного символа в тексте), он дает мне эту ошибку:

Не удалось проанализировать ответ Dialogflow в AppResponse из-за пустого речевого ответа

Воспроизводимо добавлять только один дополнительный символ в тексте ответа, и это приводит к сбою ответа.

Я не могу найти никаких ограничений по размеру относительно ответа JSON. Все ограничения в ответном тексте и карточке достаточны для моего примера.

{
"payload": {
    "google": {
        "expectUserResponse": true,
        "richResponse": {
            "items": [
                {
                    "simpleResponse": {
                        "textToSpeech": "328 characters here"
                    }
                },
                {
                    "basicCard": {
                        "title": "39 characters",
                        "subtitle": "16 characters",
                        "formattedText": "82 characters here"
                    }
                }
            ],
            "suggestions": [
                {
                    "title": "13 characters"
                },
                {
                    "title": "14 characters"
                },
                {
                    "title": "6 characters"
                }
            ]
        }
    }
},
"outputContexts": [
    {
        "name": "default",
        "lifespanCount": 99,
        "parameters": {
            "data": "54 characters"
        }
    }
]
}

1 ответ

Эта проблема была связана со сжатием сервера NodeJS Express в сочетании со шлюзом API AWS. После определенного порога сервер Express активирует кодировку содержимого GZIP, которую AWS API Gateway не понимает. Отключение сжатия решило проблему.

Другие вопросы по тегам