Добавьте параметры в EventInput на QueryInput для API-интерфейса DialogFlow Java - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь установить параметры внутри моего EventInput объекта, чтобы отправить его внутрь моего QueryInput и обнаружить намерение.Я использую DialogFlow V2Beta1 API для Java версии com.google.cloud:google-cloud-dialogflow:0.85.0-alpha.Мне известен ожидаемый формат json, основанный на документации
Custom Events , но все доступные мне методы не работали.Подобный вопрос для других языков также не был неожиданным: установка параметров в EventInput в Dialogflow V2 API .Я что-то теряю в шаблоне protobuf?Мои параметры следующие: enter image description here

Я уже пробовал приведенный ниже код, но он не работает, ответ от сервера всегда спрашивает "Что такое location_user?"Это означает, что параметр отсутствует.На DialogFlow V2 происходит та же проблема.

queryInput = QueryInput.newBuilder()
                        .setEvent(
                                EventInput.newBuilder()
                                        .setName("REVISION")
                                        .setParameters(
                                                Struct.newBuilder()
                                                        .putFields("location_user",
                                                                Value.newBuilder()
                                                                        .setStringValue("Campinas")
                                                                        .build())
                                                        .build()
                                        )
                                        .setLanguageCode(config.getLanguage()
                                        )
                        )
                        .build();

выводит json:

name: "REVISION"
parameters {
  fields {
    key: "location_user"
    value {
      string_value: "Campinas"
    }
  }
}
language_code: "pt-BR"

1 Ответ

3 голосов
/ 05 апреля 2019

Ваш код кажется правильным. Проблема в вашей намеренной конфигурации.

из диалоговых документов :

Для ссылки на параметр события в таблице параметров или ответ, используйте следующий формат: # event-name.parameter-name.

В вашем примере: поместите # REVISION.location_user в столбец Значение в таблице параметров.

Я проверил ваш код, и он работает, пожалуйста, найдите мою настройку Intent ниже

образец намерения

...