//package com.gxwebsoft.ai.util;
//
//import com.aliyun.bailian20231229.models.DeleteIndexResponse;
//import com.aliyun.bailian20231229.models.ListIndicesResponse;
//import com.fasterxml.jackson.databind.ObjectMapper;
//
//import java.util.*;
//
///**
// * 管理知识库
// * @author GIIT-YC
// *
// */
//public class KnowledgeBaseManage {
//	
//	String ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI5tD5YRKuxWz6Eg7qrM4P";
//	String ALIBABA_CLOUD_ACCESS_KEY_SECRET = "bO8TBDXflOwbtSKimPpG8XrJnyzgTk";
//	String WORKSPACE_ID = "llm-4pf5auwewoz34zqu";
//
//	/**
//	 * 检查并提示设置必要的环境变量。
//	 *
//	 * @return true 如果所有必需的环境变量都已设置，否则 false
//	 */
//	public static boolean checkEnvironmentVariables() {
//		Map<String, String> requiredVars = new HashMap<>();
//        requiredVars.put("ALIBABA_CLOUD_ACCESS_KEY_ID", "阿里云访问密钥ID");
//        requiredVars.put("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "阿里云访问密钥密码");
//        requiredVars.put("WORKSPACE_ID", "阿里云百炼业务空间ID");
//
//		List<String> missingVars = new ArrayList<>();
//		for (Map.Entry<String, String> entry : requiredVars.entrySet()) {
//			String value = System.getenv(entry.getKey());
//			if (value == null || value.isEmpty()) {
//				missingVars.add(entry.getKey());
//				System.out.println("错误：请设置 " + entry.getKey() + " 环境变量 (" + entry.getValue() + ")");
//			}
//		}
//
//		return missingVars.isEmpty();
//	}
//
//	/**
//	 * 创建并配置客户端（Client）
//	 *
//	 * @return 配置好的客户端（Client）
//	 */
//	public static com.aliyun.bailian20231229.Client createClient() throws Exception {
//		com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
//		com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
//				.setCredential(credential);
//		// 下方接入地址以公有云的公网接入地址为例，可按需更换接入地址。
//		config.endpoint = "bailian.cn-beijing.aliyuncs.com";
//		return new com.aliyun.bailian20231229.Client(config);
//	}
//
//	/**
//	 * 获取指定业务空间下一个或多个知识库的详细信息
//	 *
//	 * @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);
//	}
//
//	/**
//	 * 主函数
//	 */
//	public static void main(String[] args) {
//		if (!checkEnvironmentVariables()) {
//			System.out.println("环境变量校验未通过。");
//			return;
//		}
//
//		try {
//			Scanner scanner = new Scanner(System.in);
//			System.out.print("请选择要执行的操作：\n1. 查看知识库\n2. 删除知识库\n请输入选项（1或2）：");
//			String startOption = scanner.nextLine();
//			com.aliyun.bailian20231229.Client client = createClient();
//			if (startOption.equals("1")) {
//				// 查看知识库
//				System.out.println("\n执行查看知识库");
//				String workspaceId = System.getenv("WORKSPACE_ID");
//				ListIndicesResponse response = listIndices(client, workspaceId);
//				// 请自行安装jackson-databind。将响应转换为 JSON 字符串
//				ObjectMapper mapper = new ObjectMapper();
//				String result = mapper.writeValueAsString(response.getBody().getData());
//				System.out.println(result);
//			} else if (startOption.equals("2")) {
//				System.out.println("\n执行删除知识库");
//				String workspaceId = System.getenv("WORKSPACE_ID");
//				System.out.print("请输入知识库ID："); // 即 CreateIndex 接口返回的 Data.Id，您也可以在阿里云百炼控制台的知识库页面获取。
//				String indexId = scanner.nextLine();
//				// 删除前二次确认
//				boolean confirm = false;
//				while (!confirm) {
//					System.out.print("您确定要永久性删除该知识库 " + indexId + " 吗？(y/n): ");
//					String input = scanner.nextLine().trim().toLowerCase();
//					if (input.equals("y")) {
//						confirm = true;
//					} else if (input.equals("n")) {
//						System.out.println("已取消删除操作。");
//						return;
//					} else {
//						System.out.println("无效输入，请输入 y 或 n。");
//					}
//				}
//				DeleteIndexResponse resp = deleteIndex(client, workspaceId, indexId);
//				if (resp.getBody().getStatus().equals("200")) {
//					System.out.println("知识库" + indexId + "删除成功！");
//				} else {
//					ObjectMapper mapper = new ObjectMapper();
//					System.out.println("发生错误：" + mapper.writeValueAsString(resp.getBody()));
//				}
//			} else {
//				System.out.println("无效的选项，程序退出。");
//			}
//		} catch (Exception e) {
//			System.out.println("发生错误：" + e.getMessage());
//		}
//	}
//}
