From ef4528a4415aa80e3ef67eadb3cb5700a01a8335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BB=98?= <925456043@qq.com> Date: Sun, 14 Jun 2026 16:09:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A2=9E=E5=8A=A0=20F?= =?UTF-8?q?AQ=20=E6=8A=A5=E9=94=99=E7=9A=84=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/service/impl/FaqItemServiceImpl.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/easyflow-modules/easyflow-module-ai/src/main/java/tech/easyflow/ai/service/impl/FaqItemServiceImpl.java b/easyflow-modules/easyflow-module-ai/src/main/java/tech/easyflow/ai/service/impl/FaqItemServiceImpl.java index 339f0be..24f2630 100644 --- a/easyflow-modules/easyflow-module-ai/src/main/java/tech/easyflow/ai/service/impl/FaqItemServiceImpl.java +++ b/easyflow-modules/easyflow-module-ai/src/main/java/tech/easyflow/ai/service/impl/FaqItemServiceImpl.java @@ -1,5 +1,6 @@ package tech.easyflow.ai.service.impl; +import cn.dev33.satoken.stp.StpUtil; import cn.idev.excel.EasyExcel; import cn.idev.excel.ExcelWriter; import cn.idev.excel.FastExcel; @@ -8,7 +9,6 @@ import cn.idev.excel.metadata.data.ReadCellData; import cn.idev.excel.read.listener.ReadListener; import cn.idev.excel.write.metadata.WriteSheet; import cn.idev.excel.write.style.column.SimpleColumnWidthStyleStrategy; -import cn.dev33.satoken.stp.StpUtil; import com.easyagents.core.model.embedding.EmbeddingModel; import com.easyagents.core.model.embedding.EmbeddingOptions; import com.easyagents.core.store.DocumentStore; @@ -20,15 +20,15 @@ import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import org.jsoup.Jsoup; import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; import org.jsoup.safety.Safelist; +import org.jsoup.select.Elements; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionTemplate; import org.springframework.web.multipart.MultipartFile; import tech.easyflow.ai.config.SearcherFactory; @@ -366,6 +366,15 @@ public class FaqItemServiceImpl extends ServiceImpl impl searcher.addDocument(doc); } markCollectionEmbedded(collection, preparedStore.embeddingModel); + } catch (BusinessException e) { + throw e; + } catch (RuntimeException e) { + LOG.error("FAQ vectorization failed. collectionId={}, faqId={}, isUpdate={}", + collection == null ? null : collection.getId(), + entity == null ? null : entity.getId(), + isUpdate, + e); + throw new BusinessException("FAQ向量化失败:请检查知识库绑定的向量模型、请求路径、维度或向量库配置"); } finally { DocumentStoreLifecycleSupport.closeQuietly(preparedStore.documentStore); }