diff --git a/src/main/java/com/dsideal/base/Tools/AiGenerate.java b/src/main/java/com/dsideal/base/Tools/AiGenerate.java index eb49dead..100f8e94 100644 --- a/src/main/java/com/dsideal/base/Tools/AiGenerate.java +++ b/src/main/java/com/dsideal/base/Tools/AiGenerate.java @@ -35,7 +35,7 @@ public class AiGenerate extends PptAIKit { String sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dataease' AND TABLE_NAME LIKE 'excel_报告-教育资源配置发展预测%';"; List tableList = Db.find(sql); - String[] biJiao = new String[]{"文山州", "昆明市"}; + String[] biJiao = new String[]{"文山州", "楚雄州"}; StringBuilder dataContent = new StringBuilder(); // 收集两个州的数据 @@ -64,7 +64,7 @@ public class AiGenerate extends PptAIKit { // 构建分析提示词 String analysisPrompt = createAnalysisPrompt(dataContent.toString()); - + // 构建PPT生成提示词 String pptPrompt = createPptPrompt(dataContent.toString(), biJiao); @@ -93,12 +93,12 @@ public class AiGenerate extends PptAIKit { // 使用Apache POI生成Word文档 generateWordDocument(fullResponse.toString(), outputPath, biJiao); System.out.println("Word分析报告已保存到: " + outputPath); - + // 生成PPT // 生成PPT System.out.println("\n\n=== 开始生成PPT ==="); - generatePptPresentation(biJiao, fullResponse.toString()); - + generatePptPresentation(biJiao, pptPrompt); + } catch (Exception e) { System.err.println("保存文件时出错: " + e.getMessage()); e.printStackTrace(); @@ -116,50 +116,50 @@ public class AiGenerate extends PptAIKit { * 创建PPT生成提示词 */ private static String createPptPrompt(String dataContent, String[] cities) { - return "请基于以下教育资源配置数据,为" + String.join("与", cities) + - "教育资源配置对比分析创建一个专业的PPT大纲。\n\n" + - "PPT应包含以下主要部分:\n" + - "1. 封面 - 标题和基本信息\n" + - "2. 目录 - 分析框架\n" + - "3. 数据概览 - 关键指标对比\n" + - "4. 详细分析 - 各维度深入对比\n" + - "5. 问题识别 - 存在的主要问题\n" + - "6. 建议方案 - 改进措施\n" + - "7. 总结 - 结论和展望\n\n" + - "请确保内容简洁明了,适合PPT展示。\n\n" + - "=== 原始数据 ===\n" + dataContent; + return "请基于以下教育资源配置数据,为" + String.join("与", cities) + + "教育资源配置对比分析创建一个专业的PPT大纲。\n\n" + + "PPT应包含以下主要部分:\n" + + "1. 封面 - 标题和基本信息\n" + + "2. 目录 - 分析框架\n" + + "3. 数据概览 - 关键指标对比\n" + + "4. 详细分析 - 各维度深入对比\n" + + "5. 问题识别 - 存在的主要问题\n" + + "6. 建议方案 - 改进措施\n" + + "7. 总结 - 结论和展望\n\n" + + "请确保内容简洁明了,适合PPT展示。\n\n" + + "=== 原始数据 ===\n" + dataContent; } /** * 生成PPT演示文稿 */ - private static void generatePptPresentation(String[] cities, String analysisContent) { + private static void generatePptPresentation(String[] cities, String pptPrompt) { try { - // 第三方用户ID(数据隔离) - String uid = "education_analysis_" + System.currentTimeMillis(); + // 创建主题 String subject = String.join("与", cities) + "教育资源配置对比分析"; + String uid = "user123"; // 创建 api token String apiToken = PptAIKit.createApiToken(uid, null); System.out.println("PPT API token: " + apiToken); - // 生成大纲 - System.out.println("\n\n========== 正在生成PPT大纲 =========="); - String outline = PptAIKit.generateOutline(apiToken, subject, null, null); + // 生成大纲 - 修正参数顺序 + System.out.println("\n\n========== 正在生成PPT大纲 ==========\n"); + String outline = PptAIKit.generateOutline(apiToken, subject, null, pptPrompt); System.out.println("PPT大纲生成完成"); - // 生成大纲内容 - System.out.println("\n\n========== 正在生成PPT内容 =========="); - String markdown = PptAIKit.generateContent(apiToken, outline, null, null); + // 生成大纲内容 - 修正参数 + System.out.println("\n\n========== 正在生成PPT内容 ==========\n"); + String markdown = PptAIKit.generateContent(apiToken, outline, null, pptPrompt); System.out.println("PPT内容生成完成"); // 随机选择一个模板 - System.out.println("\n\n========== 选择PPT模板 =========="); + System.out.println("\n\n========== 选择PPT模板 ==========\n"); String templateId = PptAIKit.randomOneTemplateId(apiToken); System.out.println("选择的模板ID: " + templateId); // 生成PPT - System.out.println("\n\n========== 正在生成PPT文件 =========="); + System.out.println("\n\n========== 正在生成PPT文件 ==========\n"); JSONObject pptInfo = PptAIKit.generatePptx(apiToken, templateId, markdown, false); String pptId = pptInfo.getString("id"); System.out.println("PPT ID: " + pptId); @@ -167,17 +167,16 @@ public class AiGenerate extends PptAIKit { System.out.println("PPT封面:" + pptInfo.getString("coverUrl") + "?token=" + apiToken); // 下载PPT到当前目录 - System.out.println("\n\n========== 正在下载PPT =========="); + System.out.println("\n\n========== 正在下载PPT ==========\n"); JSONObject result = PptAIKit.downloadPptx(apiToken, pptId); String url = result.getString("fileUrl"); System.out.println("PPT下载链接:" + url); - + String timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); - // 修改这里:使用完整路径 String savePath = System.getProperty("user.dir") + File.separator + "教育资源对比分析PPT_" + timestamp + ".pptx"; HttpUtils.download(url, new File(savePath)); System.out.println("PPT下载完成,保存路径:" + savePath); - + } catch (Exception e) { System.err.println("生成PPT时出错: " + e.getMessage()); e.printStackTrace(); diff --git a/教育资源对比分析报告_20250613_161648.docx b/教育资源对比分析报告_20250613_161648.docx new file mode 100644 index 00000000..3caf33e4 Binary files /dev/null and b/教育资源对比分析报告_20250613_161648.docx differ