From 2cab7be62a04f9cc7af2c2540eebf3d548c81519 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 23 Sep 2025 15:00:49 +0800 Subject: [PATCH] feat(ai): 新增根据类型和公司ID查询工作流功能- 在AiCompanyService接口中添加getWorkflowByTypeAndCompanyId方法 - 实现类AiCompanyServiceImpl中增加对应查询逻辑 - 在AiServiceImpl中调用新方法获取公司特定应用ID - 更新百炼API调用逻辑以支持动态应用ID - 为新工作流类型5添加初始化配置 --- src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java | 11 +++++++++++ src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java | 17 ++++++++++++++++- src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java | 2 ++ 3 files changed, 29 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java b/src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java index 3654ec3..369d307 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java +++ b/src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java @@ -23,6 +23,8 @@ AiCompanyWorkflow getWorkflowById(String id); + AiCompanyWorkflow getWorkflowByTypeAndCompanyId(int type, String companyId); + IPage<AiCompanyWorkflow> workflowListInPage(AiCompanyWorkflow dto, QueryRequest request); FebsResponse addWorkflow(AiCompanyWorkflow dto); diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java index 5a1a242..f04f657 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java @@ -57,6 +57,7 @@ this.addWorkflow(entity.getId(),2,null,createTime); this.addWorkflow(entity.getId(),3,null,createTime); this.addWorkflow(entity.getId(),4,null,createTime); + this.addWorkflow(entity.getId(),5,null,createTime); this.addWorkflow(entity.getId(),6,null,createTime); return new FebsResponse().success().message("操作成功"); @@ -92,6 +93,16 @@ } @Override + public AiCompanyWorkflow getWorkflowByTypeAndCompanyId(int type, String companyId) { + + LambdaQueryWrapper<AiCompanyWorkflow> query = Wrappers.lambdaQuery(AiCompanyWorkflow.class); + query.eq(AiCompanyWorkflow::getCompanyId, companyId); + query.eq(AiCompanyWorkflow::getType, type); + query.last("limit 1"); + return aiCompanyWorkflowMapper.selectOne(query); + } + + @Override public IPage<AiCompanyWorkflow> workflowListInPage(AiCompanyWorkflow dto, QueryRequest request) { Page<AiCompanyWorkflow> page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper<AiCompanyWorkflow> query = Wrappers.lambdaQuery(AiCompanyWorkflow.class); 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 75d87dd..931084e 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 @@ -1,10 +1,14 @@ 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.req.AiProductQuestionAiDto; +import cc.mrbird.febs.ai.service.AiCompanyService; import cc.mrbird.febs.ai.service.AiService; import cc.mrbird.febs.common.exception.FebsException; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.dashscope.app.Application; import com.alibaba.dashscope.app.ApplicationParam; import com.alibaba.dashscope.app.ApplicationResult; @@ -23,6 +27,8 @@ @RequiredArgsConstructor public class AiServiceImpl implements AiService { + private final AiCompanyService aiCompanyService; + private static final String apiKey = "sk-babdcf8799144134915cee2683794b2f"; private static final String appId = "963b854d994a4f578d8207cd477a2464"; @@ -36,6 +42,15 @@ throw new FebsException("百炼工作流初始化异常"); } + String companyAppId = appId; + String companyId = dto.getCompanyId(); + if (StrUtil.isNotEmpty(companyId)){ + AiCompanyWorkflow workflowByTypeAndCompanyId = aiCompanyService.getWorkflowByTypeAndCompanyId(5, companyId); + companyAppId = workflowByTypeAndCompanyId.getCode(); + } + + + HashMap<String, Object> bizParams = new HashMap<>(); bizParams.put(bizParam_1,dto.getQuestionCnt()); bizParams.put(bizParam_2,dto.getPromptAiSystem()); @@ -45,7 +60,7 @@ ApplicationParam param = ApplicationParam.builder() // 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。 .apiKey(apiKey) - .appId(appId) //替换为实际的应用 ID + .appId(companyAppId) //替换为实际的应用 ID .flowStreamMode(FlowStreamMode.MESSAGE_FORMAT) .prompt(query) .bizParams(JsonUtils.toJsonObject( bizParams)) -- Gitblit v1.9.1