package com.gxwebsoft.ai.service;

import com.gxwebsoft.ai.dto.KnowledgeBaseRequest;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.springframework.web.multipart.MultipartFile;

public interface KnowledgeBaseService {
    
    /**
     * 查询知识库
     */
    Set<String> queryKnowledgeBase(KnowledgeBaseRequest req);
    
    /**
     * 查询知识库（带参数）
     */
    Set<String> queryKnowledgeBase(String kbId, String query, Integer topK, Integer formCommit);
    
    /**
     * 创建知识库
     */
    String createKnowledgeBase(String companyName, String companyCode);
    
    /**
     * 创建临时知识库
     */
    String createKnowledgeBaseTemp();
    
    /**
     * 检查知识库是否存
     */
    boolean existsKnowledgeBase(String companyCode);
    
    /**
     * 通过知识库名称查询知识库ID
     */
    String getKnowledgeBaseIdByName(String companyCode);
    
    /**
     * 查询知识库下的文档列表
     */
    Map<String,Object> listDocuments(String kbId, Integer pageSize, Integer pageNumber);
    
    /**
     * 删除知识库
     */
    boolean deleteIndex(String kbId);
    
    /**
     * 删除知识库下的文档
     */
    boolean deleteIndexDocument(String kbId, String fileIds);
    
    /**
     * 上传知识库文档
     */
    List<String> uploadDocuments(String kbId, MultipartFile[] files);
    
    /**
     * 知识库追加导入已解析的文档
     */
    Boolean submitDocuments(String kbId, String fileId);
    
    /**
     * 知识库追加导入已解析的文档
     */
    Boolean submitDocuments(String kbId, List<String> fileIds);
}