Dialogflow v2 android sdk-将QueryParameters添加到QueryInput

时间:2019-05-30 10:34:04

标签: android kotlin sdk dialogflow

我实际上正在尝试在Android中将Dialogflow v2与Java sdk一起使用。

我已经可以对dialogflow进行查询,但是我想在查询中发送一些有效负载。 因此,我发现了 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 :(得分:0)

经过数小时的深入搜索,我设法找到了 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)
  

注意:如果您使用的是其他语言,则可能会有三分之一   detectIntent函数中的参数来放置您的queryParameters

答案 1 :(得分:0)

对于Kotlin,

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是参数名称