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.EmbeddingModel
private final FaqRestService
private final org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
checkAndDeleteExistingDoc
(String docId) 检查并删除已存在的文档private FaqVector
createSimpleFaqVectorFromDocument
(org.springframework.ai.document.Document doc) 从文档创建简化版的FaqVector对象 用于在找不到对应的FAQ实体时提供基础信息deleteFaqVector
(FaqEntity faq) 从向量存储中删除FAQvoid
indexFaqVector
(FaqEntity faq) 将FAQ内容添加到向量存储中searchFaqVector
(String query, String kbUid, String categoryUid, String orgUid, int limit) 在向量存储中进行语义搜索void
updateAllVectorIndex
(FaqRequest request) 更新所有FAQ的向量索引void
updateVectorIndex
(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
-