Dialogflow v2 android sdk - добавьте параметры QueryParameters в QueryInput - PullRequest
0 голосов
/ 30 мая 2019

Я на самом деле пытаюсь использовать Dialogflow v2 с Java SDK в Android.

Я уже могу делать запросы в диалоговом потоке, но я хотел отправить некоторую полезную нагрузку с моим запросом. Из-за этого я обнаружил объект QueryParameters и уже установил для него желаемую полезную нагрузку.

Проблема в том, что у меня есть QueryInput и QueryParameters , но нет документации (или ссылок на код в исходном коде) о том, как применять параметры к входу до пытаясь обнаружить намерение.

SessionsClient.create().use { sessionsClient ->
            // Set the session name using the sessionId (UUID) and projectID
            val session = SessionName.of(PROJECT_ID, UUID)

            System.out.println("Session Path: $session")

            // Set the text (input) and language code (en) for the query
            val textInput = TextInput.newBuilder().setText(text).setLanguageCode(LANGUAGE_CODE)

            // Build the query with the TextInput
            val queryInput = QueryInput.newBuilder().setText(textInput).build()

            // Set payload
            val payload = "{someid: $someid}"
            val queryParameters = QueryParameters.newBuilder().setPayload(Struct.parseFrom(payload.toByteArray())).build()

            // (HERE I NEED TO ADD THE PARAMETERS TO INPUT)


            // Performs the detect intent request
            val response = sessionsClient.detectIntent(session, queryInput)

            // returns the query result
            return response.queryResult
        }

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Для Котлина,

val queryInput1211 = QueryInput.newBuilder()
            .setText(TextInput.newBuilder().setText(msg).setLanguageCode("en-US"))
            .setEvent(com.google.cloud.dialogflow.v2beta1.EventInput.newBuilder()
                    .setName("Welcome")
                    .setLanguageCode("en-US")
                    .setParameters(
                            Struct.newBuilder().putFields("user_id",
                                    Value.newBuilder().setStringValue("1234").build())
                                    .build())
                    .build())
            .build()

Для Java

QueryInput queryInput1211 = QueryInput.newBuilder()
                    .setText(TextInput.newBuilder().setText(msg).setLanguageCode("en-US"))
                    .setEvent(com.google.cloud.dialogflow.v2beta1.EventInput.newBuilder()
                            .setName("Welcome")
                            .setLanguageCode("en-US")
                            .setParameters(
                                    Struct.newBuilder().putFields("user_id",
                                            Value.newBuilder().setStringValue("1234").build())
                                            .build())
                            .build())
                    .build();

Где Welcome - намеренное имя события и user_id в качестве имени параметра

0 голосов
/ 30 мая 2019

После нескольких часов глубокого поиска мне удалось найти класс DetectIntentRequest .

            //Build the request
            val request = DetectIntentRequest.newBuilder()
                .setSession(session.toString())
                .setQueryInput(queryInput)
                .setQueryParams(queryParameters)
                .build()

            // Performs the detect intent request
            val response = sessionsClient.detectIntent(request)

Примечание: если вы используете другие языки, возможно, у вас будет третий параметр в функции deteIntent для размещения вашего запросаПараметры

...