package com.dsideal.base.Tools; import com.dsideal.base.BaseApplication; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Plugin.YamlProp; import com.dsideal.base.Tools.Util.CallDeepSeek; import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; import com.dsideal.base.Tools.Util.PptAIKit; import java.text.SimpleDateFormat; import java.util.Date; /** * AI生成器主类 - 协调数据获取、Word生成和PPT生成 */ public class AiGenerate { public static DataEaseModel dm = new DataEaseModel(); public static void main(String[] args) { try { // 初始化配置 initializeConfiguration(); // 定义对比地区 String[] regions = {"文山州", "楚雄州"}; // 第一步:数据获取 System.out.println("=== 开始数据收集 ==="); String dataContent = DataCollector.collectEducationData(regions); String analysisPrompt = DataCollector.createAnalysisPrompt(dataContent, regions); // 第二步:AI分析并生成Word文档 System.out.println("=== 开始AI分析和Word文档生成 ==="); generateWordReport(analysisPrompt, regions); } catch (Exception e) { System.err.println("程序执行出错: " + e.getMessage()); e.printStackTrace(); } } /** * 初始化配置 */ private static void initializeConfiguration() { String configFile = "application.yaml"; BaseApplication.PropKit = new YamlProp(configFile); LocalMysqlConnectUtil.Init(); System.out.println("配置初始化完成"); } /** * 生成Word报告 */ private static void generateWordReport(String analysisPrompt, String[] regions) { // 生成输出文件名(不包含路径) String timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String fileName = "教育资源对比分析报告_" + timestamp + ".docx"; System.out.println("开始调用DeepSeek进行数据分析..."); // 调用DeepSeek进行分析 CallDeepSeek.callDeepSeekStream(analysisPrompt, new CallDeepSeek.SSEListener() { private StringBuilder fullResponse = new StringBuilder(); @Override public void onData(String data) { System.out.print(data); System.out.flush(); fullResponse.append(data); } @Override public void onComplete(String response) { System.out.println("\n\n=== Word文档分析完成 ==="); try { // 生成Word文档 String wordFilePath = WordGenerator.generateWordDocument(fullResponse.toString(), fileName, regions); System.out.println("Word分析报告已保存到: " + wordFilePath); // 第三步:生成PPT System.out.println("\n\n=== 开始生成PPT ==="); String uid = "dsideal"; String apiToken = PptAIKit.createApiToken(uid, null); String pptFilePath = PptGenerator.generatePptPresentation(fullResponse.toString(), regions, apiToken); if (pptFilePath != null) { System.out.println("PPT演示文稿已保存到: " + pptFilePath); } } catch (Exception e) { System.err.println("保存文件时出错: " + e.getMessage()); e.printStackTrace(); } } @Override public void onError(String error) { System.err.println("DeepSeek分析出错: " + error); } }); } }