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); }