Skip to content

Commit 9a4f843

Browse files
author
xiangjie.meng
committed
feat: batch content generation
1 parent c57e9d6 commit 9a4f843

File tree

8 files changed

+229
-4
lines changed

8 files changed

+229
-4
lines changed

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/model/content/generation/CreateContentGenerationTaskRequest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ public class CreateContentGenerationTaskRequest {
2020
@JsonProperty("return_last_frame")
2121
private Boolean returnLastFrame;
2222

23+
@JsonProperty("service_tier")
24+
private String serviceTier;
25+
26+
@JsonProperty("execution_expires_after")
27+
private Long executionExpiresAfter;
28+
2329
public CreateContentGenerationTaskRequest() {
2430
}
2531

@@ -67,13 +73,31 @@ public void setReturnLastFrame(Boolean returnLastFrame) {
6773
this.returnLastFrame = returnLastFrame;
6874
}
6975

76+
public String getServiceTier() {
77+
return serviceTier;
78+
}
79+
80+
public void setServiceTier(String serviceTier) {
81+
this.serviceTier = serviceTier;
82+
}
83+
84+
public Long getExecutionExpiresAfter() {
85+
return executionExpiresAfter;
86+
}
87+
88+
public void setExecutionExpiresAfter(Long executionExpiresAfter) {
89+
this.executionExpiresAfter = executionExpiresAfter;
90+
}
91+
7092
@Override
7193
public String toString() {
7294
return "CreateContentGenerationTaskRequest{" +
7395
"model='" + model + '\'' +
7496
", content=" + content +
7597
", callbackUrl='" + callbackUrl + '\'' +
7698
", returnLastFrame=" + returnLastFrame +
99+
", serviceTier='" + serviceTier + '\'' +
100+
", executionExpiresAfter=" + executionExpiresAfter +
77101
'}';
78102
}
79103

@@ -86,6 +110,8 @@ public static class Builder {
86110
private List<Content> content;
87111
private String callbackUrl;
88112
private Boolean returnLastFrame;
113+
private String serviceTier;
114+
private Long executionExpiresAfter;
89115

90116
private Builder() {
91117
}
@@ -110,12 +136,24 @@ public Builder returnLastFrame(Boolean returnLastFrame) {
110136
return this;
111137
}
112138

139+
public Builder serviceTier(String serviceTier) {
140+
this.serviceTier = serviceTier;
141+
return this;
142+
}
143+
144+
public Builder executionExpiresAfter(Long executionExpiresAfter) {
145+
this.executionExpiresAfter = executionExpiresAfter;
146+
return this;
147+
}
148+
113149
public CreateContentGenerationTaskRequest build() {
114150
CreateContentGenerationTaskRequest createContentGenerationTaskRequest = new CreateContentGenerationTaskRequest();
115151
createContentGenerationTaskRequest.setModel(model);
116152
createContentGenerationTaskRequest.setContent(content);
117153
createContentGenerationTaskRequest.setCallbackUrl(callbackUrl);
118154
createContentGenerationTaskRequest.setReturnLastFrame(returnLastFrame);
155+
createContentGenerationTaskRequest.setServiceTier(serviceTier);
156+
createContentGenerationTaskRequest.setExecutionExpiresAfter(executionExpiresAfter);
119157
return createContentGenerationTaskRequest;
120158
}
121159
}

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/model/content/generation/GetContentGenerationTaskResponse.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ public class GetContentGenerationTaskResponse {
5151
@JsonProperty("revised_prompt")
5252
private String revisedPrompt;
5353

54+
@JsonProperty("service_tier")
55+
private String serviceTier;
56+
57+
@JsonProperty("execution_expires_after")
58+
private java.lang.Long executionExpiresAfter;
59+
5460
public String getId() {
5561
return id;
5662
}
@@ -163,6 +169,22 @@ public void setRevisedPrompt(String revisedPrompt) {
163169
this.revisedPrompt = revisedPrompt;
164170
}
165171

172+
public String getServiceTier() {
173+
return serviceTier;
174+
}
175+
176+
public void setServiceTier(String serviceTier) {
177+
this.serviceTier = serviceTier;
178+
}
179+
180+
public java.lang.Long getExecutionExpiresAfter() {
181+
return executionExpiresAfter;
182+
}
183+
184+
public void setExecutionExpiresAfter(java.lang.Long executionExpiresAfter) {
185+
this.executionExpiresAfter = executionExpiresAfter;
186+
}
187+
166188
@JsonIgnoreProperties(ignoreUnknown = true)
167189
public static class Content {
168190

@@ -274,6 +296,8 @@ public String toString() {
274296
", updatedAt=" + updatedAt +
275297
", seed=" + seed +
276298
", revisedPrompt=" + revisedPrompt +
299+
", serviceTier='" + serviceTier + '\'' +
300+
", executionExpiresAfter=" + executionExpiresAfter +
277301
'}';
278302
}
279303
}

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/model/content/generation/ListContentGenerationTasksRequest.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class ListContentGenerationTasksRequest {
1818
private String status;
1919
private String model;
2020
private List<String> taskIds;
21+
private String serviceTier;
2122

2223
public ListContentGenerationTasksRequest() {
2324
}
@@ -70,6 +71,14 @@ public void setTaskIds(List<String> taskIds) {
7071
this.taskIds = taskIds;
7172
}
7273

74+
public String getServiceTier() {
75+
return serviceTier;
76+
}
77+
78+
public void setServiceTier(String serviceTier) {
79+
this.serviceTier = serviceTier;
80+
}
81+
7382
@Override
7483
public String toString() {
7584
return "ListContentGenerationTasksRequest{" +
@@ -91,6 +100,7 @@ public static class Builder {
91100
private String status;
92101
private String model;
93102
private final List<String> taskIds = new ArrayList<>();
103+
private String serviceTier;
94104

95105
public Builder pageNum(java.lang.Integer pageNum) {
96106
this.pageNum = pageNum;
@@ -112,6 +122,11 @@ public Builder model(String model) {
112122
return this;
113123
}
114124

125+
public Builder serviceTier(String serviceTier) {
126+
this.serviceTier = serviceTier;
127+
return this;
128+
}
129+
115130
public Builder taskIds(List<String> taskIds) {
116131
this.taskIds.clear();
117132
this.taskIds.addAll(taskIds);
@@ -124,7 +139,9 @@ public Builder addTaskId(String taskId) {
124139
}
125140

126141
public ListContentGenerationTasksRequest build() {
127-
return new ListContentGenerationTasksRequest(pageNum, pageSize, status, model, taskIds);
142+
ListContentGenerationTasksRequest req = new ListContentGenerationTasksRequest(pageNum, pageSize, status, model, taskIds);
143+
req.setServiceTier(serviceTier);
144+
return req;
128145
}
129146
}
130147
}

volcengine-java-sdk-ark-runtime/src/main/java/com/volcengine/ark/runtime/model/content/generation/ListContentGenerationTasksResponse.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ public static class Item {
7676
@JsonProperty("revised_prompt")
7777
private String revisedPrompt;
7878

79+
@JsonProperty("service_tier")
80+
private String serviceTier;
81+
82+
@JsonProperty("execution_expires_after")
83+
private java.lang.Long executionExpiresAfter;
84+
7985
public String getId() {
8086
return id;
8187
}
@@ -182,9 +188,15 @@ public String getRevisedPrompt() {
182188
return revisedPrompt;
183189
}
184190

185-
public void setRevisedPrompt(String revisedPrompt) {
186-
this.revisedPrompt = revisedPrompt;
187-
}
191+
public void setRevisedPrompt(String revisedPrompt) { this.revisedPrompt = revisedPrompt; }
192+
193+
public String getServiceTier() { return serviceTier; }
194+
195+
public void setServiceTier(String serviceTier) { this.serviceTier = serviceTier; }
196+
197+
public java.lang.Long getExecutionExpiresAfter() { return executionExpiresAfter; }
198+
199+
public void setExecutionExpiresAfter(java.lang.Long executionExpiresAfter) { this.executionExpiresAfter = executionExpiresAfter; }
188200

189201
@JsonIgnoreProperties(ignoreUnknown = true)
190202
public static class Content {
@@ -297,6 +309,8 @@ public String toString() {
297309
", updatedAt=" + updatedAt +
298310
", seed=" + seed +
299311
", revisedPrompt=" + revisedPrompt +
312+
", serviceTier='" + serviceTier + '\'' +
313+
", executionExpiresAfter=" + executionExpiresAfter +
300314
'}';
301315
}
302316
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ Single<ListContentGenerationTasksResponse> listContentGenerationTasks(
101101
@Query("page_size") int pageSize,
102102
@Query("filter.status") String status,
103103
@Query("filter.model") String model,
104+
@Query("filter.service_tier") String serviceTier,
104105
@Query("filter.task_ids") List<String> taskIds,
105106
@HeaderMap Map<String, String> customHeaders
106107
);

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,7 @@ public ListContentGenerationTasksResponse listContentGenerationTasks(ListContent
344344
request.getPageSize(),
345345
request.getStatus(),
346346
request.getModel(),
347+
request.getServiceTier(),
347348
request.getTaskIds(),
348349
new HashMap<>()
349350
)
@@ -360,6 +361,7 @@ public ListContentGenerationTasksResponse listContentGenerationTasks(
360361
request.getPageSize(),
361362
request.getStatus(),
362363
request.getModel(),
364+
request.getServiceTier(),
363365
request.getTaskIds(),
364366
customHeaders
365367
)
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
package com.volcengine.ark.runtime;
2+
3+
import com.volcengine.ark.runtime.model.content.generation.*;
4+
import com.volcengine.ark.runtime.model.content.generation.CreateContentGenerationTaskRequest.Content;
5+
import com.volcengine.ark.runtime.service.ArkService;
6+
import okhttp3.ConnectionPool;
7+
import okhttp3.Dispatcher;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
import java.util.concurrent.TimeUnit;
12+
13+
/**
14+
* Minimal runner to execute the content generation example within Maven test scope.
15+
* It prints the newly added fields service_tier and execution_expires_after.
16+
*/
17+
public class ContentGenerationTaskExampleRunner {
18+
19+
public static void main(String[] args) {
20+
String apiKey = System.getenv("ARK_API_KEY");
21+
if (apiKey == null || apiKey.isEmpty()) {
22+
System.out.println("ARK_API_KEY not set; skipping network calls. Showing request/response field wiring only.");
23+
24+
// Build a dummy response to show fields exist
25+
GetContentGenerationTaskResponse resp = new GetContentGenerationTaskResponse();
26+
// setters exist via Jackson, so we just print toString()
27+
System.out.println("Dummy Response toString(): " + resp.toString());
28+
return;
29+
}
30+
31+
ConnectionPool connectionPool = new ConnectionPool(5, 1, TimeUnit.SECONDS);
32+
Dispatcher dispatcher = new Dispatcher();
33+
ArkService service = ArkService.builder().dispatcher(dispatcher).connectionPool(connectionPool).apiKey(apiKey).build();
34+
35+
String model = System.getenv().getOrDefault("MODEL_EP_ID", "${MODEL EP_ID HERE}");
36+
37+
try {
38+
System.out.println("\n----- CREATE Task Request -----");
39+
List<Content> contents = new ArrayList<>();
40+
contents.add(Content.builder()
41+
.type("text")
42+
.text("示例:演示 service_tier 与 execution_expires_after")
43+
.build());
44+
45+
CreateContentGenerationTaskRequest createRequest = CreateContentGenerationTaskRequest.builder()
46+
.model(model)
47+
.content(contents)
48+
.serviceTier("default")
49+
.executionExpiresAfter(3600L)
50+
.build();
51+
52+
CreateContentGenerationTaskResult createResult = service.createContentGenerationTask(createRequest);
53+
System.out.println(createResult);
54+
55+
System.out.println("\n----- GET Task Request -----");
56+
GetContentGenerationTaskRequest getRequest = GetContentGenerationTaskRequest.builder()
57+
.taskId(createResult.getId())
58+
.build();
59+
GetContentGenerationTaskResponse getResult = service.getContentGenerationTask(getRequest);
60+
System.out.println(getResult);
61+
System.out.println("ServiceTier: " + getResult.getServiceTier());
62+
System.out.println("ExecutionExpiresAfter: " + getResult.getExecutionExpiresAfter());
63+
64+
System.out.println("\n----- LIST Task Request -----");
65+
ListContentGenerationTasksRequest listRequest = ListContentGenerationTasksRequest.builder()
66+
.pageNum(1)
67+
.pageSize(10)
68+
.status(TaskStatus.RUNNING)
69+
.serviceTier("default")
70+
.build();
71+
ListContentGenerationTasksResponse listResponse = service.listContentGenerationTasks(listRequest);
72+
System.out.println(listResponse);
73+
if (listResponse.getItems() != null && !listResponse.getItems().isEmpty()) {
74+
ListContentGenerationTasksResponse.Item item = listResponse.getItems().get(0);
75+
System.out.println("List Item ServiceTier: " + item.getServiceTier());
76+
System.out.println("List Item ExecutionExpiresAfter: " + item.getExecutionExpiresAfter());
77+
}
78+
79+
// ---- FLEX tier flow: create + GET + LIST ----
80+
System.out.println("\n----- CREATE Task Request (flex) -----");
81+
CreateContentGenerationTaskRequest createFlex = CreateContentGenerationTaskRequest.builder()
82+
.model(model)
83+
.content(contents)
84+
.serviceTier("flex")
85+
.executionExpiresAfter(3600L)
86+
.build();
87+
CreateContentGenerationTaskResult createResultFlex = service.createContentGenerationTask(createFlex);
88+
System.out.println(createResultFlex);
89+
90+
System.out.println("\n----- GET Task Request (flex) -----");
91+
GetContentGenerationTaskRequest getFlexReq = GetContentGenerationTaskRequest.builder()
92+
.taskId(createResultFlex.getId())
93+
.build();
94+
GetContentGenerationTaskResponse getFlexResult = service.getContentGenerationTask(getFlexReq);
95+
System.out.println(getFlexResult);
96+
System.out.println("Flex ServiceTier: " + getFlexResult.getServiceTier());
97+
System.out.println("Flex ExecutionExpiresAfter: " + getFlexResult.getExecutionExpiresAfter());
98+
99+
System.out.println("\n----- LIST Task Request (flex) -----");
100+
ListContentGenerationTasksRequest listFlexReq = ListContentGenerationTasksRequest.builder()
101+
.pageNum(1)
102+
.pageSize(10)
103+
.serviceTier("flex")
104+
.build();
105+
ListContentGenerationTasksResponse listFlexResp = service.listContentGenerationTasks(listFlexReq);
106+
System.out.println(listFlexResp);
107+
if (listFlexResp.getItems() != null && !listFlexResp.getItems().isEmpty()) {
108+
ListContentGenerationTasksResponse.Item itemFlex = listFlexResp.getItems().get(0);
109+
System.out.println("Flex List Item ServiceTier: " + itemFlex.getServiceTier());
110+
System.out.println("Flex List Item ExecutionExpiresAfter: " + itemFlex.getExecutionExpiresAfter());
111+
}
112+
113+
} catch (Exception e) {
114+
System.err.println("Example run failed: " + e.getMessage());
115+
} finally {
116+
service.shutdownExecutor();
117+
}
118+
}
119+
}

volcengine-java-sdk-ark-runtime/test/java/com/volcengine/ark/runtime/ContentGenerationTaskExample.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public static void main(String[] args) {
5050
CreateContentGenerationTaskRequest createRequest = CreateContentGenerationTaskRequest.builder()
5151
.model(model)
5252
.content(contents)
53+
.serviceTier("default")
54+
.executionExpiresAfter(3600L)
5355
// .callbackUrl("YOUR CALLBACK URL")
5456
.build();
5557

@@ -65,6 +67,8 @@ public static void main(String[] args) {
6567

6668
GetContentGenerationTaskResponse getResult = service.getContentGenerationTask(getRequest);
6769
System.out.println(getResult);
70+
System.out.println("ServiceTier: " + getResult.getServiceTier());
71+
System.out.println("ExecutionExpiresAfter: " + getResult.getExecutionExpiresAfter());
6872

6973
System.out.println("\n----- LIST Task Request -----");
7074

@@ -76,10 +80,16 @@ public static void main(String[] args) {
7680
// for multiple IDs, you could use:
7781
// .taskIds(Arrays.asList("test-id-1", "test-id-2"))
7882
.model(model)
83+
.serviceTier("default")
7984
.build();
8085

8186
ListContentGenerationTasksResponse listResponse = service.listContentGenerationTasks(listRequest);
8287
System.out.println(listResponse);
88+
if (listResponse.getItems() != null && !listResponse.getItems().isEmpty()) {
89+
ListContentGenerationTasksResponse.Item item = listResponse.getItems().get(0);
90+
System.out.println("List Item ServiceTier: " + item.getServiceTier());
91+
System.out.println("List Item ExecutionExpiresAfter: " + item.getExecutionExpiresAfter());
92+
}
8393

8494
System.out.println("\n----- DELETE Task Request -----");
8595

0 commit comments

Comments
 (0)