From 438b5375d320af6d18f3f34cb26b803200e1ca81 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 23 Sep 2025 14:51:32 +0800
Subject: [PATCH] feat(ai): 新增公司工作流配置查询功能
---
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java | 8 +++++++-
src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyWorkflowServiceImpl.java | 28 ++++++++++++++++++++++++++++
src/main/java/cc/mrbird/febs/ai/service/AiCompanyWorkflowService.java | 10 ++++++++++
src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java | 14 +++++++++++++-
4 files changed, 58 insertions(+), 2 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiCompanyWorkflowService.java b/src/main/java/cc/mrbird/febs/ai/service/AiCompanyWorkflowService.java
new file mode 100644
index 0000000..735e021
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiCompanyWorkflowService.java
@@ -0,0 +1,10 @@
+package cc.mrbird.febs.ai.service;
+
+import cc.mrbird.febs.ai.entity.AiCompanyWorkflow;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface AiCompanyWorkflowService extends IService<AiCompanyWorkflow> {
+
+ AiCompanyWorkflow getByTypeAndCompanyId(Integer type, String companyId);
+
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyWorkflowServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyWorkflowServiceImpl.java
new file mode 100644
index 0000000..50238d2
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyWorkflowServiceImpl.java
@@ -0,0 +1,28 @@
+package cc.mrbird.febs.ai.service.impl;
+
+import cc.mrbird.febs.ai.entity.AiCompanyWorkflow;
+import cc.mrbird.febs.ai.mapper.AiCompanyWorkflowMapper;
+import cc.mrbird.febs.ai.service.AiCompanyWorkflowService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class AiCompanyWorkflowServiceImpl extends ServiceImpl<AiCompanyWorkflowMapper, AiCompanyWorkflow> implements AiCompanyWorkflowService {
+
+ private final AiCompanyWorkflowMapper aiCompanyWorkflowMapper;
+
+ @Override
+ public AiCompanyWorkflow getByTypeAndCompanyId(Integer type, String companyId) {
+ LambdaQueryWrapper<AiCompanyWorkflow> query = Wrappers.lambdaQuery(AiCompanyWorkflow.class);
+ query.eq(AiCompanyWorkflow::getType, type);
+ query.eq(AiCompanyWorkflow::getCompanyId, companyId);
+ query.last("limit 1");
+ return aiCompanyWorkflowMapper.selectOne(query);
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
index 03f253e..e355029 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
@@ -53,6 +53,7 @@
private final AiProductQuestionService aiProductQuestionService;
private final LlmStrategyFactory llmStrategyFactory;
private final AiService aiService;
+ private final AiCompanyWorkflowService aiCompanyWorkflowService;
@Override
@@ -252,7 +253,12 @@
llmStrategyDtoList.add(llmStrategyDto);
llmStrategyDto = this.buildLlmStrategyDtoList(answer, 2);
llmStrategyDtoList.add(llmStrategyDto);
- llmStrategyDto = this.buildLlmStrategyDtoList(String.valueOf(type), 4);
+
+ AiCompanyWorkflow aiCompanyWorkflow = aiCompanyWorkflowService.getByTypeAndCompanyId(type,aiMemberTalk.getCompanyId());
+ if (ObjectUtil.isNull(aiCompanyWorkflow)){
+ throw new FebsException("工作流配置异常,请联系管理员");
+ }
+ llmStrategyDto = this.buildLlmStrategyDtoList(aiCompanyWorkflow.getCode(), 4);
llmStrategyDtoList.add(llmStrategyDto);
String modelName = LlmStrategyEnum.getName(aiService.getSystemSetAiType());
diff --git a/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
index 6b5f9e7..95441da 100644
--- a/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
@@ -83,6 +83,17 @@
return appId;
}
+ private String getAppIdV2(List<LlmStrategyDto> dto) {
+ String appId = null;
+ for (LlmStrategyDto dtoItem : dto){
+ if (StrUtil.equals(dtoItem.getRole(),Role.TOOL.getValue())){
+ appId = dtoItem.getContent();
+ break;
+ }
+ }
+ return appId;
+ }
+
@Override
public FebsResponse llmInvokeNonStreaming(List<LlmStrategyDto> dto) {
return null;
@@ -166,7 +177,8 @@
}
HashMap prompt = getPrompt(dto);
String query = getQuery(dto);
- String appId = getAppId(dto);
+// String appId = getAppId(dto);
+ String appId = getAppIdV2(dto);
if (prompt == null || prompt.size() == 0){
throw new FebsException("百炼工作流初始化异常");
}
--
Gitblit v1.9.1