Class FaqVectorService
java.lang.Object
com.bytedesk.kbase.llm_faq.vector.FaqVectorService
@Service
@ConditionalOnBean(org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore.class)
public class FaqVectorService
extends Object
FAQ向量检索服务
用于处理FAQ的向量存储和相似度搜索
- Author:
- jackning
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final FaqRestServiceprivate final org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate FaqVectorcreateSimpleFaqVectorFromDocument(org.springframework.ai.document.Document doc) 从文档创建简化版的FaqVector对象 用于在找不到对应的FAQ实体时提供基础信息deleteFaqVector(FaqEntity faq) 从向量存储中删除FAQ向量文档 修改为不更新实体的方式,只进行向量删除操作,避免实体并发修改冲突voidindexFaqVector(FaqEntity faq) 将FAQ内容添加到向量存储中 添加版本检查,以更好地处理乐观锁冲突searchFaqVector(String query, String kbUid, String categoryUid, String orgUid, int limit) 在向量存储中进行语义搜索voidupdateAllVectorIndex(FaqRequest request) 更新所有FAQ的向量索引voidupdateVectorIndex(FaqRequest request) 更新FAQ的向量索引
-
Field Details
-
vectorStore
private final org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore vectorStore -
faqRestService
-
-
Constructor Details
-
FaqVectorService
public FaqVectorService()
-
-
Method Details
-
indexFaqVector
将FAQ内容添加到向量存储中 添加版本检查,以更好地处理乐观锁冲突- Parameters:
faq- FAQ实体
-
updateVectorIndex
更新FAQ的向量索引- Parameters:
request- FAQ请求对象
-
updateAllVectorIndex
更新所有FAQ的向量索引- Parameters:
request- FAQ请求对象,包含知识库ID
-
deleteFaqVector
从向量存储中删除FAQ向量文档 修改为不更新实体的方式,只进行向量删除操作,避免实体并发修改冲突- Parameters:
faq- FAQ实体- Returns:
- 删除成功返回true,否则返回false
-
searchFaqVector
public List<FaqVectorSearchResult> searchFaqVector(String query, String kbUid, String categoryUid, String orgUid, int limit) 在向量存储中进行语义搜索- Parameters:
query- 搜索关键词kbUid- 知识库UID(可选)categoryUid- 分类UID(可选)orgUid- 组织UID(可选)limit- 返回结果数量限制- Returns:
- 相似度搜索结果列表
-
createSimpleFaqVectorFromDocument
从文档创建简化版的FaqVector对象 用于在找不到对应的FAQ实体时提供基础信息- Parameters:
doc- 文档对象- Returns:
- 简化的FaqVector对象
-