Class ChunkVectorService

java.lang.Object
com.bytedesk.kbase.llm_chunk.ChunkVectorService

@Service public class ChunkVectorService extends Object
Chunk向量检索服务 用于处理Chunk的向量存储和相似度搜索
Author:
jackning
  • Field Details

    • vectorStore

      private final org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore vectorStore
    • chunkRestService

      private final ChunkRestService chunkRestService
    • embeddingModel

      @Qualifier("bytedeskOllamaEmbeddingModel") private final org.springframework.ai.embedding.EmbeddingModel embeddingModel
  • Constructor Details

    • ChunkVectorService

      public ChunkVectorService()
  • Method Details

    • indexChunkVector

      @Transactional public void indexChunkVector(ChunkEntity chunk)
      将chunk内容添加到向量存储中
      Parameters:
      chunk - Chunk实体
    • updateVectorIndex

      @Transactional public void updateVectorIndex(ChunkRequest request)
      更新chunk的向量索引
      Parameters:
      request - chunk请求对象
    • updateAllVectorIndex

      public void updateAllVectorIndex(ChunkRequest request)
    • deleteChunkVector

      @Transactional public void deleteChunkVector(ChunkEntity chunk)
      删除chunk的向量索引
      Parameters:
      chunk - Chunk实体
    • searchChunkVector

      public List<ChunkVectorSearchResult> searchChunkVector(String query, String kbUid, String categoryUid, String orgUid, int limit)
      向量相似度搜索
      Parameters:
      query - 查询文本
      kbUid - 知识库UID (可选)
      categoryUid - 分类UID (可选)
      orgUid - 组织UID (可选)
      limit - 返回结果数量限制
      Returns:
      搜索结果列表
    • searchChunkVector

      public List<ChunkVectorSearchResult> searchChunkVector(String query, String kbUid, String categoryUid, String orgUid, int limit, double similarity)
      向量相似度搜索(带相似度阈值参数)
      Parameters:
      query - 查询文本
      kbUid - 知识库UID (可选)
      categoryUid - 分类UID (可选)
      orgUid - 组织UID (可选)
      limit - 返回结果数量限制
      similarity - 相似度阈值 (0-1)
      Returns:
      搜索结果列表
    • checkAndDeleteExistingDoc

      private void checkAndDeleteExistingDoc(String id)
      检查并删除已存在的文档
      Parameters:
      id - 文档ID