diff --git a/pom.xml b/pom.xml
index 6570d63..b09f9ae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,6 +100,12 @@
lunar
${lunar.version}
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.3
+
diff --git a/src/main/java/xuan/controller/BaZiController.java b/src/main/java/xuan/controller/BaZiController.java
index 2c11f54..6e77653 100644
--- a/src/main/java/xuan/controller/BaZiController.java
+++ b/src/main/java/xuan/controller/BaZiController.java
@@ -5,7 +5,8 @@ import xuan.core.bazi.BaZi;
import xuan.core.bazi.settings.BaZiJiChuSetting;
import xuan.core.bazi.settings.BaZiShenShaSetting;
import xuan.core.bazi.settings.BaZiGanZhiLiuYiSetting;
-import xuan.core.bazi.utils.BaZiAnalysisUtil;
+import xuan.service.HunYuanAiService;
+import xuan.service.PromptTemplates;
import java.util.HashMap;
import java.util.Map;
@@ -14,6 +15,8 @@ import java.util.Map;
@RequestMapping("/api/bazi")
public class BaZiController {
+ private final HunYuanAiService aiService = new HunYuanAiService();
+
@PostMapping("/paipan")
public Map paiPan(@RequestBody BaZiRequest request) {
Map result = new HashMap<>();
@@ -38,8 +41,16 @@ public class BaZiController {
baZi.baZiShenShaSetting(new BaZiShenShaSetting());
baZi.baZiGanZhiLiuYiSetting(new BaZiGanZhiLiuYiSetting());
+ Map data = buildBaZiData(baZi);
+
+ String aiAnalysis = aiService.chat(
+ PromptTemplates.getBaZiSystemPrompt(),
+ PromptTemplates.getBaZiUserPrompt(data)
+ );
+ data.put("aiAnalysis", aiAnalysis);
+
result.put("success", true);
- result.put("data", buildBaZiData(baZi));
+ result.put("data", data);
} catch (Exception e) {
result.put("success", false);
result.put("error", e.getMessage());
@@ -79,27 +90,9 @@ public class BaZiController {
data.put("monthGanZhiShenSha", baZi.getMonthGanZhiShenSha());
data.put("dayGanZhiShenSha", baZi.getDayGanZhiShenSha());
data.put("hourGanZhiShenSha", baZi.getHourGanZhiShenSha());
-
- data.put("analysis", buildAnalysis(baZi));
return data;
}
- private Map buildAnalysis(BaZi baZi) {
- Map analysis = new HashMap<>();
-
- BaZiAnalysisUtil analysisUtil = new BaZiAnalysisUtil(baZi);
-
- analysis.put("summary", analysisUtil.generateSummary());
- analysis.put("personality", analysisUtil.generatePersonality());
- analysis.put("career", analysisUtil.generateCareer());
- analysis.put("marriage", analysisUtil.generateMarriage());
- analysis.put("wealth", analysisUtil.generateWealth());
- analysis.put("health", analysisUtil.generateHealth());
- analysis.put("advice", analysisUtil.generateAdvice());
-
- return analysis;
- }
-
public static class BaZiRequest {
private String name;
private String occupy;
@@ -145,5 +138,4 @@ public class BaZiController {
public Integer getDayGanZhiType() { return dayGanZhiType; }
public void setDayGanZhiType(Integer dayGanZhiType) { this.dayGanZhiType = dayGanZhiType; }
}
-
}
diff --git a/src/main/java/xuan/controller/DaLiuRenController.java b/src/main/java/xuan/controller/DaLiuRenController.java
index e9b60fb..fe2c89e 100644
--- a/src/main/java/xuan/controller/DaLiuRenController.java
+++ b/src/main/java/xuan/controller/DaLiuRenController.java
@@ -4,6 +4,8 @@ import org.springframework.web.bind.annotation.*;
import xuan.core.daliuren.DaLiuRen;
import xuan.core.daliuren.settings.DaLiuRenJiChuSetting;
import xuan.core.daliuren.settings.DaLiuRenShenShaSetting;
+import xuan.service.HunYuanAiService;
+import xuan.service.PromptTemplates;
import java.util.*;
@@ -11,6 +13,8 @@ import java.util.*;
@RequestMapping("/api/daliuren")
public class DaLiuRenController {
+ private final HunYuanAiService aiService = new HunYuanAiService();
+
@PostMapping("/paipan")
public Map paiPan(@RequestBody DaLiuRenRequest request) {
Map result = new HashMap<>();
@@ -32,8 +36,16 @@ public class DaLiuRenController {
DaLiuRen daLiuRen = new DaLiuRen(setting);
daLiuRen.daLiuRenShenShaSetting(new DaLiuRenShenShaSetting());
+ Map data = buildDaLiuRenData(daLiuRen);
+
+ String aiAnalysis = aiService.chat(
+ PromptTemplates.getDaLiuRenSystemPrompt(),
+ PromptTemplates.getDaLiuRenUserPrompt(data)
+ );
+ data.put("aiAnalysis", aiAnalysis);
+
result.put("success", true);
- result.put("data", buildDaLiuRenData(daLiuRen));
+ result.put("data", data);
} catch (Exception e) {
result.put("success", false);
result.put("error", e.getMessage());
@@ -52,85 +64,24 @@ public class DaLiuRenController {
data.put("solar", daLiuRen.getSolarStr2());
data.put("lunar", daLiuRen.getLunarStr2());
- data.put("xingQi", daLiuRen.getXingQi());
- data.put("jiJie", daLiuRen.getJiJie());
data.put("shengXiao", daLiuRen.getShengXiao());
- data.put("xingZuo", daLiuRen.getXingZuo());
data.put("yearGanZhi", daLiuRen.getYearGanZhi());
data.put("monthGanZhi", daLiuRen.getMonthGanZhi());
data.put("dayGanZhi", daLiuRen.getDayGanZhi());
data.put("hourGanZhi", daLiuRen.getHourGanZhi());
- data.put("yearGan", daLiuRen.getYearGan());
- data.put("monthGan", daLiuRen.getMonthGan());
- data.put("dayGan", daLiuRen.getDayGan());
- data.put("hourGan", daLiuRen.getHourGan());
-
- data.put("yearZhi", daLiuRen.getYearZhi());
- data.put("monthZhi", daLiuRen.getMonthZhi());
- data.put("dayZhi", daLiuRen.getDayZhi());
- data.put("hourZhi", daLiuRen.getHourZhi());
-
- data.put("yearGanWuXing", daLiuRen.getYearGanWuXing());
- data.put("monthGanWuXing", daLiuRen.getMonthGanWuXing());
- data.put("dayGanWuXing", daLiuRen.getDayGanWuXing());
- data.put("hourGanWuXing", daLiuRen.getHourGanWuXing());
-
- data.put("yearZhiWuXing", daLiuRen.getYearZhiWuXing());
- data.put("monthZhiWuXing", daLiuRen.getMonthZhiWuXing());
- data.put("dayZhiWuXing", daLiuRen.getDayZhiWuXing());
- data.put("hourZhiWuXing", daLiuRen.getHourZhiWuXing());
-
- data.put("yearGanZhiNaYin", daLiuRen.getYearGanZhiNaYin());
- data.put("monthGanZhiNaYin", daLiuRen.getMonthGanZhiNaYin());
- data.put("dayGanZhiNaYin", daLiuRen.getDayGanZhiNaYin());
- data.put("hourGanZhiNaYin", daLiuRen.getHourGanZhiNaYin());
-
- data.put("yearGanZhiKongWang", daLiuRen.getYearGanZhiKongWang());
- data.put("monthGanZhiKongWang", daLiuRen.getMonthGanZhiKongWang());
- data.put("dayGanZhiKongWang", daLiuRen.getDayGanZhiKongWang());
- data.put("hourGanZhiKongWang", daLiuRen.getHourGanZhiKongWang());
-
- data.put("wuXingWangShuai", daLiuRen.getWuXingWangShuai());
-
- data.put("prevJie", daLiuRen.getPrevJie());
- data.put("nextJie", daLiuRen.getNextJie());
- data.put("prevJieDateStr", daLiuRen.getPrevJieDateStr());
- data.put("nextJieDateStr", daLiuRen.getNextJieDateStr());
- data.put("prevJieDay", daLiuRen.getPrevJieDay());
- data.put("nextJieDay", daLiuRen.getNextJieDay());
data.put("chuShengJie", daLiuRen.getChuShengJie());
-
- data.put("prevQi", daLiuRen.getPrevQi());
- data.put("nextQi", daLiuRen.getNextQi());
- data.put("prevQiDateStr", daLiuRen.getPrevQiDateStr());
- data.put("nextQiDateStr", daLiuRen.getNextQiDateStr());
- data.put("prevQiDay", daLiuRen.getPrevQiDay());
- data.put("nextQiDay", daLiuRen.getNextQiDay());
- data.put("chuShengQi", daLiuRen.getChuShengQi());
-
- data.put("yueXiang", daLiuRen.getYueXiang());
data.put("yueJiang", daLiuRen.getYueJiang());
- data.put("yueJiangShen", daLiuRen.getYueJiangShen());
-
- data.put("wuBuYuShi", daLiuRen.getWuBuYuShi());
data.put("tianDiPanType", daLiuRen.getTianDiPanType());
- data.put("tianGan", daLiuRen.getTianGan());
- data.put("diPan", daLiuRen.getDiPan());
data.put("tianPan", daLiuRen.getTianPan());
- data.put("shenPan", daLiuRen.getShenPan());
+ data.put("diPan", daLiuRen.getDiPan());
data.put("siKe", daLiuRen.getSiKe());
- data.put("siKeDunGan", daLiuRen.getSiKeDunGan());
- data.put("siKeShenJiang", daLiuRen.getSiKeShenJiang());
-
data.put("sanChuan", daLiuRen.getSanChuan());
data.put("sanChuanDunGan", daLiuRen.getSanChuanDunGan());
- data.put("sanChuanShenJiang", daLiuRen.getSanChuanShenJiang());
data.put("sanChuanLiuQin", daLiuRen.getSanChuanLiuQin());
- data.put("sanChuanQuFa", daLiuRen.getSanChuanQuFa());
return data;
}
diff --git a/src/main/java/xuan/controller/LiuYaoController.java b/src/main/java/xuan/controller/LiuYaoController.java
index 09bf3b4..f94bf7e 100644
--- a/src/main/java/xuan/controller/LiuYaoController.java
+++ b/src/main/java/xuan/controller/LiuYaoController.java
@@ -4,6 +4,8 @@ import org.springframework.web.bind.annotation.*;
import xuan.core.liuyao.LiuYao;
import xuan.core.liuyao.settings.LiuYaoJiChuSetting;
import xuan.core.liuyao.settings.LiuYaoShenShaSetting;
+import xuan.service.HunYuanAiService;
+import xuan.service.PromptTemplates;
import java.util.HashMap;
import java.util.Map;
@@ -12,6 +14,8 @@ import java.util.Map;
@RequestMapping("/api/liuyao")
public class LiuYaoController {
+ private final HunYuanAiService aiService = new HunYuanAiService();
+
@PostMapping("/paipan")
public Map paiPan(@RequestBody LiuYaoRequest request) {
Map result = new HashMap<>();
@@ -44,8 +48,16 @@ public class LiuYaoController {
LiuYao liuYao = new LiuYao(setting);
liuYao.liuYaoShenShaSetting(new LiuYaoShenShaSetting());
+ Map data = buildLiuYaoData(liuYao);
+
+ String aiAnalysis = aiService.chat(
+ PromptTemplates.getLiuYaoSystemPrompt(),
+ PromptTemplates.getLiuYaoUserPrompt(data)
+ );
+ data.put("aiAnalysis", aiAnalysis);
+
result.put("success", true);
- result.put("data", buildLiuYaoData(liuYao));
+ result.put("data", data);
} catch (Exception e) {
result.put("success", false);
result.put("error", e.getMessage());
@@ -57,6 +69,7 @@ public class LiuYaoController {
Map data = new HashMap<>();
data.put("name", liuYao.getName());
+ data.put("occupy", liuYao.getOccupy());
data.put("sex", liuYao.getSex());
data.put("age", liuYao.getAge());
data.put("solar", liuYao.getSolarStr2());
@@ -84,101 +97,13 @@ public class LiuYaoController {
data.put("zongGuaName", liuYao.getZongGuaName());
data.put("fuGuaName", liuYao.getFuGuaName());
- data.put("shangGuaAs", liuYao.getShangGuaAs());
- data.put("xiaGuaAs", liuYao.getXiaGuaAs());
- data.put("benGuaAs", liuYao.getBenGuaAs());
- data.put("bianGuaAs", liuYao.getBianGuaAs());
- data.put("huGuaAs", liuYao.getHuGuaAs());
- data.put("cuoGuaAs", liuYao.getCuoGuaAs());
- data.put("zongGuaAs", liuYao.getZongGuaAs());
- data.put("fuGuaAs", liuYao.getFuGuaAs());
-
- data.put("benGuaType", liuYao.getBenGuaType());
- data.put("bianGuaType", liuYao.getBianGuaType());
- data.put("huGuaType", liuYao.getHuGuaType());
- data.put("cuoGuaType", liuYao.getCuoGuaType());
- data.put("zongGuaType", liuYao.getZongGuaType());
- data.put("fuGuaType", liuYao.getFuGuaType());
-
- data.put("benGuaGuaShen", liuYao.getBenGuaGuaShen());
- data.put("bianGuaGuaShen", liuYao.getBianGuaGuaShen());
- data.put("huGuaGuaShen", liuYao.getHuGuaGuaShen());
- data.put("cuoGuaGuaShen", liuYao.getCuoGuaGuaShen());
- data.put("zongGuaGuaShen", liuYao.getZongGuaGuaShen());
- data.put("fuGuaGuaShen", liuYao.getFuGuaGuaShen());
-
data.put("benGuaGuaCi", liuYao.getBenGuaGuaCi());
data.put("bianGuaGuaCi", liuYao.getBianGuaGuaCi());
- data.put("huGuaGuaCi", liuYao.getHuGuaGuaCi());
- data.put("cuoGuaGuaCi", liuYao.getCuoGuaGuaCi());
- data.put("zongGuaGuaCi", liuYao.getZongGuaGuaCi());
- data.put("fuGuaGuaCi", liuYao.getFuGuaGuaCi());
data.put("benGuaLiuYaoName", liuYao.getBenGuaLiuYaoName());
- data.put("bianGuaLiuYaoName", liuYao.getBianGuaLiuYaoName());
- data.put("huGuaLiuYaoName", liuYao.getHuGuaLiuYaoName());
- data.put("cuoGuaLiuYaoName", liuYao.getCuoGuaLiuYaoName());
- data.put("zongGuaLiuYaoName", liuYao.getZongGuaLiuYaoName());
- data.put("fuGuaLiuYaoName", liuYao.getFuGuaLiuYaoName());
-
- data.put("benGuaLiuYaoAs", liuYao.getBenGuaLiuYaoAs());
- data.put("bianGuaLiuYaoAs", liuYao.getBianGuaLiuYaoAs());
- data.put("huGuaLiuYaoAs", liuYao.getHuGuaLiuYaoAs());
- data.put("cuoGuaLiuYaoAs", liuYao.getCuoGuaLiuYaoAs());
- data.put("zongGuaLiuYaoAs", liuYao.getZongGuaLiuYaoAs());
- data.put("fuGuaLiuYaoAs", liuYao.getFuGuaLiuYaoAs());
-
data.put("benGuaLiuYaoShiYing", liuYao.getBenGuaLiuYaoShiYing());
- data.put("bianGuaLiuYaoShiYing", liuYao.getBianGuaLiuYaoShiYing());
- data.put("huGuaLiuYaoShiYing", liuYao.getHuGuaLiuYaoShiYing());
- data.put("cuoGuaLiuYaoShiYing", liuYao.getCuoGuaLiuYaoShiYing());
- data.put("zongGuaLiuYaoShiYing", liuYao.getZongGuaLiuYaoShiYing());
- data.put("fuGuaLiuYaoShiYing", liuYao.getFuGuaLiuYaoShiYing());
-
data.put("benGuaLiuYaoLiuQin", liuYao.getBenGuaLiuYaoLiuQin());
- data.put("bianGuaLiuYaoLiuQin", liuYao.getBianGuaLiuYaoLiuQin());
- data.put("huGuaLiuYaoLiuQin", liuYao.getHuGuaLiuYaoLiuQin());
- data.put("cuoGuaLiuYaoLiuQin", liuYao.getCuoGuaLiuYaoLiuQin());
- data.put("zongGuaLiuYaoLiuQin", liuYao.getZongGuaLiuYaoLiuQin());
- data.put("fuGuaLiuYaoLiuQin", liuYao.getFuGuaLiuYaoLiuQin());
-
- data.put("benGuaLiuYaoGanZhi", liuYao.getBenGuaLiuYaoGanZhi());
- data.put("bianGuaLiuYaoGanZhi", liuYao.getBianGuaLiuYaoGanZhi());
- data.put("huGuaLiuYaoGanZhi", liuYao.getHuGuaLiuYaoGanZhi());
- data.put("cuoGuaLiuYaoGanZhi", liuYao.getCuoGuaLiuYaoGanZhi());
- data.put("zongGuaLiuYaoGanZhi", liuYao.getZongGuaLiuYaoGanZhi());
- data.put("fuGuaLiuYaoGanZhi", liuYao.getFuGuaLiuYaoGanZhi());
-
- data.put("benGuaLiuYaoWuXing", liuYao.getBenGuaLiuYaoWuXing());
- data.put("bianGuaLiuYaoWuXing", liuYao.getBianGuaLiuYaoWuXing());
- data.put("huGuaLiuYaoWuXing", liuYao.getHuGuaLiuYaoWuXing());
- data.put("cuoGuaLiuYaoWuXing", liuYao.getCuoGuaLiuYaoWuXing());
- data.put("zongGuaLiuYaoWuXing", liuYao.getZongGuaLiuYaoWuXing());
- data.put("fuGuaLiuYaoWuXing", liuYao.getFuGuaLiuYaoWuXing());
-
data.put("benGuaLiuYaoLiuShen", liuYao.getBenGuaLiuYaoLiuShen());
- data.put("bianGuaLiuYaoLiuShen", liuYao.getBianGuaLiuYaoLiuShen());
- data.put("huGuaLiuYaoLiuShen", liuYao.getHuGuaLiuYaoLiuShen());
- data.put("cuoGuaLiuYaoLiuShen", liuYao.getCuoGuaLiuYaoLiuShen());
- data.put("zongGuaLiuYaoLiuShen", liuYao.getZongGuaLiuYaoLiuShen());
- data.put("fuGuaLiuYaoLiuShen", liuYao.getFuGuaLiuYaoLiuShen());
-
- data.put("benGuaLiuYaoYaoCi", liuYao.getBenGuaLiuYaoYaoCi());
- data.put("bianGuaLiuYaoYaoCi", liuYao.getBianGuaLiuYaoYaoCi());
- data.put("huGuaLiuYaoYaoCi", liuYao.getHuGuaLiuYaoYaoCi());
- data.put("cuoGuaLiuYaoYaoCi", liuYao.getCuoGuaLiuYaoYaoCi());
- data.put("zongGuaLiuYaoYaoCi", liuYao.getZongGuaLiuYaoYaoCi());
- data.put("fuGuaLiuYaoYaoCi", liuYao.getFuGuaLiuYaoYaoCi());
-
- data.put("benGuaLiuYaoNaYin", liuYao.getBenGuaLiuYaoNaYin());
- data.put("bianGuaLiuYaoNaYin", liuYao.getBianGuaLiuYaoNaYin());
- data.put("huGuaLiuYaoNaYin", liuYao.getHuGuaLiuYaoNaYin());
- data.put("cuoGuaLiuYaoNaYin", liuYao.getCuoGuaLiuYaoNaYin());
- data.put("zongGuaLiuYaoNaYin", liuYao.getZongGuaLiuYaoNaYin());
- data.put("fuGuaLiuYaoNaYin", liuYao.getFuGuaLiuYaoNaYin());
-
- data.put("fuGuaLiuYaoFuShen", liuYao.getFuGuaLiuYaoFuShen());
- data.put("shenSha", liuYao.getShenSha());
return data;
}
@@ -225,5 +150,4 @@ public class LiuYaoController {
public String getLiuYaoYaoXiang() { return liuYaoYaoXiang; }
public void setLiuYaoYaoXiang(String liuYaoYaoXiang) { this.liuYaoYaoXiang = liuYaoYaoXiang; }
}
-
}
diff --git a/src/main/java/xuan/controller/MeiHuaController.java b/src/main/java/xuan/controller/MeiHuaController.java
index df6d1cb..670e29a 100644
--- a/src/main/java/xuan/controller/MeiHuaController.java
+++ b/src/main/java/xuan/controller/MeiHuaController.java
@@ -3,6 +3,8 @@ package xuan.controller;
import org.springframework.web.bind.annotation.*;
import xuan.core.meihua.MeiHua;
import xuan.core.meihua.settings.MeiHuaJiChuSetting;
+import xuan.service.HunYuanAiService;
+import xuan.service.PromptTemplates;
import java.util.HashMap;
import java.util.Map;
@@ -11,6 +13,8 @@ import java.util.Map;
@RequestMapping("/api/meihua")
public class MeiHuaController {
+ private final HunYuanAiService aiService = new HunYuanAiService();
+
@PostMapping("/paipan")
public Map paiPan(@RequestBody MeiHuaRequest request) {
Map result = new HashMap<>();
@@ -37,8 +41,16 @@ public class MeiHuaController {
MeiHua meiHua = new MeiHua(setting);
+ Map data = buildMeiHuaData(meiHua);
+
+ String aiAnalysis = aiService.chat(
+ PromptTemplates.getMeiHuaSystemPrompt(),
+ PromptTemplates.getMeiHuaUserPrompt(data)
+ );
+ data.put("aiAnalysis", aiAnalysis);
+
result.put("success", true);
- result.put("data", buildMeiHuaData(meiHua));
+ result.put("data", data);
} catch (Exception e) {
result.put("success", false);
result.put("error", e.getMessage());
@@ -50,6 +62,7 @@ public class MeiHuaController {
Map data = new HashMap<>();
data.put("name", meiHua.getName());
+ data.put("occupy", meiHua.getOccupy());
data.put("sex", meiHua.getSex());
data.put("age", meiHua.getAge());
data.put("solar", meiHua.getSolarStr2());
@@ -58,120 +71,22 @@ public class MeiHuaController {
data.put("jiJie", meiHua.getJiJie());
data.put("shengXiao", meiHua.getShengXiao());
data.put("xingZuo", meiHua.getXingZuo());
- data.put("yueXiang", meiHua.getYueXiang());
- data.put("yueJiang", meiHua.getYueJiang());
- data.put("yueJiangShen", meiHua.getYueJiangShen());
- data.put("wuBuYuShi", meiHua.getWuBuYuShi());
data.put("yearGanZhi", meiHua.getYearGanZhi());
data.put("monthGanZhi", meiHua.getMonthGanZhi());
data.put("dayGanZhi", meiHua.getDayGanZhi());
data.put("hourGanZhi", meiHua.getHourGanZhi());
- data.put("yearGanZhiWuXing", meiHua.getYearGanZhiWuXing());
- data.put("monthGanZhiWuXing", meiHua.getMonthGanZhiWuXing());
- data.put("dayGanZhiWuXing", meiHua.getDayGanZhiWuXing());
- data.put("hourGanZhiWuXing", meiHua.getHourGanZhiWuXing());
-
- data.put("yearGanZhiNaYin", meiHua.getYearGanZhiNaYin());
- data.put("monthGanZhiNaYin", meiHua.getMonthGanZhiNaYin());
- data.put("dayGanZhiNaYin", meiHua.getDayGanZhiNaYin());
- data.put("hourGanZhiNaYin", meiHua.getHourGanZhiNaYin());
-
- data.put("yearGanZhiKongWang", meiHua.getYearGanZhiKongWang());
- data.put("monthGanZhiKongWang", meiHua.getMonthGanZhiKongWang());
- data.put("dayGanZhiKongWang", meiHua.getDayGanZhiKongWang());
- data.put("hourGanZhiKongWang", meiHua.getHourGanZhiKongWang());
-
- data.put("prevJie", meiHua.getPrevJie());
- data.put("prevJieDateStr", meiHua.getPrevJieDateStr());
- data.put("prevJieDay", meiHua.getPrevJieDay());
- data.put("nextJie", meiHua.getNextJie());
- data.put("nextJieDateStr", meiHua.getNextJieDateStr());
- data.put("nextJieDay", meiHua.getNextJieDay());
- data.put("chuShengJie", meiHua.getChuShengJie());
-
- data.put("prevQi", meiHua.getPrevQi());
- data.put("prevQiDateStr", meiHua.getPrevQiDateStr());
- data.put("prevQiDay", meiHua.getPrevQiDay());
- data.put("nextQi", meiHua.getNextQi());
- data.put("nextQiDateStr", meiHua.getNextQiDateStr());
- data.put("nextQiDay", meiHua.getNextQiDay());
- data.put("chuShengQi", meiHua.getChuShengQi());
-
data.put("shangGuaName", meiHua.getShangGuaName());
data.put("xiaGuaName", meiHua.getXiaGuaName());
data.put("benGuaName", meiHua.getBenGuaName());
data.put("bianGuaName", meiHua.getBianGuaName());
- data.put("huGuaName", meiHua.getHuGuaName());
- data.put("cuoGuaName", meiHua.getCuoGuaName());
- data.put("zongGuaName", meiHua.getZongGuaName());
-
- data.put("shangGuaAs", meiHua.getShangGuaAs());
- data.put("xiaGuaAs", meiHua.getXiaGuaAs());
- data.put("benGuaAs", meiHua.getBenGuaAs());
- data.put("bianGuaAs", meiHua.getBianGuaAs());
- data.put("huGuaAs", meiHua.getHuGuaAs());
- data.put("cuoGuaAs", meiHua.getCuoGuaAs());
- data.put("zongGuaAs", meiHua.getZongGuaAs());
data.put("benGuaGuaCi", meiHua.getBenGuaGuaCi());
data.put("bianGuaGuaCi", meiHua.getBianGuaGuaCi());
- data.put("huGuaGuaCi", meiHua.getHuGuaGuaCi());
- data.put("cuoGuaGuaCi", meiHua.getCuoGuaGuaCi());
- data.put("zongGuaGuaCi", meiHua.getZongGuaGuaCi());
-
- data.put("benGuaShangGuaName", meiHua.getBenGuaShangGuaName());
- data.put("bianGuaShangGuaName", meiHua.getBianGuaShangGuaName());
- data.put("huGuaShangGuaName", meiHua.getHuGuaShangGuaName());
- data.put("cuoGuaShangGuaName", meiHua.getCuoGuaShangGuaName());
- data.put("zongGuaShangGuaName", meiHua.getZongGuaShangGuaName());
-
- data.put("benGuaXiaGuaName", meiHua.getBenGuaXiaGuaName());
- data.put("bianGuaXiaGuaName", meiHua.getBianGuaXiaGuaName());
- data.put("huGuaXiaGuaName", meiHua.getHuGuaXiaGuaName());
- data.put("cuoGuaXiaGuaName", meiHua.getCuoGuaXiaGuaName());
- data.put("zongGuaXiaGuaName", meiHua.getZongGuaXiaGuaName());
-
- data.put("benGuaShangGuaAs", meiHua.getBenGuaShangGuaAs());
- data.put("bianGuaShangGuaAs", meiHua.getBianGuaShangGuaAs());
- data.put("huGuaShangGuaAs", meiHua.getHuGuaShangGuaAs());
- data.put("cuoGuaShangGuaAs", meiHua.getCuoGuaShangGuaAs());
- data.put("zongGuaShangGuaAs", meiHua.getZongGuaShangGuaAs());
-
- data.put("benGuaXiaGuaAs", meiHua.getBenGuaXiaGuaAs());
- data.put("bianGuaXiaGuaAs", meiHua.getBianGuaXiaGuaAs());
- data.put("huGuaXiaGuaAs", meiHua.getHuGuaXiaGuaAs());
- data.put("cuoGuaXiaGuaAs", meiHua.getCuoGuaXiaGuaAs());
- data.put("zongGuaXiaGuaAs", meiHua.getZongGuaXiaGuaAs());
data.put("benGuaLiuYaoName", meiHua.getBenGuaLiuYaoName());
- data.put("bianGuaLiuYaoName", meiHua.getBianGuaLiuYaoName());
- data.put("huGuaLiuYaoName", meiHua.getHuGuaLiuYaoName());
- data.put("cuoGuaLiuYaoName", meiHua.getCuoGuaLiuYaoName());
- data.put("zongGuaLiuYaoName", meiHua.getZongGuaLiuYaoName());
-
- data.put("benGuaLiuYaoAs", meiHua.getBenGuaLiuYaoAs());
- data.put("bianGuaLiuYaoAs", meiHua.getBianGuaLiuYaoAs());
- data.put("huGuaLiuYaoAs", meiHua.getHuGuaLiuYaoAs());
- data.put("cuoGuaLiuYaoAs", meiHua.getCuoGuaLiuYaoAs());
- data.put("zongGuaLiuYaoAs", meiHua.getZongGuaLiuYaoAs());
-
- data.put("benGuaLiuYaoYaoCi", meiHua.getBenGuaLiuYaoYaoCi());
- data.put("bianGuaLiuYaoYaoCi", meiHua.getBianGuaLiuYaoYaoCi());
- data.put("huGuaLiuYaoYaoCi", meiHua.getHuGuaLiuYaoYaoCi());
- data.put("cuoGuaLiuYaoYaoCi", meiHua.getCuoGuaLiuYaoYaoCi());
- data.put("zongGuaLiuYaoYaoCi", meiHua.getZongGuaLiuYaoYaoCi());
-
- data.put("benGuaLink", meiHua.getBenGuaLink());
- data.put("bianGuaLink", meiHua.getBianGuaLink());
- data.put("huGuaLink", meiHua.getHuGuaLink());
- data.put("cuoGuaLink", meiHua.getCuoGuaLink());
- data.put("zongGuaLink", meiHua.getZongGuaLink());
-
- data.put("dongYao", meiHua.getDongYao());
data.put("dongYaoStr", meiHua.getDongYaoStr());
- data.put("guaMa", meiHua.getGuaMa());
return data;
}
@@ -233,5 +148,4 @@ public class MeiHuaController {
public Integer getDongYaoType() { return dongYaoType; }
public void setDongYaoType(Integer dongYaoType) { this.dongYaoType = dongYaoType; }
}
-
}
diff --git a/src/main/java/xuan/controller/QiMenController.java b/src/main/java/xuan/controller/QiMenController.java
index cb35273..f31f8ea 100644
--- a/src/main/java/xuan/controller/QiMenController.java
+++ b/src/main/java/xuan/controller/QiMenController.java
@@ -3,6 +3,8 @@ package xuan.controller;
import org.springframework.web.bind.annotation.*;
import xuan.core.qimen.zhuan.QiMenZhuanPan;
import xuan.core.qimen.zhuan.settings.QiMenZhuanPanJiChuSetting;
+import xuan.service.HunYuanAiService;
+import xuan.service.PromptTemplates;
import java.util.HashMap;
import java.util.Map;
@@ -11,6 +13,8 @@ import java.util.Map;
@RequestMapping("/api/qimen")
public class QiMenController {
+ private final HunYuanAiService aiService = new HunYuanAiService();
+
@PostMapping("/paipan")
public Map paiPan(@RequestBody QiMenRequest request) {
Map result = new HashMap<>();
@@ -33,8 +37,16 @@ public class QiMenController {
QiMenZhuanPan qiMen = new QiMenZhuanPan(setting);
+ Map data = buildQiMenData(qiMen);
+
+ String aiAnalysis = aiService.chat(
+ PromptTemplates.getQiMenSystemPrompt(),
+ PromptTemplates.getQiMenUserPrompt(data)
+ );
+ data.put("aiAnalysis", aiAnalysis);
+
result.put("success", true);
- result.put("data", buildQiMenData(qiMen));
+ result.put("data", data);
} catch (Exception e) {
result.put("success", false);
result.put("error", e.getMessage());
@@ -49,126 +61,24 @@ public class QiMenController {
data.put("occupy", qiMen.getOccupy());
data.put("sex", qiMen.getSex());
data.put("age", qiMen.getAge());
- data.put("zao", qiMen.getZao());
data.put("solar", qiMen.getSolarStr2());
data.put("lunar", qiMen.getLunarStr2());
- data.put("xingQi", qiMen.getXingQi());
- data.put("jiJie", qiMen.getJiJie());
- data.put("shengXiao", qiMen.getShengXiao());
- data.put("xingZuo", qiMen.getXingZuo());
- data.put("yueXiang", qiMen.getYueXiang());
- data.put("yueJiang", qiMen.getYueJiang());
- data.put("yueJiangShen", qiMen.getYueJiangShen());
- data.put("wuBuYuShi", qiMen.getWuBuYuShi());
- data.put("yearGan", qiMen.getYearGan());
- data.put("monthGan", qiMen.getMonthGan());
- data.put("dayGan", qiMen.getDayGan());
- data.put("hourGan", qiMen.getHourGan());
- data.put("yearZhi", qiMen.getYearZhi());
- data.put("monthZhi", qiMen.getMonthZhi());
- data.put("dayZhi", qiMen.getDayZhi());
- data.put("hourZhi", qiMen.getHourZhi());
data.put("yearGanZhi", qiMen.getYearGanZhi());
data.put("monthGanZhi", qiMen.getMonthGanZhi());
data.put("dayGanZhi", qiMen.getDayGanZhi());
data.put("hourGanZhi", qiMen.getHourGanZhi());
- data.put("yearGanWuXing", qiMen.getYearGanWuXing());
- data.put("monthGanWuXing", qiMen.getMonthGanWuXing());
- data.put("dayGanWuXing", qiMen.getDayGanWuXing());
- data.put("hourGanWuXing", qiMen.getHourGanWuXing());
- data.put("yearZhiWuXing", qiMen.getYearZhiWuXing());
- data.put("monthZhiWuXing", qiMen.getMonthZhiWuXing());
- data.put("dayZhiWuXing", qiMen.getDayZhiWuXing());
- data.put("hourZhiWuXing", qiMen.getHourZhiWuXing());
- data.put("yearGanZhiWuXing", qiMen.getYearGanZhiWuXing());
- data.put("monthGanZhiWuXing", qiMen.getMonthGanZhiWuXing());
- data.put("dayGanZhiWuXing", qiMen.getDayGanZhiWuXing());
- data.put("hourGanZhiWuXing", qiMen.getHourGanZhiWuXing());
-
- data.put("yearGanZhiNaYin", qiMen.getYearGanZhiNaYin());
- data.put("monthGanZhiNaYin", qiMen.getMonthGanZhiNaYin());
- data.put("dayGanZhiNaYin", qiMen.getDayGanZhiNaYin());
- data.put("hourGanZhiNaYin", qiMen.getHourGanZhiNaYin());
- data.put("yearGanZhiKongWang", qiMen.getYearGanZhiKongWang());
- data.put("monthGanZhiKongWang", qiMen.getMonthGanZhiKongWang());
- data.put("dayGanZhiKongWang", qiMen.getDayGanZhiKongWang());
- data.put("hourGanZhiKongWang", qiMen.getHourGanZhiKongWang());
-
- data.put("prevJie", qiMen.getPrevJie());
- data.put("prevJieDateStr", qiMen.getPrevJieDateStr());
- data.put("prevJieDay", qiMen.getPrevJieDay());
- data.put("nextJie", qiMen.getNextJie());
- data.put("nextJieDateStr", qiMen.getNextJieDateStr());
- data.put("nextJieDay", qiMen.getNextJieDay());
- data.put("chuShengJie", qiMen.getChuShengJie());
- data.put("prevQi", qiMen.getPrevQi());
- data.put("prevQiDateStr", qiMen.getPrevQiDateStr());
- data.put("prevQiDay", qiMen.getPrevQiDay());
- data.put("nextQi", qiMen.getNextQi());
- data.put("nextQiDateStr", qiMen.getNextQiDateStr());
- data.put("nextQiDay", qiMen.getNextQiDay());
- data.put("chuShengQi", qiMen.getChuShengQi());
-
- data.put("fuTou", qiMen.getFuTou());
data.put("jieQi", qiMen.getJieQi());
- data.put("sanYuan", qiMen.getSanYuan());
data.put("juShu", qiMen.getJuShu());
data.put("yinYangDun", qiMen.getYinYangDun());
- data.put("xunShou", qiMen.getXunShou());
- data.put("xunShouYiZhang", qiMen.getXunShouYiZhang());
data.put("zhiFu", qiMen.getZhiFu());
data.put("zhiShi", qiMen.getZhiShi());
- data.put("liuJiaXunKong", qiMen.getLiuJiaXunKong());
- data.put("liuJiaXunKongGongWei", qiMen.getLiuJiaXunKongGongWei());
- data.put("liuJiaXunKongGongWeiMark", qiMen.getLiuJiaXunKongGongWeiMark());
- data.put("yiMa", qiMen.getYiMa());
- data.put("yiMaGongWei", qiMen.getYiMaGongWei());
- data.put("yiMaGongWeiMark", qiMen.getYiMaGongWeiMark());
-
data.put("diPan", qiMen.getDiPan());
data.put("tianPan", qiMen.getTianPan());
data.put("renPan", qiMen.getRenPan());
data.put("shenPan", qiMen.getShenPan());
- data.put("tianPanQiYiTianQinNo", qiMen.getTianPanQiYiTianQinNo());
- data.put("tianPanQiYiTianQinYes", qiMen.getTianPanQiYiTianQinYes());
-
- data.put("tianYi", qiMen.getTianYi());
- data.put("diYi", qiMen.getDiYi());
- data.put("taiYi", qiMen.getTaiYi());
- data.put("jiuDun", qiMen.getJiuDun());
- data.put("neiWaiGongWeiMark", qiMen.getNeiWaiGongWeiMark());
- data.put("neiWaiGongWeiInfo", qiMen.getNeiWaiGongWeiInfo());
- data.put("tianMen", qiMen.getTianMen());
- data.put("diHu", qiMen.getDiHu());
-
- data.put("fuYin", qiMen.getFuYin());
- data.put("fanYin", qiMen.getFanYin());
- data.put("liuYiJiXing", qiMen.getLiuYiJiXing());
- data.put("qiYiRuMu", qiMen.getQiYiRuMu());
- data.put("liuYiJiXingRuMuTianQinNoStatus", qiMen.getLiuYiJiXingRuMuTianQinNoStatus());
- data.put("liuYiJiXingRuMuTianQinYesStatus", qiMen.getLiuYiJiXingRuMuTianQinYesStatus());
- data.put("menPoStatus", qiMen.getMenPoStatus());
-
- data.put("shiGanKeYing", qiMen.getShiGanKeYing());
- data.put("baMenKeYing", qiMen.getBaMenKeYing());
- data.put("baMenJingYing", qiMen.getBaMenJingYing());
- data.put("baMenDongYing", qiMen.getBaMenDongYing());
- data.put("xingMenKeYing", qiMen.getXingMenKeYing());
- data.put("jiuXingShiYing", qiMen.getJiuXingShiYing());
-
- data.put("baGuaWangShuai", qiMen.getBaGuaWangShuai());
- data.put("baMenWangShuai", qiMen.getBaMenWangShuai());
- data.put("jiuXingWangShuai", qiMen.getJiuXingWangShuai());
- data.put("baShenLuoGongStatus", qiMen.getBaShenLuoGongStatus());
- data.put("baMenLuoGongStatus", qiMen.getBaMenLuoGongStatus());
- data.put("jiuXingLuoGongStatus", qiMen.getJiuXingLuoGongStatus());
-
- data.put("diPanQiYiLuoGongLink", qiMen.getDiPanQiYiLuoGongLink());
- data.put("tianPanQiYiLuoGongTianQinNoLink", qiMen.getTianPanQiYiLuoGongTianQinNoLink());
- data.put("tianPanQiYiLuoGongTianQinYesLink", qiMen.getTianPanQiYiLuoGongTianQinYesLink());
return data;
}
@@ -218,5 +128,4 @@ public class QiMenController {
public Integer getDayGanZhiType() { return dayGanZhiType; }
public void setDayGanZhiType(Integer dayGanZhiType) { this.dayGanZhiType = dayGanZhiType; }
}
-
}
diff --git a/src/main/java/xuan/controller/TaLuoController.java b/src/main/java/xuan/controller/TaLuoController.java
index ee04e51..1c472fe 100644
--- a/src/main/java/xuan/controller/TaLuoController.java
+++ b/src/main/java/xuan/controller/TaLuoController.java
@@ -1,12 +1,17 @@
package xuan.controller;
import org.springframework.web.bind.annotation.*;
+import xuan.service.HunYuanAiService;
+import xuan.service.PromptTemplates;
+
import java.util.*;
@RestController
@RequestMapping("/api/taluo")
public class TaLuoController {
+ private final HunYuanAiService aiService = new HunYuanAiService();
+
private static final List