Как получить трассировку стека в журналах действий Google, потому что 'final_response' должен быть установлен бесполезно - PullRequest
0 голосов
/ 27 августа 2018

Отладка в действиях на гугле это ад.Единственная полезная вещь, которую нужно сделать, - это если вы отлаживаете в тестовую консоль Dialogflow , потому что там вы можете точно увидеть, где произошла ошибка.Но здесь вы просто получаете MalformedResponse: должен быть установлен 'final_response'. Есть ли способ распечатать console.log , чтобы вы могли видеть хотя бы в Logs Viewer что прошло, а что нет?

Потому что из этого вы не видите ничего, что пошло не так, кроме того, что conv.ask не выполнил или я что-то упустил?

 insertId: "id"  
 labels: {
  channel: "preview"   
  querystream: "GOOGLE_USER"   
  source: "JSON_RESPONSE_VALIDATION"   
 }
 logName: "projects/0/logs/actions.googleapis.com%2Factions"  
 receiveTimestamp: "2018-08-27T08:01:46.632208192Z"  
 resource: {
  labels: {
   action_id: "actions.intent.TEXT"    
   project_id: "avant2goassistant"    
   version_id: ""    
  }
  type: "assistant_action"   
 }
 severity: "ERROR"  
 textPayload: "MalformedResponse: 'final_response' must be set"  
 timestamp: "2018-08-27T08:01:46.605934393Z"  
 trace: "projects/0/traces/0"  

1 Ответ

0 голосов
/ 27 августа 2018

Есть много мест, где можно исследовать, если вы получаете эту ошибку.

Сначала проверьте очевидное - у вашего намерения есть выполнение. В нижней части вашего намерения убедитесь, что включен параметр «Включить вызов webhook для этого намерения».

enter image description here

Если вы уверены в этом, проверьте журналы вашего webhook. Вы не указали, как и где работает ваш webhook, поэтому я не могу дать подробные инструкции по этому вопросу, но если вы используете встроенный редактор Dialogflow, вы можете просмотреть журналы в Firebase. Убедитесь, что не выдается ошибка.

Я часто запускаю тестирование локально (используя firebase serve --only functions) и использую ngrok для обеспечения безопасного туннеля. ngrok также предоставляет инспектора протокола, который позволит вам посмотреть ответ, который вы отправляете обратно в Dialogflow.

Если у вас все еще есть проблемы, вы можете включить ведение журнала Dialogflow в Google Cloud. Это на экране настроек (под значком шестерни для вашего проекта) и внизу. По умолчанию он отключен - включите его, и вы можете перейти по ссылке, чтобы увидеть, где находятся журналы. Это покажет вам, что отправлено на ваше выполнение и что вы получите обратно.

enter image description here

Большая часть этой информации также находится на вкладках "Ответ" и "Отладка" в действиях в симуляторе Google. Вы также можете посмотреть там (или опубликовать их в StackOverflow), если вам все еще нужна помощь.

Использование имитатора Dialogflow недостаточно для отладки действий - среда AoG отправляет дополнительную информацию, которой нет в имитаторе Dialogflow.

...