Skip to content

Commit 727a6d1

Browse files
author
BitsAdmin
committed
Merge branch 'fxj/feat/moderation' into 'integration_2025-01-09_670294536194'
feat: [development task] ark-runtime-manual-Java (965071) See merge request iaasng/volcengine-java-sdk!356
2 parents fa311e7 + 71385a1 commit 727a6d1

File tree

3 files changed

+48
-17
lines changed

3 files changed

+48
-17
lines changed

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/model/completion/chat/ChatCompletionChoice.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ public class ChatCompletionChoice {
2424
@JsonProperty("finish_reason")
2525
String finishReason;
2626

27+
/**
28+
* The type of content moderation service hit.
29+
*/
30+
@JsonProperty("moderation_hit_type")
31+
String moderationHitType;
32+
2733
/**
2834
* Log probability information for the choice.
2935
*/
@@ -54,6 +60,14 @@ public void setFinishReason(String finishReason) {
5460
this.finishReason = finishReason;
5561
}
5662

63+
public void setModerationHitType(String moderationHitType) {
64+
this.moderationHitType = moderationHitType;
65+
}
66+
67+
public String getModerationHitType() {
68+
return moderationHitType;
69+
}
70+
5771
public ChatCompletionChoiceLogprob getLogprobs() {
5872
return logprobs;
5973
}
@@ -68,6 +82,7 @@ public String toString() {
6882
"index=" + index +
6983
", message=" + message +
7084
", finishReason='" + finishReason + '\'' +
85+
", moderationHitType='" + moderationHitType + '\'' +
7186
", logprobs=" + logprobs +
7287
'}';
7388
}

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/service/ArkService.java

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@
55
import com.fasterxml.jackson.databind.DeserializationFeature;
66
import com.fasterxml.jackson.databind.ObjectMapper;
77
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
8-
import com.volcengine.ark.runtime.*;
8+
import com.volcengine.ark.runtime.Const;
99
import com.volcengine.ark.runtime.exception.ArkAPIError;
1010
import com.volcengine.ark.runtime.exception.ArkException;
1111
import com.volcengine.ark.runtime.exception.ArkHttpException;
12-
import com.volcengine.ark.runtime.interceptor.AuthenticationInterceptor;
13-
import com.volcengine.ark.runtime.interceptor.ArkResourceStsAuthenticationInterceptor;
14-
import com.volcengine.ark.runtime.interceptor.RequestIdInterceptor;
15-
import com.volcengine.ark.runtime.interceptor.RetryInterceptor;
12+
import com.volcengine.ark.runtime.interceptor.*;
1613
import com.volcengine.ark.runtime.model.content.generation.DeleteContentGenerationTaskResponse;
1714
import com.volcengine.ark.runtime.interceptor.*;
1815
import com.volcengine.ark.runtime.model.bot.completion.chat.BotChatCompletionChunk;
@@ -39,10 +36,12 @@
3936
import retrofit2.converter.jackson.JacksonConverterFactory;
4037
import retrofit2.Retrofit;
4138

39+
4240
import java.io.IOException;
4341
import java.net.Proxy;
4442
import java.time.Duration;
4543
import java.util.*;
44+
import java.util.concurrent.Executor;
4645
import java.util.concurrent.ExecutorService;
4746
import java.util.concurrent.TimeUnit;
4847

@@ -59,7 +58,7 @@ public ArkService(final String apiKey) {
5958
public ArkService(final String apiKey, final Duration timeout) {
6059
ObjectMapper mapper = defaultObjectMapper();
6160
OkHttpClient client = defaultApiKeyClient(apiKey, timeout);
62-
Retrofit retrofit = defaultRetrofit(client, mapper, BASE_URL);
61+
Retrofit retrofit = defaultRetrofit(client, mapper, BASE_URL, null);
6362

6463
this.api = retrofit.create(ArkApi.class);
6564
this.executorService = client.dispatcher().executorService();
@@ -72,7 +71,7 @@ public ArkService(final String ak, final String sk) {
7271
public ArkService(final String ak, final String sk, final Duration timeout) {
7372
ObjectMapper mapper = defaultObjectMapper();
7473
OkHttpClient client = defaultResourceStsClient(ak, sk, timeout, BASE_REGION);
75-
Retrofit retrofit = defaultRetrofit(client, mapper, BASE_URL);
74+
Retrofit retrofit = defaultRetrofit(client, mapper, BASE_URL, null);
7675

7776
this.api = retrofit.create(ArkApi.class);
7877
this.executorService = client.dispatcher().executorService();
@@ -116,13 +115,19 @@ public static OkHttpClient defaultResourceStsClient(String ak, String sk, Durati
116115
.build();
117116
}
118117

119-
public static Retrofit defaultRetrofit(OkHttpClient client, ObjectMapper mapper, String baseUrl) {
120-
return new Retrofit.Builder()
118+
public static Retrofit defaultRetrofit(OkHttpClient client, ObjectMapper mapper, String baseUrl, Executor callbackExecutor) {
119+
Retrofit.Builder builder = new Retrofit.Builder()
121120
.baseUrl(baseUrl)
122121
.client(client)
123122
.addConverterFactory(JacksonConverterFactory.create(mapper))
124-
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
125-
.build();
123+
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
124+
125+
if (callbackExecutor != null) {
126+
// to avoid NPE
127+
builder.callbackExecutor(callbackExecutor);
128+
}
129+
130+
return builder.build();
126131
}
127132

128133
public static <T> T execute(Single<T> apiCall) {
@@ -329,6 +334,7 @@ public static class Builder {
329334
private Proxy proxy;
330335
private ConnectionPool connectionPool;
331336
private Dispatcher dispatcher;
337+
private Executor callbackExecutor;
332338

333339
public ArkService.Builder ak(String ak) {
334340
this.ak = ak;
@@ -388,6 +394,11 @@ public ArkService.Builder dispatcher(Dispatcher dispatcher) {
388394
return this;
389395
}
390396

397+
public ArkService.Builder callbackExecutor(Executor callbackExecutor) {
398+
this.callbackExecutor = callbackExecutor;
399+
return this;
400+
}
401+
391402
public ArkService build() {
392403
ObjectMapper mapper = defaultObjectMapper();
393404
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
@@ -421,7 +432,7 @@ public ArkService build() {
421432
.callTimeout(timeout.toMillis(), TimeUnit.MILLISECONDS)
422433
.connectTimeout(connectTimeout)
423434
.build();
424-
Retrofit retrofit = defaultRetrofit(client, mapper, baseUrl);
435+
Retrofit retrofit = defaultRetrofit(client, mapper, baseUrl, callbackExecutor);
425436

426437
return new ArkService(
427438
retrofit.create(ArkApi.class),

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/utils/ResponseBodyCallback.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.databind.ObjectMapper;
44
import com.volcengine.ark.runtime.Const;
55
import com.volcengine.ark.runtime.exception.ArkAPIError;
6+
import com.volcengine.ark.runtime.exception.ArkException;
67
import com.volcengine.ark.runtime.exception.ArkHttpException;
78
import com.volcengine.ark.runtime.SSEFormatException;
89
import com.volcengine.ark.runtime.service.ArkService;
@@ -51,11 +52,15 @@ public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response)
5152
if (errorBody == null) {
5253
throw e;
5354
} else {
54-
ArkAPIError error = mapper.readValue(
55-
errorBody.string(),
56-
ArkAPIError.class
57-
);
58-
throw new ArkHttpException(error, e, e.code(), requestId);
55+
try {
56+
ArkAPIError error = mapper.readValue(
57+
errorBody.string(),
58+
ArkAPIError.class
59+
);
60+
throw new ArkHttpException(error, e, e.code(), requestId);
61+
} catch (Exception ignore) {
62+
throw new ArkHttpException(new ArkAPIError(new ArkAPIError.ArkErrorDetails(e.getMessage(), "", "", "InternalServiceError")), e, e.code(), requestId);
63+
}
5964
}
6065
}
6166

0 commit comments

Comments
 (0)