fix: 修复增加 FAQ 报错的 bug #1

Merged
czm merged 1 commits from hotfix/embedding_error into main 2026-06-14 16:18:46 +08:00

View File

@@ -1,5 +1,6 @@
package tech.easyflow.ai.service.impl; package tech.easyflow.ai.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import cn.idev.excel.EasyExcel; import cn.idev.excel.EasyExcel;
import cn.idev.excel.ExcelWriter; import cn.idev.excel.ExcelWriter;
import cn.idev.excel.FastExcel; 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.read.listener.ReadListener;
import cn.idev.excel.write.metadata.WriteSheet; import cn.idev.excel.write.metadata.WriteSheet;
import cn.idev.excel.write.style.column.SimpleColumnWidthStyleStrategy; 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.EmbeddingModel;
import com.easyagents.core.model.embedding.EmbeddingOptions; import com.easyagents.core.model.embedding.EmbeddingOptions;
import com.easyagents.core.store.DocumentStore; import com.easyagents.core.store.DocumentStore;
@@ -20,15 +20,15 @@ import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.jsoup.Jsoup; import org.jsoup.Jsoup;
import org.jsoup.nodes.Element; import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.jsoup.safety.Safelist; import org.jsoup.safety.Safelist;
import org.jsoup.select.Elements;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionTemplate; import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import tech.easyflow.ai.config.SearcherFactory; import tech.easyflow.ai.config.SearcherFactory;
@@ -366,6 +366,15 @@ public class FaqItemServiceImpl extends ServiceImpl<FaqItemMapper, FaqItem> impl
searcher.addDocument(doc); searcher.addDocument(doc);
} }
markCollectionEmbedded(collection, preparedStore.embeddingModel); 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 { } finally {
DocumentStoreLifecycleSupport.closeQuietly(preparedStore.documentStore); DocumentStoreLifecycleSupport.closeQuietly(preparedStore.documentStore);
} }