Skip to content

Commit b0ea3f9

Browse files
committed
feat(model/vl): support thingking mode
1 parent 8add607 commit b0ea3f9

File tree

4 files changed

+32
-4
lines changed

4 files changed

+32
-4
lines changed

samples/MultiModalConversationQwenVL.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
import com.alibaba.dashscope.exception.ApiException;
1111
import com.alibaba.dashscope.exception.NoApiKeyException;
1212
import com.alibaba.dashscope.exception.UploadFileException;
13+
import com.alibaba.dashscope.utils.JsonUtils;
14+
import io.reactivex.Flowable;
1315

1416
public class MultiModalConversationQwenVL {
15-
private static final String modelName = "qwen-vl-max-latest";
17+
private static final String modelName = System.getenv("MODEL_NAME");
1618
public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
1719
MultiModalConversation conv = new MultiModalConversation();
1820
MultiModalMessage systemMessage = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
@@ -25,10 +27,18 @@ public static void videoImageListSample() throws ApiException, NoApiKeyException
2527
Collections.singletonMap("text", "描述这个视频的具体过程"))).build();
2628

2729
MultiModalConversationParam param = MultiModalConversationParam.builder()
28-
.model(MultiModalConversationQwenVL.modelName).message(systemMessage)
30+
.model(MultiModalConversationQwenVL.modelName)
31+
.enableThinking(true)
32+
.thinkingBudget(20)
33+
.message(systemMessage)
2934
.message(userMessage).build();
30-
MultiModalConversationResult result = conv.call(param);
31-
System.out.print(result);
35+
// MultiModalConversationResult result = conv.call(param);
36+
// System.out.print(result);
37+
38+
Flowable<MultiModalConversationResult> results = conv.streamCall(param);
39+
results.blockingForEach(result -> {
40+
System.out.println(JsonUtils.toJson(result));
41+
});
3242
}
3343

3444
public static void main(String[] args) {

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,12 @@ public class MultiModalConversationParam extends HalfDuplexServiceParam {
150150
/** language type for tts */
151151
private String languageType;
152152

153+
/** enable thinking */
154+
private Boolean enableThinking;
155+
156+
/** thinking budget */
157+
private Integer thinkingBudget;
158+
153159
@Override
154160
public JsonObject getHttpBody() {
155161
JsonObject requestObject = new JsonObject();
@@ -283,6 +289,14 @@ public Map<String, Object> getParameters() {
283289
params.put("n", n);
284290
}
285291

292+
if (enableThinking != null) {
293+
params.put("enable_thinking", enableThinking);
294+
}
295+
296+
if (thinkingBudget != null) {
297+
params.put("thinking_budget", thinkingBudget);
298+
}
299+
286300
params.putAll(parameters);
287301
return params;
288302
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,7 @@ public class MultiModalConversationTokensDetails {
1616

1717
@SerializedName("video_tokens")
1818
private Integer videoTokens;
19+
20+
@SerializedName("reasoning_tokens")
21+
private Integer reasoningTokens;
1922
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class MultiModalMessage {
3636
String name;
3737

3838
/** chain of thought content */
39+
@SerializedName("reasoning_content")
3940
String reasoningContent;
4041

4142
/** annotations result for message */

0 commit comments

Comments
 (0)