Dialogflow listIntents - фильтровать результаты - PullRequest
0 голосов
/ 28 мая 2020

При использовании DialogFlow Java SDK я хотел бы отфильтровать намерения, возвращаемые методом listIntents, возможно ли это?

Например, в следующем коде перечислены все намерения в агенте:

package dialogflow;

import java.io.IOException;

import com.google.api.gax.rpc.PermissionDeniedException;
import com.google.cloud.dialogflow.v2.IntentsClient;
import com.google.cloud.dialogflow.v2.IntentsClient.ListIntentsPagedResponse;
import com.google.cloud.dialogflow.v2.ListIntentsRequest;
import com.google.cloud.dialogflow.v2.ProjectAgentName;
import com.google.protobuf.Field;
import com.google.protobuf.util.JsonFormat;

import io.grpc.StatusRuntimeException;

public class ListIntents {

public static void main(String[] args) throws IOException {
    try (IntentsClient intentsClient = IntentsClient.create()) {

        ProjectAgentName parent = ProjectAgentName.of("testbot-PROJECT");

        ListIntentsRequest req = ListIntentsRequest .newBuilder()
                                                    .setParent(parent.toString())
                                                    .setPageSize(5)
                                                    .setLanguageCode("en")
                                                    .build();

        ListIntentsPagedResponse pagedResponse = intentsClient.listIntents(req);

        System.out.println(JsonFormat   .printer()
                                        .print(pagedResponse.getPage()
                                                            .getResponse()));


    } catch( PermissionDeniedException pd ) {
        System.out.println("Can't access that agent, if it exists");
    } catch (StatusRuntimeException re) {
        System.out.println("runtime exception");
    }

}

}

Есть ли способ сообщить методу listIntents только вернуть намерения, отображаемое имя которых начинается с что-то? Что-то вроде:

            ListIntentsRequest req = ListIntentsRequest .newBuilder()
                                                    .setParent(parent.toString())
                                                    .setPageSize(5)

                                                    .filter("displayName", "name-prefix") **<< Doesn't exist, just an example

                                                    .setLanguageCode("en")
                                                    .build();

Возможно ли это с помощью конструкций setField, intentViews или чего-то еще?

Заранее спасибо Rich

...