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