Skip to content

Commit f7774c0

Browse files
authored
Merge pull request #115 from IBM/test-classification-api
Text Classification APIs
2 parents e2b5b93 + 6c30212 commit f7774c0

File tree

62 files changed

+4091
-471
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+4091
-471
lines changed

modules/watsonx-ai-core/src/main/java/com/ibm/watsonx/ai/core/exeception/model/WatsonxError.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ public static enum Code {
7171
/** Text extraction event does not exist. */
7272
TEXT_EXTRACTION_EVENT_DOES_NOT_EXIST("text_extraction_event_does_not_exist"),
7373

74+
/** Text classification event does not exist. */
75+
TEXT_CLASSIFICATION_EVENT_DOES_NOT_EXIST("text_classification_event_does_not_exist"),
76+
7477
/** Access to Cloud Object Storage was denied. */
7578
COS_ACCESS_DENIED("AccessDenied"),
7679

modules/watsonx-ai-core/src/test/java/com/ibm/watsonx/ai/core/WatsonxErrorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import java.util.List;
1010
import org.junit.jupiter.api.Test;
1111
import com.ibm.watsonx.ai.core.exeception.model.WatsonxError;
12-
import com.ibm.watsonx.ai.core.exeception.model.WatsonxError.Error;;
12+
import com.ibm.watsonx.ai.core.exeception.model.WatsonxError.Error;
1313

1414
public class WatsonxErrorTest {
1515

modules/watsonx-ai/src/main/java/com/ibm/watsonx/ai/WatsonxJacksonModule.java

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,17 @@
55
package com.ibm.watsonx.ai;
66

77
import java.util.List;
8+
import com.fasterxml.jackson.annotation.JsonAnySetter;
89
import com.fasterxml.jackson.annotation.JsonIgnore;
910
import com.fasterxml.jackson.annotation.JsonProperty;
11+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
12+
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
1013
import com.fasterxml.jackson.databind.module.SimpleModule;
1114
import com.ibm.watsonx.ai.chat.model.AssistantMessage;
1215
import com.ibm.watsonx.ai.chat.model.JsonSchema.EnumSchema;
1316
import com.ibm.watsonx.ai.foundationmodel.FoundationModel;
17+
import com.ibm.watsonx.ai.textprocessing.KvpFields;
18+
import com.ibm.watsonx.ai.textprocessing.Schema;
1419

1520
/**
1621
* Custom Jackson module used to register mix-in annotations for serializing and deserializing specific components.
@@ -32,12 +37,16 @@ public WatsonxJacksonModule() {
3237
setMixInAnnotation(FoundationModel.TargetModules.class, DefaultValueMixin.class);
3338
setMixInAnnotation(FoundationModel.DeploymentParameter.class, DefaultValueMixin.class);
3439
setMixInAnnotation(AssistantMessage.class, AssistantMessageMixIn.class);
40+
setMixInAnnotation(Schema.class, SchemaMixin.class);
41+
setMixInAnnotation(Schema.Builder.class, SchemaBuilderMixin.class);
42+
setMixInAnnotation(KvpFields.class, KvpFieldsMixin.class);
43+
setMixInAnnotation(KvpFields.Builder.class, KvpFieldsBuilderMixin.class);
3544
}
3645

3746
/**
3847
* Mix-in interface to support enum deserialization where the enum values should be listed under the JSON property "enum".
3948
*/
40-
public static abstract class EnumSchemaMixin {
49+
public abstract static class EnumSchemaMixin {
4150
@JsonProperty("enum")
4251
abstract List<String> enumValues();
4352
}
@@ -46,7 +55,7 @@ public static abstract class EnumSchemaMixin {
4655
* Mix-in abstract class for supporting default value serialization/deserialization. This is used for various parameter types that expose a
4756
* "default" field in JSON.
4857
*/
49-
public abstract class DefaultValueMixin {
58+
public abstract static class DefaultValueMixin {
5059
@JsonProperty("default")
5160
abstract Object defaultValue();
5261
}
@@ -55,8 +64,35 @@ public abstract class DefaultValueMixin {
5564
* Mix-in abstract class for supporting serialization/deserialization of {@link AssistantMessage} without exposing the internal {@code thinking}
5665
* field.
5766
*/
58-
public abstract class AssistantMessageMixIn {
67+
public abstract static class AssistantMessageMixIn {
5968
@JsonIgnore
6069
abstract String thinking();
6170
}
71+
72+
/**
73+
* Mix-in class that provides custom deserialization support for the {@link Schema} model using its builder pattern.
74+
*/
75+
@JsonDeserialize(builder = Schema.Builder.class)
76+
public abstract class SchemaMixin {}
77+
78+
/**
79+
* Mix-in class that provides custom deserialization support for the {@link Schema.Builder} model using its builder pattern.
80+
*/
81+
@JsonPOJOBuilder(withPrefix = "")
82+
public abstract class SchemaBuilderMixin {}
83+
84+
/**
85+
* Mix-in class that provides custom deserialization support for the {@link KvpFields} model using its builder pattern.
86+
*/
87+
@JsonDeserialize(builder = KvpFields.Builder.class)
88+
public abstract class KvpFieldsMixin {}
89+
90+
/**
91+
* Mix-in class that provides custom deserialization support for the {@link KvpFields.Builder} model using its builder pattern.
92+
*/
93+
@JsonPOJOBuilder(withPrefix = "")
94+
public abstract class KvpFieldsBuilderMixin {
95+
@JsonAnySetter
96+
public abstract KvpFields.Builder add(String key, KvpFields.KvpField value);
97+
}
6298
}

modules/watsonx-ai/src/main/java/com/ibm/watsonx/ai/WatsonxService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.ibm.watsonx.ai.foundationmodel.FoundationModelService;
1818
import com.ibm.watsonx.ai.rerank.RerankService;
1919
import com.ibm.watsonx.ai.textgeneration.TextGenerationService;
20+
import com.ibm.watsonx.ai.textprocessing.textclassification.TextClassificationService;
2021
import com.ibm.watsonx.ai.textprocessing.textextraction.TextExtractionService;
2122
import com.ibm.watsonx.ai.timeseries.TimeSeriesService;
2223
import com.ibm.watsonx.ai.tokenization.TokenizationService;
@@ -33,6 +34,7 @@
3334
* @see RerankService
3435
* @see TokenizationService
3536
* @see TextExtractionService
37+
* @see TextClassificationService
3638
* @see TimeSeriesService
3739
* @see FoundationModelService
3840
* @see ToolService

modules/watsonx-ai/src/main/java/com/ibm/watsonx/ai/chat/DefaultRestClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import com.ibm.watsonx.ai.core.http.interceptors.LoggerInterceptor.LogMode;
3232

3333
/**
34-
* Default implementation of the {@link ChatRestClient} interface.
34+
* Default implementation of the {@link ChatRestClient} abstract class.
3535
*/
3636
final class DefaultRestClient extends ChatRestClient {
3737

modules/watsonx-ai/src/main/java/com/ibm/watsonx/ai/deployment/DefaultRestClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import com.ibm.watsonx.ai.timeseries.ForecastResponse;
3636

3737
/**
38-
* Default implementation of the {@link DeploymentRestClient} interface.
38+
* Default implementation of the {@link DeploymentRestClient} abstract class.
3939
*/
4040
final class DefaultRestClient extends DeploymentRestClient {
4141

modules/watsonx-ai/src/main/java/com/ibm/watsonx/ai/embedding/DefaultRestClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.ibm.watsonx.ai.core.http.interceptors.LoggerInterceptor.LogMode;
1919

2020
/**
21-
* Default implementation of the {@link EmbeddingRestClient} interface.
21+
* Default implementation of the {@link EmbeddingRestClient} abstract class.
2222
*/
2323
final class DefaultRestClient extends EmbeddingRestClient {
2424

modules/watsonx-ai/src/main/java/com/ibm/watsonx/ai/foundationmodel/DefaultRestClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.ibm.watsonx.ai.core.spi.json.TypeToken;
2121

2222
/**
23-
* Default implementation of the {@link FoundationModelRestClient} interface.
23+
* Default implementation of the {@link FoundationModelRestClient} abstract class.
2424
*/
2525
final class DefaultRestClient extends FoundationModelRestClient {
2626

modules/watsonx-ai/src/main/java/com/ibm/watsonx/ai/rerank/DefaultRestClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.ibm.watsonx.ai.core.http.interceptors.LoggerInterceptor.LogMode;
1919

2020
/**
21-
* Default implementation of the {@link RerankRestClient} interface.
21+
* Default implementation of the {@link RerankRestClient} abstract class.
2222
*/
2323
final class DefaultRestClient extends RerankRestClient {
2424

modules/watsonx-ai/src/main/java/com/ibm/watsonx/ai/textgeneration/DefaultRestClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import com.ibm.watsonx.ai.core.http.interceptors.LoggerInterceptor.LogMode;
2828

2929
/**
30-
* Default implementation of the {@link TextGenerationRestClient} interface.
30+
* Default implementation of the {@link TextGenerationRestClient} abstract class.
3131
*/
3232
final class DefaultRestClient extends TextGenerationRestClient {
3333

0 commit comments

Comments
 (0)