//package com.gxwebsoft.ai.util;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import com.alibaba.fastjson.JSON;
//import com.aliyun.bailian20231229.models.CreateIndexResponse;
//import com.aliyun.bailian20231229.models.DeleteFileResponse;
//import com.aliyun.bailian20231229.models.DeleteIndexDocumentResponse;
//import com.aliyun.bailian20231229.models.DeleteIndexResponse;
//import com.aliyun.bailian20231229.models.ListIndexDocumentsResponse;
//import com.aliyun.bailian20231229.models.ListIndicesResponse;
//import com.aliyun.bailian20231229.models.RetrieveRequest;
//import com.aliyun.bailian20231229.models.RetrieveResponse;
//import com.aliyun.teautil.models.RuntimeOptions;
//
///**
// * 知识库工具类
// * @author GIIT-YC
// *
// */
//public class KnowledgeBaseUtil {
//
//	/**
//	 * 在指定的知识库中检索信息。
//	 *
//	 * @param client      客户端对象（bailian20231229Client）
//	 * @param workspaceId 业务空间ID
//	 * @param indexId     知识库ID
//	 * @param query       检索查询语句
//	 * @return 阿里云百炼服务的响应
//	 */
//	public static RetrieveResponse retrieveIndex(com.aliyun.bailian20231229.Client client, String workspaceId, String indexId, String query) throws Exception {
//		RetrieveRequest retrieveRequest = new RetrieveRequest();
//		retrieveRequest.setIndexId(indexId);
//		retrieveRequest.setQuery(query);
//		retrieveRequest.setDenseSimilarityTopK(100);
//		retrieveRequest.setSparseSimilarityTopK(100);
//		retrieveRequest.setEnableReranking(false);//开启耗费巨量token
//		RuntimeOptions runtime = new RuntimeOptions();
//		return client.retrieveWithOptions(workspaceId, retrieveRequest, null, runtime);
//	}
//	
//	public static RetrieveResponse retrieveIndex(com.aliyun.bailian20231229.Client client, String workspaceId, String indexId, String query, List<String> filesIds) throws Exception {
//		RetrieveRequest retrieveRequest = new RetrieveRequest();
//		retrieveRequest.setIndexId(indexId);
//		retrieveRequest.setQuery(query);
//		retrieveRequest.setDenseSimilarityTopK(100);
//		retrieveRequest.setSparseSimilarityTopK(100);
//		retrieveRequest.setEnableReranking(false);//开启耗费巨量token
//		List<Map<String, String>> searchFilters = new ArrayList<>();
//		Map<String, String> searchFiltersTags = new HashMap<>();
//		searchFiltersTags.put("tags", JSON.toJSONString(filesIds));
//		searchFilters.add(searchFiltersTags);
//		retrieveRequest.setSearchFilters(searchFilters);
//		RuntimeOptions runtime = new RuntimeOptions();
//		return client.retrieveWithOptions(workspaceId, retrieveRequest, null, runtime);
//	}
//	
//	/**
//	 * 在阿里云百炼服务中创建知识库（初始化）。
//	 *
//	 * @param client        客户端对象
//	 * @param workspaceId   业务空间ID
//	 * @param name          知识库名称
//	 * @param desc          知识库描述
//	 * @return 阿里云百炼服务的响应对象
//	 */
//	public static CreateIndexResponse createIndex(com.aliyun.bailian20231229.Client client, String workspaceId, String name, String desc) throws Exception {
//		Map<String, String> headers = new HashMap<>();
//		com.aliyun.bailian20231229.models.CreateIndexRequest createIndexRequest = new com.aliyun.bailian20231229.models.CreateIndexRequest();
//		createIndexRequest.setStructureType("unstructured");
//		createIndexRequest.setName(name);
//		createIndexRequest.setDescription(desc);
//		createIndexRequest.setSinkType("DEFAULT");
//		createIndexRequest.setEmbeddingModelName("text-embedding-v4");
//		com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
//		return client.createIndexWithOptions(workspaceId, createIndexRequest, headers, runtime);
//	}
//	
//	/**
//	 * 获取指定业务空间下一个或多个知识库的详细信息
//	 *
//	 * @param client      客户端（Client）
//	 * @param workspaceId 业务空间ID
//	 * @return 阿里云百炼服务的响应
//	 */
//	public static ListIndicesResponse listIndices(com.aliyun.bailian20231229.Client client, String workspaceId) throws Exception {
//		Map<String, String> headers = new HashMap<>();
//		com.aliyun.bailian20231229.models.ListIndicesRequest listIndicesRequest = new com.aliyun.bailian20231229.models.ListIndicesRequest();
//		com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
//		return client.listIndicesWithOptions(workspaceId, listIndicesRequest, headers, runtime);
//	}
//
//	/**
//	 * 永久性删除指定的知识库
//	 *
//	 * @param client      客户端（Client）
//	 * @param workspaceId 业务空间ID
//	 * @param indexId     知识库ID
//	 * @return 阿里云百炼服务的响应
//	 */
//	public static DeleteIndexResponse deleteIndex(com.aliyun.bailian20231229.Client client, String workspaceId, String indexId) throws Exception {
//		Map<String, String> headers = new HashMap<>();
//		com.aliyun.bailian20231229.models.DeleteIndexRequest deleteIndexRequest = new com.aliyun.bailian20231229.models.DeleteIndexRequest();
//		deleteIndexRequest.setIndexId(indexId);
//		com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
//		return client.deleteIndexWithOptions(workspaceId, deleteIndexRequest, headers, runtime);
//	}
//
//	/**
//	 * 查询知识库下的文档列表
//	 *
//	 * @param client      客户端（Client）
//	 * @param workspaceId 业务空间ID
//	 * @param indexId     知识库ID
//	 * @return 阿里云百炼服务的响应
//	 */
//	public static ListIndexDocumentsResponse listIndexDocuments(com.aliyun.bailian20231229.Client client, String workspaceId, String indexId, Integer pageSize, Integer pageNumber) throws Exception {
//		com.aliyun.bailian20231229.models.ListIndexDocumentsRequest listIndexDocumentsRequest = new com.aliyun.bailian20231229.models.ListIndexDocumentsRequest();
//		listIndexDocumentsRequest.setIndexId(indexId);
//		listIndexDocumentsRequest.setPageSize(pageSize);
//		listIndexDocumentsRequest.setPageNumber(pageNumber);
//		return client.listIndexDocuments(workspaceId, listIndexDocumentsRequest);
//	}
//	
//	/**
//	 * 删除知识库下的文档
//	 *
//	 * @param client      客户端（Client）
//	 * @param workspaceId 业务空间ID
//	 * @param indexId     知识库ID
//	 * @param ids         删除文件ID列表
//	 * @return 阿里云百炼服务的响应
//	 */
//	public static DeleteIndexDocumentResponse deleteIndexDocument(com.aliyun.bailian20231229.Client client, String workspaceId, String indexId, List<String> ids) throws Exception {
//		com.aliyun.bailian20231229.models.DeleteIndexDocumentRequest deleteIndexDocumentRequest = new com.aliyun.bailian20231229.models.DeleteIndexDocumentRequest();
//		deleteIndexDocumentRequest.setIndexId(indexId);
//		deleteIndexDocumentRequest.setDocumentIds(ids);
//		return client.deleteIndexDocument(workspaceId, deleteIndexDocumentRequest);
//	}
//	
//	/**
//	 * 删除阿里云应用数据文档
//	 *
//	 * @param client      客户端（Client）
//	 * @param workspaceId 业务空间ID
//	 * @param fileId      删除文件ID
//	 * @return 阿里云百炼服务的响应
//	 */
//	public static DeleteFileResponse deleteAppDocument(com.aliyun.bailian20231229.Client client, String workspaceId, String fileId) throws Exception {
//		return client.deleteFile(fileId, workspaceId);
//	}
//}
