From 301f45301f029b9ed27cd2b45608d66c7c1468a9 Mon Sep 17 00:00:00 2001 From: Macbook Date: Wed, 17 Jun 2026 15:19:41 +0900 Subject: [PATCH] =?UTF-8?q?llm=20timeout=20=EB=AC=B8=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ategyEvaluationTa4jDiagnosticsService.java | 16 +---------- docker-compose.yml | 2 ++ frontend/nginx-locations.inc | 27 ++++++++++++++----- frontend/src/utils/backendApi.ts | 4 +-- scripts/exdev-caddy-coexist.Caddyfile | 2 ++ 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/backend/src/main/java/com/goldenchart/service/StrategyEvaluationTa4jDiagnosticsService.java b/backend/src/main/java/com/goldenchart/service/StrategyEvaluationTa4jDiagnosticsService.java index c2bb155..5ee2fa2 100644 --- a/backend/src/main/java/com/goldenchart/service/StrategyEvaluationTa4jDiagnosticsService.java +++ b/backend/src/main/java/com/goldenchart/service/StrategyEvaluationTa4jDiagnosticsService.java @@ -34,7 +34,6 @@ import java.util.Optional; public class StrategyEvaluationTa4jDiagnosticsService { private static final int MAX_RULE_JSON_CHARS = 8_000; - private static final int MAX_TRACE_LINES = 100; private final LiveConditionStatusService liveConditionStatusService; private final GcStrategyRepository strategyRepo; @@ -176,21 +175,8 @@ public class StrategyEvaluationTa4jDiagnosticsService { block.put("descriptorJson", truncate(ComponentSerialization.toJson(descriptor), MAX_RULE_JSON_CHARS)); } - java.util.List traceLines; - boolean satisfied; - try (Ta4jRuleTraceCapture capture = Ta4jRuleTraceCapture.open()) { - satisfied = capture.evaluateWithTrace(rule, evalIndex, null); - traceLines = capture.lines(); - } + boolean satisfied = rule.isSatisfied(evalIndex, null); block.put("satisfiedAtEvalIndex", satisfied); - ArrayNode traceArr = block.putArray("evaluationTraceLog"); - int n = Math.min(traceLines.size(), MAX_TRACE_LINES); - for (int i = 0; i < n; i++) { - traceArr.add(traceLines.get(i)); - } - if (traceLines.isEmpty()) { - block.put("traceNote", "TRACE 로그 없음 — logback TRACE 미활성 또는 Rule trace 미지원"); - } } catch (Exception e) { block.put("buildError", e.getMessage()); } diff --git a/docker-compose.yml b/docker-compose.yml index 0c37f5a..a8f431c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -117,5 +117,7 @@ services: volumes: # Desktop updater latest.json·설치 파일 — Jenkins publish + nginx reload - ./frontend/public/desktop/updates:/usr/share/nginx/html/desktop/updates:ro + # nginx 타임아웃 등 프록시 설정 — 재빌드 없이 reload 로 반영 가능 + - ./frontend/nginx-locations.inc:/etc/nginx/gc-locations.inc:ro networks: - goldenchart-net diff --git a/frontend/nginx-locations.inc b/frontend/nginx-locations.inc index 780f5c5..a11a7f5 100644 --- a/frontend/nginx-locations.inc +++ b/frontend/nginx-locations.inc @@ -23,21 +23,34 @@ chunked_transfer_encoding on; } - # ── LLM / AI 검증 (Ta4j 재평가 + LLM 최대 120s — 일반 /api/ 60s 초과) ─── - location ~ ^/api/strategy/evaluation/(ai-verify|llm-test)$ { + # ── LLM / AI 검증 (Ta4j 재평가 + LLM — exact match, 일반 /api/ 60s 회피) ─── + location = /api/strategy/evaluation/ai-verify { proxy_pass http://backend:8080; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; - proxy_connect_timeout 30s; - proxy_read_timeout 300s; - proxy_send_timeout 300s; + proxy_connect_timeout 60s; + proxy_read_timeout 600s; + proxy_send_timeout 600s; proxy_buffering off; client_max_body_size 16m; } + location = /api/strategy/evaluation/llm-test { + proxy_pass http://backend:8080; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_connect_timeout 60s; + proxy_read_timeout 600s; + proxy_send_timeout 600s; + proxy_buffering off; + } + # ── GoldenChart Spring Boot Backend 프록시 ──────────────────────── location /api/ { proxy_pass http://backend:8080; @@ -49,8 +62,8 @@ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 10s; - proxy_read_timeout 60s; - proxy_send_timeout 60s; + proxy_read_timeout 180s; + proxy_send_timeout 180s; proxy_buffering off; } diff --git a/frontend/src/utils/backendApi.ts b/frontend/src/utils/backendApi.ts index 015dd22..13e0ad9 100644 --- a/frontend/src/utils/backendApi.ts +++ b/frontend/src/utils/backendApi.ts @@ -1749,7 +1749,7 @@ export async function fetchStrategyEvaluationAiVerify( cache: 'no-store', body: JSON.stringify({ context }), }, - 200_000, + 620_000, ); } @@ -1768,7 +1768,7 @@ export async function fetchLlmConnectionTest(): Promise