Skip to content

Commit 701ac0a

Browse files
Merge 'integration_2025-01-02_663693108482' into 'master'
merge branch integration_2025-01-02_663693108482 into master See merge request: !350
2 parents 0907165 + bceb2af commit 701ac0a

File tree

139 files changed

+5545
-1389
lines changed

Some content is hidden

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

139 files changed

+5545
-1389
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
<dependency>
5555
<groupId>com.volcengine</groupId>
5656
<artifactId>volcengine-java-sdk-bom</artifactId>
57-
<version>0.1.145</version>
57+
<version>0.1.146</version>
5858
<type>pom</type>
5959
<scope>import</scope>
6060
</dependency>
@@ -70,12 +70,12 @@
7070
<dependency>
7171
<groupId>com.volcengine</groupId>
7272
<artifactId>volcengine-java-sdk-vpc</artifactId>
73-
<version>0.1.145</version>
73+
<version>0.1.146</version>
7474
</dependency>
7575
<dependency>
7676
<groupId>com.volcengine</groupId>
7777
<artifactId>volcengine-java-sdk-ecs</artifactId>
78-
<version>0.1.145</version>
78+
<version>0.1.146</version>
7979
</dependency>
8080
</dependencies>
8181
```

meta.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"lasted": "0.1.145",
3-
"meta_commit": "4c64330a89a763415921541ee9f693e9c6db8f7a"
2+
"lasted": "0.1.146",
3+
"meta_commit": "6cae7cd48b5bccde8d819d8985fb93f11cf07614"
44
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>com.volcengine</groupId>
55
<artifactId>volcengine-java-sdk</artifactId>
66
<packaging>pom</packaging>
7-
<version>0.1.145</version>
7+
<version>0.1.146</version>
88
<name>volcengine-java-sdk</name>
99
<url>https://open.volcengineapi.com</url>
1010
<description>The Java SDK For Volcengine</description>

volcengine-java-sdk-advdefence/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>volcengine-java-sdk</artifactId>
55
<groupId>com.volcengine</groupId>
6-
<version>0.1.145</version>
6+
<version>0.1.146</version>
77
<relativePath>../pom.xml</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

volcengine-java-sdk-advdefence20230308/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>volcengine-java-sdk</artifactId>
55
<groupId>com.volcengine</groupId>
6-
<version>0.1.145</version>
6+
<version>0.1.146</version>
77
<relativePath>../pom.xml</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

volcengine-java-sdk-alb/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>volcengine-java-sdk</artifactId>
55
<groupId>com.volcengine</groupId>
6-
<version>0.1.145</version>
6+
<version>0.1.146</version>
77
<relativePath>../pom.xml</relativePath>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>

volcengine-java-sdk-ark-runtime/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>volcengine-java-sdk</artifactId>
55
<groupId>com.volcengine</groupId>
6-
<version>0.1.145</version>
6+
<version>0.1.146</version>
77
<relativePath>../pom.xml</relativePath>
88
</parent>
99
<build>

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/Const.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class Const {
88
public static final String SERVER_REQUEST_HEADER = "X-Request-Id";
99
public static final String REQUEST_MODEL = "X-Request-Model";
1010
public static final String REQUEST_BOT = "X-Request-Bot";
11+
public static final String RETRY_AFTER = "Retry-After";
1112
public static final String REQUEST_BOT_ID = "botId";
1213
public static final Integer DEFAULT_MANDATORY_REFRESH_TIMEOUT = 10 * 60; // 10 min
1314
public static final Integer DEFAULT_ADVISORY_REFRESH_TIMEOUT = 30 * 60; // 30 min
@@ -20,4 +21,7 @@ public class Const {
2021
public static final String CONTEXT_MODE_COMMON_PREFIX = "common_prefix";
2122
public static final String TRUNCATION_STRATEGY_TYPE_LAST_HISTORY_TOKENS = "last_history_tokens";
2223
public static final String TRUNCATION_STRATEGY_TYPE_ROLLING_TOKENS = "rolling_tokens";
24+
25+
public static final String BATCH_CHAT_PATH = "/api/v3/batch/chat/completions";
26+
public static final int MAX_RETRY_TIMES = 259200;
2327
}

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/interceptor/ArkResourceStsAuthenticationInterceptor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ public Response intercept(Chain chain) throws IOException {
5454
String requestResourceType = getRequestResourceType(request);
5555
String requestResourceId = getRequestResourceId(request);
5656

57+
if (request.url().url().getPath().contains("contents/generations")) {
58+
throw new ArkException("content generation currently does not support ak&sk authentication, use api_key instead.");
59+
}
60+
5761
Request newRequest = chain.request()
5862
.newBuilder()
5963
.header("Authorization", "Bearer " + getResourceStsToken(requestResourceType, requestResourceId))
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.volcengine.ark.runtime.interceptor;
2+
3+
import com.volcengine.ark.runtime.utils.ModelBreaker;
4+
import okhttp3.*;
5+
6+
import java.io.IOException;
7+
import java.time.Duration;
8+
import java.util.concurrent.ConcurrentHashMap;
9+
10+
import static com.volcengine.ark.runtime.Const.*;
11+
12+
public class BatchInterceptor implements Interceptor {
13+
14+
private final ConcurrentHashMap<String, ModelBreaker> modelBreakerMap;
15+
16+
public BatchInterceptor() {
17+
this.modelBreakerMap = new ConcurrentHashMap<>();
18+
}
19+
20+
@Override
21+
public Response intercept(Chain chain) throws IOException {
22+
Request request = chain.request();
23+
HttpUrl url = request.url();
24+
if (!url.encodedPath().equals(BATCH_CHAT_PATH)) {
25+
return chain.proceed(request);
26+
}
27+
String endpoint = request.header(REQUEST_MODEL);
28+
try {
29+
waitModelForRetryAfter(endpoint);
30+
} catch (InterruptedException e) {
31+
throw new RuntimeException(e);
32+
}
33+
Response response = chain.proceed(chain.request());
34+
String retryAfter = response.header(RETRY_AFTER);
35+
if (retryAfter != null && !retryAfter.isEmpty()) {
36+
try {
37+
int delay = Integer.parseInt(retryAfter);
38+
setModelForRetryAfter(endpoint, Duration.ofSeconds(delay));
39+
} catch (NumberFormatException e) {
40+
// 无效的RetryAfter Header. 跳过
41+
}
42+
}
43+
return response;
44+
}
45+
private void waitModelForRetryAfter(String model) throws InterruptedException {
46+
ModelBreaker breaker = this.getModelBreaker(model);
47+
while (!breaker.Allow()){
48+
Duration duration = breaker.GetAllowedDuration();
49+
if (duration.getSeconds() > 0) {
50+
Thread.sleep(duration.toMillis());
51+
}
52+
}
53+
}
54+
55+
private void setModelForRetryAfter(String model, Duration duration) {
56+
ModelBreaker breaker = this.getModelBreaker(model);
57+
breaker.Reset(duration);
58+
}
59+
60+
private ModelBreaker getModelBreaker(String model){
61+
ModelBreaker breaker;
62+
if (this.modelBreakerMap.containsKey(model)) {
63+
breaker = this.modelBreakerMap.get(model);
64+
} else {
65+
breaker = new ModelBreaker();
66+
this.modelBreakerMap.put(model, breaker);
67+
}
68+
return breaker;
69+
}
70+
71+
}

0 commit comments

Comments
 (0)