diff --git a/web/backend/Dockerfile b/web/backend/Dockerfile index b500c37..5befcfe 100644 --- a/web/backend/Dockerfile +++ b/web/backend/Dockerfile @@ -22,7 +22,7 @@ WORKDIR /src COPY backend ./ COPY --from=ui /ui/dist ./dist -ENV CGO_ENABLED=0 GOOS=linux +ENV CGO_ENABLED=0 GOOS=linux GOPROXY=https://goproxy.cn,direct RUN go mod tidy && \ go build -trimpath -ldflags="-s -w" -o /out/web ./ diff --git a/web/backend/internal/handlers/ai.go b/web/backend/internal/handlers/ai.go index 3fa5aaf..bcf308d 100644 --- a/web/backend/internal/handlers/ai.go +++ b/web/backend/internal/handlers/ai.go @@ -265,11 +265,26 @@ func buildPrompt(ctx *store.AnalysisContext) []map[string]string { } } - sb.WriteString("\n请从以下4个角度简要分析(每条2-3句话,使用中文):\n") - sb.WriteString("1. 当前多空格局\n") - sb.WriteString("2. 资金行为特征\n") - sb.WriteString("3. 关键风险点\n") - sb.WriteString("4. 短期关注价位\n") + // 近30日K线数据(供支撑阻力分析) + if len(ctx.Candles) > 0 { + start := 0 + if len(ctx.Candles) > 30 { + start = len(ctx.Candles) - 30 + } + sb.WriteString("\n## 近30日K线(开/高/低/收)\n") + sb.WriteString("| 日期 | 开盘 | 最高 | 最低 | 收盘 |\n") + sb.WriteString("|------|------|------|------|------|\n") + for _, c := range ctx.Candles[start:] { + sb.WriteString(fmt.Sprintf("| %s | %.1f | %.1f | %.1f | %.1f |\n", + c.TradeDate, c.Open, c.High, c.Low, c.Close)) + } + } + + sb.WriteString("\n请从以下4个角度简要分析(使用中文):\n") + sb.WriteString("1. 当前多空格局(2-3句话)\n") + sb.WriteString("2. 资金行为特征(2-3句话)\n") + sb.WriteString("3. 关键风险点(2-3句话)\n") + sb.WriteString("4. 支撑与阻力(明确指出最近的关键支撑位和阻力位,基于近30日高低点和均线位置,给出具体价位和依据)\n") return []map[string]string{ {"role": "user", "content": sb.String()},