Я попытался подключить DialogFlow и Действия в Google, поэтому я создал несколько намерений, подключил службы, добавил явные и неявные вызовы и т. Д., Но когда я пробую использовать бота в симуляторе https://console.actions.google.com/project/[projectIdvisible/simulator/ он всегда выдает ошибку:
«Не удалось проанализировать ответ Dialogflow в AppResponse, возникло исключение с сообщением: Пустой речевой ответ»
даже жесткий inputType был "KEYBOARD".
Что я пробовал до сих пор:
- Я установил «Ответ с этой вкладки будет отправлен в интеграцию с Google Assistant» в диалоговом потоке (нужно ли настраивать его для каждого намерения?), Но я не вижу никаких дополнительных настроек для речи.
- Я отключил второй язык, сначала у меня тоже были намерения на немецком
- Я также отключил Fullfillment Webhook (реализованный в API v1, а затем также v2) без изменений.
- Я нашел только этого пользователя с такой же проблемой https://productforums.google.com/forum/#!topic/dialogflow/xYjKlz31yW0;context-place=topicsearchin/dialogflow/Empty 20 долларов за речь 20 долларов ответа, но без решения.
- флажок выполнения отмечен при намерениях
- Бот отлично работает, когда я использую его с помощью кнопки «Попробовать сейчас» справа в диалоговом потоке или в веб-демонстрации https://bot.dialogflow.com/994dda8b-4849-4a8a-ab24-c0cd03b5f420
К сожалению, в документации ничего не говорится об этой ошибке. Любые идеи?
Вот скриншот ошибки интеграции действий:
Это полный вывод отладки:
{
"agentToAssistantDebug": {
"agentToAssistantJson": {
"message": "Failed to parse Dialogflow response into AppResponse, exception thrown with message: Empty speech response",
"apiResponse": {
"id": "c12e1389-e887-49d4-b399-a332188ca946",
"timestamp": "2018-01-27T03:55:30.931Z",
"lang": "en-us",
"result": {},
"status": {
"code": 200,
"errorType": "success"
},
"sessionId": "1517025330705"
}
}
},
"assistantToAgentDebug": {
"assistantToAgentJson": {
"user": {
"userId": "USER_ID",
"locale": "en-US",
"lastSeen": "2018-01-27T03:55:03Z"
},
"conversation": {
"conversationId": "1517025330705",
"type": "NEW"
},
"inputs": [
{
"intent": "actions.intent.MAIN",
"rawInputs": [
{
"inputType": "KEYBOARD",
"query": "Talk to Mica, the Hipster Cat Bot"
}
]
}
],
"surface": {
"capabilities": [
{
"name": "actions.capability.MEDIA_RESPONSE_AUDIO"
},
{
"name": "actions.capability.WEB_BROWSER"
},
{
"name": "actions.capability.AUDIO_OUTPUT"
},
{
"name": "actions.capability.SCREEN_OUTPUT"
}
]
},
"isInSandbox": true,
"availableSurfaces": [
{
"capabilities": [
{
"name": "actions.capability.AUDIO_OUTPUT"
},
{
"name": "actions.capability.SCREEN_OUTPUT"
}
]
}
]
},
"curlCommand": "curl -v 'https://api.api.ai/api/integrations/google?token=TOKEN' -H 'Content-Type: application/json;charset=UTF-8' -H 'Google-Actions-API-Version: 2' -H 'Authorization: AUTH_TOKEN' -A 'Mozilla/5.0 (compatible; Google-Cloud-Functions/2.1; +http://www.google.com/bot.html)' -X POST -d '{\"user\":{\"userId\":\"USER_ID\",\"locale\":\"en-US\",\"lastSeen\":\"2018-01-27T03:55:03Z\"},\"conversation\":{\"conversationId\":\"1517025330705\",\"type\":\"NEW\"},\"inputs\":[{\"intent\":\"actions.intent.MAIN\",\"rawInputs\":[{\"inputType\":\"KEYBOARD\",\"query\":\"Talk to Mica, the Hipster Cat Bot\"}]}],\"surface\":{\"capabilities\":[{\"name\":\"actions.capability.MEDIA_RESPONSE_AUDIO\"},{\"name\":\"actions.capability.WEB_BROWSER\"},{\"name\":\"actions.capability.AUDIO_OUTPUT\"},{\"name\":\"actions.capability.SCREEN_OUTPUT\"}]},\"isInSandbox\":true,\"availableSurfaces\":[{\"capabilities\":[{\"name\":\"actions.capability.AUDIO_OUTPUT\"},{\"name\":\"actions.capability.SCREEN_OUTPUT\"}]}]}'"
},
"sharedDebugInfo": [
{
"name": "ResponseValidation",
"subDebugEntry": [
{
"debugInfo": "API Version 2: Failed to parse JSON response string with 'INVALID_ARGUMENT' error: \": Cannot find field.\".",
"name": "UnparseableJsonResponse"
}
]
}
]
}
Также "debugInfo" звучит как внутренняя проблема:
"API версии 2: не удалось проанализировать строку ответа JSON с ошибкой" INVALID_ARGUMENT ": \": Не удается найти поле. \ "."
Вот снимок экрана с приветственным намерением:
пс. Мне понадобился ВОЗРАСТ, чтобы понять, что
"Отсутствует шаблон запроса для особого намерения"
означает - поэтому я просто документирую это здесь: В диалоговом потоке - Намерение - «Пользователь говорит» вам нужно ДВОЙНЫМ ЩЕЛЧКОМ по слову в поле ввода текста, если вы хотите установить его как параметр запроса - который, кажется, требуется для действий на Google.