Package com.bytedesk.kbase.faq.vector
Class FaqVectorService
java.lang.Object
com.bytedesk.kbase.faq.vector.FaqVectorService
FAQ向量检索服务
用于处理FAQ的向量存储和相似度搜索
- Author:
- jackning
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.springframework.ai.embedding.EmbeddingModelprivate final FaqRestServiceprivate final org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcheckAndDeleteExistingDoc(String docId) 检查并删除已存在的文档private FaqVectorcreateSimpleFaqVectorFromDocument(org.springframework.ai.document.Document doc) 从文档创建简化版的FaqVector对象 用于在找不到对应的FAQ实体时提供基础信息deleteFaqVector(FaqEntity faq) 从向量存储中删除FAQvoidindexFaqVector(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
-
embeddingModel
@Qualifier("bytedeskOllamaEmbeddingModel") private final org.springframework.ai.embedding.EmbeddingModel embeddingModel
-
-
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:
- 是否删除成功
-
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对象
-
checkAndDeleteExistingDoc
检查并删除已存在的文档- Parameters:
docId- 文档ID
-