Rank Order your search results with the intuitive insights of AI. Your model can identify concepts in your data and rank your search results by how confident it is that a given concept is present. You can even rank search results by how similar one input is to another input or region of the input model detected. The search results will return the input but also the annotation which includes the region.
Search By Concepts
Once your images are indexed, you can search for them by concept.
By clarifai/main App Concepts
When you add an input, it automatically gets predictions from the models in your default which are typically models from the clarifai/main app such as the general model. You can search by those predictions.
importcom.clarifai.grpc.api.*;importcom.clarifai.grpc.api.status.*;// Insert here the initialization code as outlined on this page:// https://docs.clarifai.com/api-guide/api-overviewMultiSearchResponse postAnnotationsSearchesResponse =stub.postAnnotationsSearches(PostAnnotationsSearchesRequest.newBuilder().addSearches(Search.newBuilder().setQuery(Query.newBuilder().addRanks(Rank.newBuilder().setAnnotation(Annotation.newBuilder().setData(Data.newBuilder().addConcepts( // You can search by multiple concepts.Concept.newBuilder().setId("people") // You could search by concept Name as well..setValue(1f) // Value of 0 will search for images that don't have the concept. ) ) ) ) ) ).build());if (postAnnotationsSearchesResponse.getStatus().getCode() !=StatusCode.SUCCESS) { throw new RuntimeException("Post annotations searches failed, status: " + postAnnotationsSearchesResponse.getStatus());
}System.out.println("Found inputs "+postAnnotationsSearchesResponse.getHitsCount() +":");for (Hit hit :postAnnotationsSearchesResponse.getHitsList()) { System.out.printf("\tScore %.2f for annotation % of input %s\n", hit.getScore(), hit.getAnnotation().getId(), hit.getInput().getId())
}
// Insert here the initialization code as outlined on this page:// https://docs.clarifai.com/api-guide/api-overviewstub.PostAnnotationsSearches( { searches: [ { query: { ranks: [ { annotation: { data: { concepts: [ // You can search by multiple concepts. { id:"people",// You could search by concept Name as well. value:1// Value of 0 will search for images that don't have the concept } ] } } } ] } } ] }, metadata, (err, response) => {if (err) {thrownewError(err); }if (response.status.code !==10000) {thrownewError("Post annotations searches failed, status: "+response.status.description); }console.log("Search result:");for (consthitofresponse.hits) { console.log("\tScore " + hit.score + " for annotation: " + hit.annotation.id + " of input: ", hit.input.id);
} });
from clarifai_grpc.grpc.api import service_pb2, resources_pb2from clarifai_grpc.grpc.api.status import status_code_pb2# Insert here the initialization code as outlined on this page:# https://docs.clarifai.com/api-guide/api-overviewpost_annotations_searches_response = stub.PostAnnotationsSearches( service_pb2.PostAnnotationsSearchesRequest( searches = [ resources_pb2.Search( query=resources_pb2.Query( ranks=[ resources_pb2.