- 新增HunYuanAiService服务类,实现腾讯混元API调用 - 新增PromptTemplates提示词模板类,为各模块设计专业提示词 - 修改所有Controller集成AI服务(八字、紫微、六爻、梅花、奇门、大六壬、塔罗、占星) - 修改前端所有结果页面显示AI分析结果 - 添加OkHttp依赖用于HTTP请求
129 lines
6.0 KiB
Java
129 lines
6.0 KiB
Java
package xuan.controller;
|
|
|
|
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.*;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/daliuren")
|
|
public class DaLiuRenController {
|
|
|
|
private final HunYuanAiService aiService = new HunYuanAiService();
|
|
|
|
@PostMapping("/paipan")
|
|
public Map<String, Object> paiPan(@RequestBody DaLiuRenRequest request) {
|
|
Map<String, Object> result = new HashMap<>();
|
|
try {
|
|
DaLiuRenJiChuSetting setting = new DaLiuRenJiChuSetting();
|
|
setting.setName(request.getName() != null ? request.getName() : "某人");
|
|
setting.setOccupy(request.getOccupy() != null ? request.getOccupy() : "某事");
|
|
setting.setSex(request.getSex() != null ? request.getSex() : 1);
|
|
setting.setDate(request.getDate() != null ? request.getDate() : "2024-01-01 00:00:00");
|
|
setting.setDateType(request.getDateType() != null ? request.getDateType() : 0);
|
|
setting.setLeapMonthType(request.getLeapMonthType() != null ? request.getLeapMonthType() : 0);
|
|
setting.setXuShiSuiType(request.getXuShiSuiType() != null ? request.getXuShiSuiType() : 0);
|
|
setting.setJieQiType(request.getJieQiType() != null ? request.getJieQiType() : 1);
|
|
setting.setGuiRenType(request.getGuiRenType() != null ? request.getGuiRenType() : 0);
|
|
setting.setYearGanZhiType(request.getYearGanZhiType() != null ? request.getYearGanZhiType() : 2);
|
|
setting.setMonthGanZhiType(request.getMonthGanZhiType() != null ? request.getMonthGanZhiType() : 1);
|
|
setting.setDayGanZhiType(request.getDayGanZhiType() != null ? request.getDayGanZhiType() : 0);
|
|
|
|
DaLiuRen daLiuRen = new DaLiuRen(setting);
|
|
daLiuRen.daLiuRenShenShaSetting(new DaLiuRenShenShaSetting());
|
|
|
|
Map<String, Object> data = buildDaLiuRenData(daLiuRen);
|
|
|
|
String aiAnalysis = aiService.chat(
|
|
PromptTemplates.getDaLiuRenSystemPrompt(),
|
|
PromptTemplates.getDaLiuRenUserPrompt(data)
|
|
);
|
|
data.put("aiAnalysis", aiAnalysis);
|
|
|
|
result.put("success", true);
|
|
result.put("data", data);
|
|
} catch (Exception e) {
|
|
result.put("success", false);
|
|
result.put("error", e.getMessage());
|
|
e.printStackTrace();
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private Map<String, Object> buildDaLiuRenData(DaLiuRen daLiuRen) {
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
|
data.put("name", daLiuRen.getName());
|
|
data.put("sex", daLiuRen.getSex());
|
|
data.put("age", daLiuRen.getAge());
|
|
data.put("occupy", daLiuRen.getOccupy());
|
|
|
|
data.put("solar", daLiuRen.getSolarStr2());
|
|
data.put("lunar", daLiuRen.getLunarStr2());
|
|
data.put("shengXiao", daLiuRen.getShengXiao());
|
|
|
|
data.put("yearGanZhi", daLiuRen.getYearGanZhi());
|
|
data.put("monthGanZhi", daLiuRen.getMonthGanZhi());
|
|
data.put("dayGanZhi", daLiuRen.getDayGanZhi());
|
|
data.put("hourGanZhi", daLiuRen.getHourGanZhi());
|
|
|
|
data.put("chuShengJie", daLiuRen.getChuShengJie());
|
|
data.put("yueJiang", daLiuRen.getYueJiang());
|
|
data.put("tianDiPanType", daLiuRen.getTianDiPanType());
|
|
|
|
data.put("tianPan", daLiuRen.getTianPan());
|
|
data.put("diPan", daLiuRen.getDiPan());
|
|
|
|
data.put("siKe", daLiuRen.getSiKe());
|
|
data.put("sanChuan", daLiuRen.getSanChuan());
|
|
data.put("sanChuanDunGan", daLiuRen.getSanChuanDunGan());
|
|
data.put("sanChuanLiuQin", daLiuRen.getSanChuanLiuQin());
|
|
|
|
return data;
|
|
}
|
|
|
|
public static class DaLiuRenRequest {
|
|
private String name;
|
|
private String occupy;
|
|
private Integer sex;
|
|
private String date;
|
|
private Integer dateType;
|
|
private Integer leapMonthType;
|
|
private Integer xuShiSuiType;
|
|
private Integer jieQiType;
|
|
private Integer guiRenType;
|
|
private Integer yearGanZhiType;
|
|
private Integer monthGanZhiType;
|
|
private Integer dayGanZhiType;
|
|
|
|
public String getName() { return name; }
|
|
public void setName(String name) { this.name = name; }
|
|
public String getOccupy() { return occupy; }
|
|
public void setOccupy(String occupy) { this.occupy = occupy; }
|
|
public Integer getSex() { return sex; }
|
|
public void setSex(Integer sex) { this.sex = sex; }
|
|
public String getDate() { return date; }
|
|
public void setDate(String date) { this.date = date; }
|
|
public Integer getDateType() { return dateType; }
|
|
public void setDateType(Integer dateType) { this.dateType = dateType; }
|
|
public Integer getLeapMonthType() { return leapMonthType; }
|
|
public void setLeapMonthType(Integer leapMonthType) { this.leapMonthType = leapMonthType; }
|
|
public Integer getXuShiSuiType() { return xuShiSuiType; }
|
|
public void setXuShiSuiType(Integer xuShiSuiType) { this.xuShiSuiType = xuShiSuiType; }
|
|
public Integer getJieQiType() { return jieQiType; }
|
|
public void setJieQiType(Integer jieQiType) { this.jieQiType = jieQiType; }
|
|
public Integer getGuiRenType() { return guiRenType; }
|
|
public void setGuiRenType(Integer guiRenType) { this.guiRenType = guiRenType; }
|
|
public Integer getYearGanZhiType() { return yearGanZhiType; }
|
|
public void setYearGanZhiType(Integer yearGanZhiType) { this.yearGanZhiType = yearGanZhiType; }
|
|
public Integer getMonthGanZhiType() { return monthGanZhiType; }
|
|
public void setMonthGanZhiType(Integer monthGanZhiType) { this.monthGanZhiType = monthGanZhiType; }
|
|
public Integer getDayGanZhiType() { return dayGanZhiType; }
|
|
public void setDayGanZhiType(Integer dayGanZhiType) { this.dayGanZhiType = dayGanZhiType; }
|
|
}
|
|
}
|