From b2aa119a3e476cbb43f23a82745159d8071925f7 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 12 Sep 2025 16:30:58 +0800
Subject: [PATCH] feat(ai): 添加产品类别层级功能
---
src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java | 59 ++++++++++++++++++++++++++---------------------------------
1 files changed, 26 insertions(+), 33 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
index f89d249..75d87dd 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
@@ -5,6 +5,13 @@
import cc.mrbird.febs.common.exception.FebsException;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.dashscope.app.Application;
+import com.alibaba.dashscope.app.ApplicationParam;
+import com.alibaba.dashscope.app.ApplicationResult;
+import com.alibaba.dashscope.app.FlowStreamMode;
+import com.alibaba.dashscope.exception.InputRequiredException;
+import com.alibaba.dashscope.exception.NoApiKeyException;
+import com.alibaba.dashscope.utils.JsonUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -35,38 +42,24 @@
bizParams.put(bizParam_3,dto.getJsonFormat());
String query = dto.getQuery();
long startTime = System.currentTimeMillis();
-// ApplicationParam param = ApplicationParam.builder()
-// // 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
-// .apiKey(apiKey)
-// .appId(appId) //替换为实际的应用 ID
-// .flowStreamMode(FlowStreamMode.MESSAGE_FORMAT)
-// .prompt(query)
-// .bizParams(JsonUtils.toJsonObject( bizParams))
-// .build();
-//
-// Application application = new Application();
-// Flowable<ApplicationResult> result;
-// try {
-// result = application.streamCall(param);
-// } catch (NoApiKeyException | InputRequiredException e) {
-// throw new FebsException(StrUtil.format("百炼工作流输出失败:{}",e.getMessage()));
-// }
-//
-// return Flux.from(result)
-// .map(message -> {
-// HashMap<String, String> stringStringHashMap = new HashMap<>();
-// if (!message.getOutput().getFinishReason().equals("stop")){
-// stringStringHashMap.put(LlmStrategyContextEnum.CONTENT.name(),message.getOutput().getWorkflowMessage().getMessage().getContent());
-// }
-// return new FebsResponse().success().data(stringStringHashMap);
-// })
-// .doOnComplete(() -> {
-// long endTime = System.currentTimeMillis();
-// System.out.println("百炼工作流输出:" + (endTime - startTime) + "毫秒");
-// })
-// .doOnError(error -> {
-// throw new FebsException(StrUtil.format("百炼工作流输出失败:{}",error));
-// });
- return null;
+ ApplicationParam param = ApplicationParam.builder()
+ // 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
+ .apiKey(apiKey)
+ .appId(appId) //替换为实际的应用 ID
+ .flowStreamMode(FlowStreamMode.MESSAGE_FORMAT)
+ .prompt(query)
+ .bizParams(JsonUtils.toJsonObject( bizParams))
+ .build();
+
+ Application application = new Application();
+ ApplicationResult result = null;
+ try {
+ result = application.call(param);
+ } catch (NoApiKeyException e) {
+ throw new FebsException("百炼工作流调用异常");
+ } catch (InputRequiredException e) {
+ throw new FebsException("百炼工作流调用异常");
+ }
+ return result.getOutput().getText();
}
}
--
Gitblit v1.9.1