При использовании 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