Commit eb1d736b by zhangxingmin

push

parent 05763af2
...@@ -75,13 +75,13 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService { ...@@ -75,13 +75,13 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
throw e; throw e;
} }
// 正常调用大模型流式接口 // 正常调用大模型流式接口(使用 Qwen3.6-Plus 模型)
Generation gen = new Generation(); Generation gen = new Generation();
Message systemMsg = Message.builder().role(Role.SYSTEM.getValue()).content("You are a helpful assistant.").build(); Message systemMsg = Message.builder().role(Role.SYSTEM.getValue()).content("You are a helpful assistant.").build();
Message userMsg = Message.builder().role(Role.USER.getValue()).content(question).build(); Message userMsg = Message.builder().role(Role.USER.getValue()).content(question).build();
GenerationParam param = GenerationParam.builder() GenerationParam param = GenerationParam.builder()
.apiKey("sk-d6551c67cfbe4a759a78dc3625729291") .apiKey("sk-d6551c67cfbe4a759a78dc3625729291") // 请使用安全的密钥管理方式
.model("qwen-plus") .model("qwen3.6-plus") // 模型改为 qwen3.6-plus
.messages(Arrays.asList(systemMsg, userMsg)) .messages(Arrays.asList(systemMsg, userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE) .resultFormat(GenerationParam.ResultFormat.MESSAGE)
.incrementalOutput(true) .incrementalOutput(true)
...@@ -97,6 +97,7 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService { ...@@ -97,6 +97,7 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
log.error("InputRequiredException: {}", e.getMessage()); log.error("InputRequiredException: {}", e.getMessage());
return Flux.just(ServerSentEvent.builder("系统错误:输入参数异常").build()); return Flux.just(ServerSentEvent.builder("系统错误:输入参数异常").build());
} }
// 将 RxJava Flowable 转为 Reactor Flux // 将 RxJava Flowable 转为 Reactor Flux
return Flux.from(flowable) return Flux.from(flowable)
.map(result -> { .map(result -> {
...@@ -104,4 +105,4 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService { ...@@ -104,4 +105,4 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
return ServerSentEvent.builder(delta).build(); return ServerSentEvent.builder(delta).build();
}); });
} }
} }
\ No newline at end of file
package com.yd.ai.api.service.impl;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;
import java.lang.System;
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static void handleGenerationResult(GenerationResult message) {
System.out.println(JsonUtils.toJson(message));
}
public static void streamCallWithMessage(Generation gen, Message userMsg)
throws NoApiKeyException, ApiException, InputRequiredException {
GenerationParam param = buildGenerationParam(userMsg);
Flowable<GenerationResult> result = gen.streamCall(param);
result.blockingForEach(message -> handleGenerationResult(message));
}
private static GenerationParam buildGenerationParam(Message userMsg) {
return GenerationParam.builder()
// 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx")
.apiKey("sk-d6551c67cfbe4a759a78dc3625729291")
// 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
.model("qwen-plus")
.messages(Arrays.asList(userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.incrementalOutput(true)
.build();
}
public static void main(String[] args) {
try {
Generation gen = new Generation();
Message userMsg = Message.builder().role(Role.USER.getValue()).content("孩子教育金如何规划?").build();
streamCallWithMessage(gen, userMsg);
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
logger.error("An exception occurred: {}", e.getMessage());
}
System.exit(0);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment