|
|
|
@ -67,7 +67,6 @@ public class AiGenerate extends PptAIKit {
|
|
|
|
|
// 生成输出文件路径
|
|
|
|
|
String timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
|
|
|
|
|
String outputPath = "教育资源对比分析报告_" + timestamp + ".docx";
|
|
|
|
|
|
|
|
|
|
System.out.println("开始调用DeepSeek进行数据分析...");
|
|
|
|
|
|
|
|
|
|
// 调用DeepSeek进行分析
|
|
|
|
@ -93,7 +92,7 @@ public class AiGenerate extends PptAIKit {
|
|
|
|
|
// 生成PPT
|
|
|
|
|
// 生成PPT
|
|
|
|
|
System.out.println("\n\n=== 开始生成PPT ===");
|
|
|
|
|
generatePptPresentation(analysisPrompt);
|
|
|
|
|
generatePptPresentation(analysisPrompt, biJiao);
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
System.err.println("保存文件时出错: " + e.getMessage());
|
|
|
|
@ -112,6 +111,7 @@ public class AiGenerate extends PptAIKit {
|
|
|
|
|
* 创建PPT生成提示词
|
|
|
|
|
*/
|
|
|
|
|
private static String createPptPrompt(String dataContent, String[] cities) {
|
|
|
|
|
//todo
|
|
|
|
|
return "请基于以下教育资源配置数据,为" + String.join("与", cities) +
|
|
|
|
|
"教育资源配置对比分析创建一个专业的PPT大纲。\n\n" +
|
|
|
|
|
"PPT应包含以下主要部分:\n" +
|
|
|
|
@ -129,11 +129,11 @@ public class AiGenerate extends PptAIKit {
|
|
|
|
|
/**
|
|
|
|
|
* 生成PPT演示文稿
|
|
|
|
|
*/
|
|
|
|
|
private static void generatePptPresentation(String analysisContent) {
|
|
|
|
|
private static void generatePptPresentation(String analysisContent, String[] biJiao) {
|
|
|
|
|
try {
|
|
|
|
|
String uid = "test";
|
|
|
|
|
// 第一步:使用DeepSeek生成简化的PPT提示词
|
|
|
|
|
String simplifiedPptPrompt = generateSimplifiedPptPrompt(analysisContent);
|
|
|
|
|
String simplifiedPptPrompt = createPptPrompt(analysisContent, biJiao);
|
|
|
|
|
|
|
|
|
|
// 创建 api token (有效期2小时,建议缓存到redis,同一个 uid 创建时之前的 token 会在10秒内失效)
|
|
|
|
|
String apiToken = PptAIKit.createApiToken(uid, null);
|
|
|
|
@ -165,52 +165,6 @@ public class AiGenerate extends PptAIKit {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 新增方法:使用DeepSeek生成简化的PPT提示词
|
|
|
|
|
private static String generateSimplifiedPptPrompt(String analysisContent) {
|
|
|
|
|
try {
|
|
|
|
|
// 构建DeepSeek的请求提示词
|
|
|
|
|
String deepseekPrompt = "请根据以下教育数据分析内容,生成一个简洁的PPT制作提示词。" +
|
|
|
|
|
"要求:\n" +
|
|
|
|
|
"1. 提取关键数据点和结论\n" +
|
|
|
|
|
"2. 突出对比分析结果\n" +
|
|
|
|
|
"3. 控制字数在500字以内\n" +
|
|
|
|
|
"4. 适合PPT展示的结构化内容\n\n" +
|
|
|
|
|
"原始分析内容:\n" + analysisContent;
|
|
|
|
|
|
|
|
|
|
// 添加PPT结构要求
|
|
|
|
|
return "请根据以下内容生成PPT:\n\n" +
|
|
|
|
|
"PPT结构要求:\n" +
|
|
|
|
|
"1. 封面 - 标题和概述\n" +
|
|
|
|
|
"2. 目录 - 内容导航\n" +
|
|
|
|
|
"3. 数据概览 - 整体情况\n" +
|
|
|
|
|
"4. 详细分析 - 分项对比\n" +
|
|
|
|
|
"5. 问题识别 - 发现的问题\n" +
|
|
|
|
|
"6. 建议方案 - 解决措施\n" +
|
|
|
|
|
"7. 总结 - 结论和展望\n\n" +
|
|
|
|
|
"内容要点:\n" + deepseekPrompt;
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
// 如果DeepSeek调用失败,返回基础的PPT提示词
|
|
|
|
|
return createBasicPptPrompt();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 基础PPT提示词(作为备用方案)
|
|
|
|
|
private static String createBasicPptPrompt() {
|
|
|
|
|
return "请根据教育资源配置数据生成PPT:\n\n" +
|
|
|
|
|
"PPT结构要求:\n" +
|
|
|
|
|
"1. 封面 - 标题和概述\n" +
|
|
|
|
|
"2. 目录 - 内容导航\n" +
|
|
|
|
|
"3. 数据概览 - 整体情况\n" +
|
|
|
|
|
"4. 详细分析 - 分项对比\n" +
|
|
|
|
|
"5. 问题识别 - 发现的问题\n" +
|
|
|
|
|
"6. 建议方案 - 解决措施\n" +
|
|
|
|
|
"7. 总结 - 结论和展望\n\n" +
|
|
|
|
|
"请基于上传的数据生成具体的PPT内容。";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 创建分析提示词
|
|
|
|
|
*/
|
|
|
|
|