4 | * API client instances can be constructed via {@link clarifai2.api.ClarifaiBuilder}.
5 | */
6 | package clarifai2.api;
7 |
--------------------------------------------------------------------------------
/core/src/main/java/clarifai2/api/request/PaginatedRequestVendor.java:
--------------------------------------------------------------------------------
1 | package clarifai2.api.request;
2 |
3 | import com.google.common.util.concurrent.ListenableFuture;
4 |
5 | interface PaginatedRequestVendor
15 | * For example, this allows use of {@link JsonAdapter} on the base AutoValue class. Proper serialization will still
16 | * occur according to that {@link JsonAdapter} when the class is passed through Gson. Otherwise, Gson would always use
17 | * default serialization on AutoValue classes, because technically, the generated class has no custom serializer.
18 | */
19 | public final class AutoValueTypeAdapterFactory implements TypeAdapterFactory {
20 |
21 | private static final String AUTO_VALUE_CLASS_PREFIX = "AutoValue_";
22 |
23 | @Override public , GetConceptsRequest> {
14 |
15 | public GetConceptsRequest(@NotNull final BaseClarifaiClient helper) {
16 | super(helper);
17 | }
18 |
19 | @NotNull @Override protected String method() {
20 | return "GET";
21 | }
22 |
23 | @NotNull @Override protected String subUrl(final int page) {
24 | return buildURL("v2/concepts", page);
25 | }
26 |
27 | @NotNull @Override protected List
> {
16 | @NotNull private final String action;
17 | @NotNull private final List
> request() {
42 | return new DeserializedRequest
>() {
43 | @NotNull @Override public ListenableFuture httpRequestGrpc() {
44 | List
, SearchConceptsRequest> {
16 |
17 |
18 | @NotNull private final String conceptSearchQuery;
19 |
20 | @Nullable private String language = null;
21 |
22 | public SearchConceptsRequest(@NotNull final BaseClarifaiClient client, @NotNull String conceptSearchQuery) {
23 | super(client);
24 | this.conceptSearchQuery = conceptSearchQuery;
25 | }
26 |
27 | @NotNull public SearchConceptsRequest withLanguage(@NotNull String language) {
28 | this.language = language;
29 | return this;
30 | }
31 |
32 | @NotNull @Override protected String method() {
33 | return "POST";
34 | }
35 |
36 | @NotNull @Override protected String subUrl(int page) {
37 | return buildURL("v2/concepts/searches", page);
38 | }
39 |
40 | @NotNull @Override protected List
, GetInputsRequest> {
14 | public GetInputsRequest(@NotNull final BaseClarifaiClient client) {
15 | super(client);
16 | }
17 |
18 | @NotNull @Override protected String method() {
19 | return "GET";
20 | }
21 |
22 | @NotNull @Override protected String subUrl(final int page) {
23 | return buildURL("v2/inputs", page);
24 | }
25 |
26 | @NotNull @Override protected List
> {
16 |
17 | @NotNull private final String modelID;
18 | @NotNull private final String versionID;
19 |
20 | public DeleteModelVersionRequest(
21 | @NotNull BaseClarifaiClient client,
22 | @NotNull String modelID,
23 | @NotNull String versionID
24 | ) {
25 | super(client);
26 | this.modelID = modelID;
27 | this.versionID = versionID;
28 | }
29 |
30 | @NotNull @Override protected String method() {
31 | return "DELETE";
32 | }
33 |
34 | @NotNull @Override protected String subUrl() {
35 | return String.format("v2/models/%s/versions/%s", modelID, versionID);
36 | }
37 |
38 | @NotNull @Override protected DeserializedRequest
> request() {
39 | return new DeserializedRequest
>() {
40 | @NotNull @Override public ListenableFuture httpRequestGrpc() {
41 | return stub().deleteModelVersion(ModelVersionOuterClass.DeleteModelVersionRequest.newBuilder().build());
42 | }
43 |
44 | @NotNull @Override public List
>, FindModelRequest> {
16 |
17 | @Nullable private String name;
18 | @Nullable private ModelType modelType;
19 |
20 | public FindModelRequest(@NotNull final BaseClarifaiClient client) {
21 | super(client);
22 | }
23 |
24 | @NotNull @Override protected String method() {
25 | return "POST";
26 | }
27 |
28 | @NotNull @Override protected String subUrl(final int page) {
29 | return buildURL("v2/models/searches", page);
30 | }
31 |
32 | @NotNull public FindModelRequest withName(@Nullable String name) {
33 | this.name = name;
34 | return this;
35 | }
36 |
37 | @NotNull public FindModelRequest withModelType(@NotNull ModelType modelType) {
38 | this.modelType = modelType;
39 | return this;
40 | }
41 |
42 | @NotNull @Override protected List
, GetModelInputsRequest> {
17 |
18 | @NotNull private final String modelID;
19 |
20 | @Nullable private String modelVersionID;
21 |
22 | public GetModelInputsRequest(@NotNull final BaseClarifaiClient client, @NotNull String modelID) {
23 | super(client);
24 | this.modelID = modelID;
25 | }
26 |
27 | @NotNull public GetModelInputsRequest fromSpecificModelVersion(@NotNull String modelVersionID) {
28 | this.modelVersionID = modelVersionID;
29 | return this;
30 | }
31 |
32 | @NotNull public GetModelInputsRequest fromSpecificModelVersion(@NotNull ModelVersion modelVersion) {
33 | return fromSpecificModelVersion(modelVersion.id());
34 | }
35 |
36 | @NotNull @Override protected String method() {
37 | return "GET";
38 | }
39 |
40 | @NotNull @Override protected String subUrl(final int page) {
41 | String url;
42 | if (modelVersionID != null) {
43 | url = "v2/models/" + modelID + "/versions/" + modelVersionID + "/inputs";
44 | } else {
45 | url = "v2/models/" + modelID + "/inputs";
46 | }
47 | return buildURL(url, page);
48 | }
49 |
50 | @NotNull @Override protected List
, GetModelVersionsRequest> {
15 |
16 | @NotNull private final String modelID;
17 |
18 | public GetModelVersionsRequest(@NotNull final BaseClarifaiClient client, @NotNull String modelID) {
19 | super(client);
20 | this.modelID = modelID;
21 | }
22 |
23 | @NotNull @Override protected String method() {
24 | return "GET";
25 | }
26 |
27 | @NotNull @Override protected String subUrl(int page) {
28 | return buildURL("v2/models/" + modelID + "/versions", page);
29 | }
30 |
31 | @NotNull @Override protected List
>, GetModelsRequest> {
14 |
15 | public GetModelsRequest(@NotNull final BaseClarifaiClient client) {
16 | super(client);
17 | }
18 |
19 | @NotNull @Override protected String method() {
20 | return "GET";
21 | }
22 |
23 | @NotNull @Override protected String subUrl(int page) {
24 | return buildURL("v2/models", page);
25 | }
26 |
27 | @NotNull @Override protected List
> setConceptsResponse = client.modifyConcepts()
30 | .plus(Concept.forID(conceptId)
31 | .withName(newConceptName)
32 | ).executeSync();
33 | assertEquals(newConceptName, setConceptsResponse.get().get(0).name());
34 |
35 | // Get the updated concept again to make sure fields were really updated.
36 | ClarifaiResponse
>> response = client.getModels().build().getPage(1).executeSync();
27 | Model> model = response.get().get(0);
28 | ModelVersion modelVersion = model.modelVersion();
29 | assertNotNull(modelVersion.status());
30 | assertNotNull(modelVersion.createdAt());
31 | assertNotNull(modelVersion.totalInputCount());
32 | assertNotNull(modelVersion.activeConceptCount());
33 | }
34 |
35 | @Test public void shouldHaveFieldsPopulatedUsingGetModelVersionByID() {
36 | ConceptModel model = client.getModelByID(client.getDefaultModels().nsfwModel().id())
37 | .executeSync().get().asConceptModel();
38 | ModelVersion modelVersion = client.getModelVersionByID(model.id(), model.modelVersion().id())
39 | .executeSync().get();
40 | assertNotNull(modelVersion.status());
41 | assertNotNull(modelVersion.createdAt());
42 | assertNotNull(modelVersion.totalInputCount());
43 | assertNotNull(modelVersion.activeConceptCount());
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/tests/src/test/java/clarifai2/integration_tests/SearchInputsIntTests.java:
--------------------------------------------------------------------------------
1 | package clarifai2.integration_tests;
2 |
3 | import clarifai2.api.ClarifaiResponse;
4 | import clarifai2.api.request.input.SearchClause;
5 | import clarifai2.api.request.input.SearchInputsRequest;
6 | import clarifai2.dto.input.ClarifaiImage;
7 | import clarifai2.dto.search.SearchInputsResult;
8 | import org.junit.Test;
9 |
10 | import static org.junit.Assert.assertNotNull;
11 |
12 | public class SearchInputsIntTests extends BaseIntTest {
13 |
14 | private String imageWithNoSearchHits = CONAN_GIF_URL;
15 |
16 | @Test public void allDataShouldBeExposedAndNotNull() {
17 | SearchInputsRequest request = client.searchInputs(SearchClause.matchImageURL(
18 | ClarifaiImage.of(imageWithNoSearchHits)));
19 | ClarifaiResponse