Skip to content

Commit 5d7f205

Browse files
author
mose-x.zm
committed
Add a header to all Result classes.
1 parent 71aface commit 5d7f205

9 files changed

Lines changed: 38 additions & 1 deletion

File tree

src/main/java/com/alibaba/dashscope/aigc/codegeneration/CodeGenerationResult.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.alibaba.dashscope.utils.JsonUtils;
66
import com.alibaba.dashscope.utils.StringUtils;
77
import com.google.gson.JsonObject;
8+
import java.util.Map;
89
import lombok.Data;
910
import lombok.extern.slf4j.Slf4j;
1011

@@ -14,12 +15,14 @@ public final class CodeGenerationResult {
1415
private String requestId;
1516
private CodeGenerationUsage usage;
1617
private CodeGenerationOutput output;
18+
private Map<String, Object> headers;
1719

1820
private CodeGenerationResult() {}
1921

2022
public static CodeGenerationResult fromDashScopeResult(DashScopeResult dashScopeResult) {
2123
CodeGenerationResult result = new CodeGenerationResult();
2224
result.setRequestId(dashScopeResult.getRequestId());
25+
result.setHeaders(dashScopeResult.getHeaders());
2326
if (dashScopeResult.getUsage() != null) {
2427
result.setUsage(
2528
JsonUtils.fromJsonObject(

src/main/java/com/alibaba/dashscope/aigc/conversation/ConversationResult.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,22 @@
66
import com.alibaba.dashscope.common.DashScopeResult;
77
import com.alibaba.dashscope.utils.JsonUtils;
88
import com.google.gson.JsonObject;
9+
import java.util.Map;
910
import lombok.Data;
1011

1112
@Data
1213
public final class ConversationResult {
1314
private String requestId;
1415
private GenerationUsage usage;
1516
private GenerationOutput output;
17+
private Map<String, Object> headers;
1618

1719
private ConversationResult() {}
1820

1921
public static ConversationResult fromDashScopeResult(DashScopeResult dashScopeResult) {
2022
ConversationResult result = new ConversationResult();
2123
result.setRequestId(dashScopeResult.getRequestId());
24+
result.setHeaders(dashScopeResult.getHeaders());
2225
result.setUsage(
2326
JsonUtils.fromJsonObject(
2427
dashScopeResult.getUsage().getAsJsonObject(), GenerationUsage.class));

src/main/java/com/alibaba/dashscope/aigc/generation/GenerationResult.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.alibaba.dashscope.utils.StringUtils;
77
import com.google.gson.JsonObject;
88
import com.google.gson.annotations.SerializedName;
9+
import java.util.Map;
910
import lombok.Data;
1011
import lombok.extern.slf4j.Slf4j;
1112

@@ -15,6 +16,7 @@ public final class GenerationResult {
1516
private String requestId;
1617
private GenerationUsage usage;
1718
private GenerationOutput output;
19+
private Map<String, Object> headers;
1820

1921
@SerializedName("status_code")
2022
private Integer statusCode;
@@ -30,6 +32,7 @@ public static GenerationResult fromDashScopeResult(DashScopeResult dashScopeResu
3032
result.setStatusCode(dashScopeResult.getStatusCode());
3133
result.setCode(dashScopeResult.getCode());
3234
result.setMessage(dashScopeResult.getMessage());
35+
result.setHeaders(dashScopeResult.getHeaders());
3336
if (dashScopeResult.getUsage() != null) {
3437
result.setUsage(
3538
JsonUtils.fromJsonObject(

src/main/java/com/alibaba/dashscope/aigc/imagegeneration/ImageGenerationResult.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.alibaba.dashscope.utils.JsonUtils;
55
import com.google.gson.JsonObject;
66
import com.google.gson.annotations.SerializedName;
7+
import java.util.Map;
78
import lombok.Data;
89
import lombok.extern.slf4j.Slf4j;
910

@@ -13,6 +14,7 @@ public class ImageGenerationResult {
1314
private String requestId;
1415
private ImageGenerationUsage usage;
1516
private ImageGenerationOutput output;
17+
private Map<String, Object> headers;
1618

1719
@SerializedName("status_code")
1820
private Integer statusCode;
@@ -28,6 +30,7 @@ public static ImageGenerationResult fromDashScopeResult(DashScopeResult dashScop
2830
result.setStatusCode(dashScopeResult.getStatusCode());
2931
result.setCode(dashScopeResult.getCode());
3032
result.setMessage(dashScopeResult.getMessage());
33+
result.setHeaders(dashScopeResult.getHeaders());
3134
if (dashScopeResult.getUsage() != null) {
3235
result.setUsage(
3336
JsonUtils.fromJsonObject(

src/main/java/com/alibaba/dashscope/aigc/imagesynthesis/ImageSynthesisResult.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.alibaba.dashscope.utils.StringUtils;
77
import com.google.gson.JsonObject;
88
import com.google.gson.annotations.SerializedName;
9+
import java.util.Map;
910
import lombok.Data;
1011
import lombok.extern.slf4j.Slf4j;
1112

@@ -17,6 +18,7 @@ public class ImageSynthesisResult {
1718

1819
private ImageSynthesisOutput output;
1920
private ImageSynthesisUsage usage;
21+
private Map<String, Object> headers;
2022

2123
@SerializedName("status_code")
2224
private Integer statusCode;
@@ -33,6 +35,7 @@ public static ImageSynthesisResult fromDashScopeResult(DashScopeResult dashScope
3335
result.statusCode = dashScopeResult.getStatusCode();
3436
result.code = dashScopeResult.getCode();
3537
result.message = dashScopeResult.getMessage();
38+
result.headers = dashScopeResult.getHeaders();
3639
if (dashScopeResult.getUsage() != null) {
3740
result.setUsage(
3841
JsonUtils.fromJsonObject(

src/main/java/com/alibaba/dashscope/aigc/multimodalconversation/MultiModalConversationResult.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.alibaba.dashscope.utils.JsonUtils;
55
import com.google.gson.JsonObject;
66
import com.google.gson.annotations.SerializedName;
7+
import java.util.Map;
78
import lombok.Data;
89
import lombok.extern.slf4j.Slf4j;
910

@@ -13,6 +14,7 @@ public class MultiModalConversationResult {
1314
private String requestId;
1415
private MultiModalConversationUsage usage;
1516
private MultiModalConversationOutput output;
17+
private Map<String, Object> headers;
1618

1719
@SerializedName("status_code")
1820
private Integer statusCode;
@@ -28,6 +30,7 @@ public static MultiModalConversationResult fromDashScopeResult(DashScopeResult d
2830
result.setStatusCode(dashScopeResult.getStatusCode());
2931
result.setCode(dashScopeResult.getCode());
3032
result.setMessage(dashScopeResult.getMessage());
33+
result.setHeaders(dashScopeResult.getHeaders());
3134
if (dashScopeResult.getUsage() != null) {
3235
result.setUsage(
3336
JsonUtils.fromJsonObject(

src/main/java/com/alibaba/dashscope/aigc/videosynthesis/VideoSynthesisResult.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.alibaba.dashscope.utils.JsonUtils;
66
import com.google.gson.JsonObject;
77
import com.google.gson.annotations.SerializedName;
8+
import java.util.Map;
89
import lombok.Data;
910
import lombok.extern.slf4j.Slf4j;
1011

@@ -16,6 +17,7 @@ public class VideoSynthesisResult {
1617

1718
private VideoSynthesisOutput output;
1819
private VideoSynthesisUsage usage;
20+
private Map<String, Object> headers;
1921

2022
@SerializedName("status_code")
2123
private Integer statusCode;
@@ -32,6 +34,7 @@ public static VideoSynthesisResult fromDashScopeResult(DashScopeResult dashScope
3234
result.statusCode = dashScopeResult.getStatusCode();
3335
result.code = dashScopeResult.getCode();
3436
result.message = dashScopeResult.getMessage();
37+
result.headers = dashScopeResult.getHeaders();
3538
if (dashScopeResult.getUsage() != null) {
3639
result.setUsage(
3740
JsonUtils.fromJsonObject(

src/main/java/com/alibaba/dashscope/common/DashScopeResult.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
import com.alibaba.dashscope.utils.JsonUtils;
1212
import com.google.gson.JsonObject;
1313
import java.nio.ByteBuffer;
14+
import java.util.List;
15+
import java.util.Map;
16+
import java.util.stream.Collectors;
1417
import lombok.Data;
1518
import lombok.EqualsAndHashCode;
1619

@@ -28,6 +31,7 @@ public Boolean isBinaryOutput() {
2831
@SuppressWarnings("unchecked")
2932
protected <T extends Result> T fromResponse(Protocol protocol, NetworkResponse response)
3033
throws ApiException {
34+
this.setHeaders(changeHeaders(response.getHeaders()));
3135
if (protocol == Protocol.WEBSOCKET) {
3236
if (response.getBinary() == null) {
3337
JsonObject jsonObject = JsonUtils.parse(response.getMessage());
@@ -168,6 +172,7 @@ public <T extends Result> T fromResponse(
168172
public <T extends Result> T fromResponse(
169173
Protocol protocol, NetworkResponse response, boolean isFlattenResult, HalfDuplexRequest req)
170174
throws ApiException {
175+
this.setHeaders(changeHeaders(response.getHeaders()));
171176
// check it's encrypted output
172177
if ((response.getHeaders().containsKey("X-DashScope-OutputEncrypted".toLowerCase())
173178
|| req.isEncryptRequest())
@@ -233,4 +238,15 @@ public <T extends Result> T fromResponse(
233238
}
234239
return fromResponse(protocol, response, isFlattenResult);
235240
}
241+
242+
private Map<String, Object> changeHeaders(Map<String, List<String>> headers) {
243+
return headers.entrySet().stream()
244+
.collect(
245+
Collectors.toMap(
246+
Map.Entry::getKey,
247+
entry -> {
248+
List<String> values = entry.getValue();
249+
return (values == null || values.isEmpty()) ? "" : String.join(",", values);
250+
}));
251+
}
236252
}

src/main/java/com/alibaba/dashscope/common/Result.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public abstract class Result {
2424
private JsonElement usage;
2525

2626
/** The headers of response */
27-
private Map<String, String> headers;
27+
private Map<String, Object> headers;
2828

2929
/** The HTTP status code from server response */
3030
private Integer statusCode;

0 commit comments

Comments
 (0)