@NotNull public PatchInputRequest plus(@NotNull Concept... concepts) { return plus(Arrays.asList(concepts)); }
@NotNull @Override public PatchInputRequest setConceptsForInput(@NotNull String inputID) { return new PatchInputRequest(this, inputID, "overwrite"); }
@NotNull public PatchInputRequest plusRegionFeedbacks(@NotNull RegionFeedback... regionFeedbacks) { return plusRegionFeedbacks(Arrays.asList(regionFeedbacks)); }
@Test public void bulkDeleteConceptsFromAnInput() { client.mergeConceptsForInput("{{id}}") .plus( Concept.forID("tree"), Concept.forID("water") ) .executeSync(); }
@NotNull @Override public ListenableFuture httpRequestGrpc() { DataOuterClass.Data.Builder dataBuilder = DataOuterClass.Data.newBuilder(); if (!concepts.isEmpty()) { List<ConceptOuterClass.Concept> conceptsGrpc = new ArrayList<>(); for (Concept concept : concepts) { conceptsGrpc.add(concept.serialize()); } dataBuilder.addAllConcepts(conceptsGrpc); } if (!regionFeedbacks.isEmpty()) { List<DataOuterClass.Region> regionFeedbacksGrpc = new ArrayList<>(); for (RegionFeedback regionFeedback : regionFeedbacks) { regionFeedbacksGrpc.add(regionFeedback.serialize()); } dataBuilder.addAllRegions(regionFeedbacksGrpc); } return stub().patchInputs( InputOuterClass.PatchInputsRequest.newBuilder() .setAction(action) .addInputs(InputOuterClass.Input.newBuilder().setId(inputID).setData(dataBuilder)) .build() ); }
@Test public void bulkUpdateInputWithConcepts() { client.mergeConceptsForInput("{{id}}") .plus( Concept.forID("tree"), Concept.forID("water").withValue(false) ) .executeSync(); }
@Test public void patchInputShouldNotReturnConceptsWhenNoPermissions() { try { String inputId = addInputWithConcepts(client, FAMILY_IMAGE_URL, "concept0", "concept1"); PatchInputRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_INPUTS_GET_PATCH.value()) .mergeConceptsForInput(inputId) .plus( Concept.forID("concept2"), Concept.forID("concept3") ); ClarifaiResponse<ClarifaiInput> response = request.executeSync(); assertEquals(0, response.get().concepts().size()); } finally { client.deleteAllInputs().executeSync(); } }
@Retry @Test public void t02_addConceptsToInput() { assertSuccess(client.mergeConceptsForInput("foo1") .plus( Concept.forID("concept2"), Concept.forID("concept3") ) ); }
@NotNull @Override public PatchInputRequest removeConceptsForInput(@NotNull String inputID) { return new PatchInputRequest(this, inputID, "remove"); }
@Test public void patchInputShouldReturnConceptsWhenWithPermissions() { try { String inputId = addInputWithConcepts(client, METRO_NORTH_IMAGE_URL, "concept0", "concept1"); assertNotNull(inputId); PatchInputRequest request = makeClient(EnvVar.CLARIFAI_API_KEY_INPUTS_GET_PATCH_AND_CONCEPTS_GET.value()) .mergeConceptsForInput(inputId) .plus( Concept.forID("concept2"), Concept.forID("concept3") ); ClarifaiResponse<ClarifaiInput> response = request.executeSync(); assertNotEquals(0, response.get().concepts().size()); } finally { client.deleteAllInputs().executeSync(); } }
@NotNull @Override public PatchInputRequest mergeConceptsForInput(@NotNull String inputID) { return new PatchInputRequest(this, inputID, "merge"); }