feat: add fullstack deployment and oracle app

This commit is contained in:
2026-04-28 13:35:53 +08:00
commit 57fbcf16d4
42 changed files with 7566 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
package model
// AIStatusResponse 定义前端可见的 AI 服务状态。
// 该对象只暴露公开信息,不包含密钥和上游鉴权细节。
type AIStatusResponse struct {
Enabled bool `json:"enabled"`
ProviderName string `json:"providerName"`
Model string `json:"model"`
Mode string `json:"mode"`
Message string `json:"message"`
}
// InterpretSlot 定义单个课位的占断上下文。
// 该对象同时包含取值来源和落宫结果,供后端组装用户消息。
type InterpretSlot struct {
Label string `json:"label" binding:"required"`
Token string `json:"token" binding:"required"`
Value int `json:"value" binding:"required"`
Source string `json:"source" binding:"required"`
SourceNote string `json:"sourceNote" binding:"required"`
GanZhi string `json:"ganZhi"`
Palace string `json:"palace" binding:"required"`
Element string `json:"element" binding:"required"`
Theme string `json:"theme" binding:"required"`
Detail string `json:"detail" binding:"required"`
SlotExplanation string `json:"slotExplanation" binding:"required"`
}
// InterpretRelation 定义四宫之间的生克链路。
type InterpretRelation struct {
Kind string `json:"kind" binding:"required"`
Summary string `json:"summary" binding:"required"`
}
// InterpretSummary 定义前端本地规则得出的摘要结果。
type InterpretSummary struct {
Verdict string `json:"verdict" binding:"required"`
Score int `json:"score" binding:"required"`
Summary string `json:"summary" binding:"required"`
DomainLabel string `json:"domainLabel" binding:"required"`
ChainSummary string `json:"chainSummary"`
ActionAdvice []string `json:"actionAdvice" binding:"required"`
RiskAdvice []string `json:"riskAdvice" binding:"required"`
}
// InterpretRequest 定义 AI 解卦请求。
// 前端只传结构化盘面数据,具体提示词由后端统一维护。
type InterpretRequest struct {
Mode string `json:"mode" binding:"required"`
ModeLabel string `json:"modeLabel" binding:"required"`
Question string `json:"question" binding:"required"`
SolarLabel string `json:"solarLabel" binding:"required"`
LunarLabel string `json:"lunarLabel" binding:"required"`
MethodNote string `json:"methodNote" binding:"required"`
FinalPalace string `json:"finalPalace" binding:"required"`
FinalElement string `json:"finalElement" binding:"required"`
Slots []InterpretSlot `json:"slots" binding:"required,min=4"`
Relations []InterpretRelation `json:"relations"`
LocalInterpretation InterpretSummary `json:"localInterpretation" binding:"required"`
}
// InterpretResponse 定义 AI 解卦响应。
type InterpretResponse struct {
Content string `json:"content"`
}
// APIResponse 统一包装 HTTP 返回体。
// Message 用于说明当前结果或错误原因。
type APIResponse[T any] struct {
Data *T `json:"data,omitempty"`
Message string `json:"message"`
}