diff --git a/components/Arena.tsx b/components/Arena.tsx index a4f355a..c2c8651 100644 --- a/components/Arena.tsx +++ b/components/Arena.tsx @@ -1,7 +1,7 @@ "use client"; import { useEffect, useMemo, useState } from "react"; -import { DEMO_FORCE_OPEN } from "@/lib/mockData"; +import { DEMO_FORCE_OPEN, MODEL_VERSIONS } from "@/lib/mockData"; import { outcomeLabel, pct, kickoffDisplay, winProb } from "@/lib/format"; import { type Lang, dict, teamShort } from "@/lib/i18n"; import type { @@ -41,6 +41,8 @@ export default function Arena({ const t = dict(lang); const aShort = teamShort(match.teamA, lang); const bShort = teamShort(match.teamB, lang); + const genDate = (predictions[0]?.generatedAt ?? "").replace(/-/g, "."); + const modelVersions = predictions.map((p) => MODEL_VERSIONS[p.model]).join(" · "); const [outcome, setOutcome] = useState(null); const [scoreA, setScoreA] = useState(2); const [scoreB, setScoreB] = useState(1); @@ -142,8 +144,14 @@ export default function Arena({ {/* ===== 레이어드 화이트 시트 (002) ===== */}
-
-

{t.aiBattle}

+
+

{t.aiBattle}

+
+
+ {t.genLabel} · {genDate} 00:00 KST +
+
{modelVersions}
+
diff --git a/lib/i18n.ts b/lib/i18n.ts index 56171f7..e68db83 100644 --- a/lib/i18n.ts +++ b/lib/i18n.ts @@ -91,6 +91,7 @@ type Dict = { ado2Tagline: string; ado2Sub: string; ado2Cta: string; + genLabel: string; }; export const DICT: Record = { @@ -146,6 +147,7 @@ export const DICT: Record = { footerDisc2: "스포츠 분석·엔터테인먼트 목적의 예측 게임이며 베팅·도박을 권유하지 않습니다. AI 예측은 실제 결과를 보장하지 않습니다.", footerDisc3: "100만 원 이벤트는 무료 참여형 챌린지입니다. 지급·동점 처리 조건은 별도 약관에 따릅니다. 이메일은 결과·이벤트 알림 목적으로만 사용됩니다.", hook: (a, b) => `${a} vs ${b}, AI의 선택은 갈렸다`, + genLabel: "예측 기준", adLabel: "광고", ado2Tagline: "AI 마케팅 자동화 플랫폼", ado2Sub: "AI Marketing Automation Platform →", @@ -203,6 +205,7 @@ export const DICT: Record = { footerDisc2: "A sports-analysis & entertainment prediction game. No betting or gambling. AI predictions do not guarantee real outcomes.", footerDisc3: "The ₩1,000,000 event is a free-to-enter challenge. Payout & tie-break terms follow separate rules. Email is used only for result & event alerts.", hook: (a, b) => `AI is split on ${a} vs ${b}`, + genLabel: "As of", adLabel: "AD", ado2Tagline: "AI Marketing Automation Platform", ado2Sub: "Visit ado2.o2osolution.ai →", diff --git a/lib/mockData.ts b/lib/mockData.ts index 61745ef..e5b9a73 100644 --- a/lib/mockData.ts +++ b/lib/mockData.ts @@ -74,6 +74,13 @@ function hash(s: string): number { const MODELS: ModelName[] = ["GPT", "Claude", "Gemini"]; +// 예측에 사용한 실제 모델 버전 (UI 투명성 표기용). 갱신 시 .env·AI-PREDICTIONS.md와 함께 변경. +export const MODEL_VERSIONS: Record = { + GPT: "gpt-5.5", + Claude: "claude-opus-4-8", + Gemini: "gemini-3.5-flash", +}; + // AI 셋이 갈리도록 만든 결과 조합 (홈/원정 균형) const OUTCOME_SETS: Outcome[][] = [ ["TEAM_A_WIN", "DRAW", "TEAM_B_WIN"],