Как пройти ответ структуры: диалоговое окно - PullRequest
0 голосов
/ 28 августа 2018

Следующий ответ получен от вызова detect_intent API Dialogflow. Как пройти через структуру ответа и извлечь string_value записи?

Я использую Python. Ищете решение, которое будет работать для различных структур данных. Возвращает ноль / ошибку, если string_value не найден.

Запрос ответа:

response = session_client.detect_intent(session=session, query_input=query_input)

Пример ответа:

fields {
  key: "google"
  value {
    struct_value {
      fields {
        key: "expectUserResponse"
        value {
          bool_value: false
        }
      }
      fields {
        key: "richResponse"
        value {
          struct_value {
            fields {
              key: "items"
              value {
                list_value {
                  values {
                    struct_value {
                      fields {
                        key: "simpleResponse"
                        value {
                          struct_value {
                            fields {
                              key: "textToSpeech"
                              value {
                                string_value: "<speak>Welcome to Your App. To get started, login with your ID on your Google Home app.</speak>"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      fields {
        key: "userStorage"
        value {
          string_value: "{\"data\":{\"id\":\"YzA3MmNiNWEtMWI1Ny00NTMzLTlhN2EtYmJlZmQ1NDQ0MzMw\"}}"
        }
      }
    }
  }
}

1 Ответ

0 голосов
/ 10 сентября 2018

Ответ может быть проанализирован с использованием буферов протокола Google:

Пример:

response.query_result.webhook_payload.get_or_create_struct('google').get_or_create_struct('richResponse').get_or_create_list('items')[0].get_or_create_struct('simpleResponse').fields['textToSpeech'].string_value

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...