From e2a0ea3a333e46b22152d1e90356db4d2cda5f66 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 29 Sep 2025 14:03:18 +0800
Subject: [PATCH] feat(ai): 新增阿里云百炼知识库工具类 - 添加 KnowledgeBaseUtil 工具类,封装阿里云百炼知识库操作 - 实现文件上传、知识库创建与更新等核心功能 - 支持文件MD5计算、分类管理、索引任务提交与状态查询 - 集成阿里云百炼SDK依赖,版本为2.5.0 - 提供完整的知识库初始化与文件更新流程示例 - 添加文件解析状态轮询与错误处理机制 - 支持知识库中文档的追加导入与旧文档删除功能

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 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 75d87dd..3b6013e 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,15 @@
 package cc.mrbird.febs.ai.service.impl;
 
+import cc.mrbird.febs.ai.entity.AiCompanyWorkflow;
+import cc.mrbird.febs.ai.enums.LlmApplicationAppIdEnum;
+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 +28,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 +43,16 @@
             throw new FebsException("百炼工作流初始化异常");
         }
 
+        String companyAppId = appId;
+        String companyId = dto.getCompanyId();
+        if (StrUtil.isNotEmpty(companyId)){
+            AiCompanyWorkflow workflowByTypeAndCompanyId =
+                    aiCompanyService.getWorkflowByTypeAndCompanyId(LlmApplicationAppIdEnum.ADMIN_QUESTION.getCode(), companyId);
+            companyAppId = workflowByTypeAndCompanyId.getCode();
+        }
+
+
+
         HashMap<String, Object> bizParams = new HashMap<>();
         bizParams.put(bizParam_1,dto.getQuestionCnt());
         bizParams.put(bizParam_2,dto.getPromptAiSystem());
@@ -45,7 +62,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