feat(poc4): rebrand demo for Smilegate data and AI

This commit is contained in:
devmrko
2026-07-22 12:38:10 +09:00
parent c4e158f639
commit 97ed5d38ab
3 changed files with 39 additions and 18 deletions

View File

@@ -0,0 +1,21 @@
# 설계서: 스마일게이트 Data & AI PoC 화면 전환
## 프로젝트 개요
이 저장소는 Oracle Database, MCP, Select AI의 데이터 플랫폼 PoC와 관리 화면을 제공한다. 이번 공개 데모는 스마일게이트의 게임 로그·서비스 데이터 분석 및 AI 업무 효율화 검증을 위한 것이다.
## 목표
Streamlit PoC 화면에서 기존 고객사 브랜딩과 해당 업무 표현을 제거하고, 스마일게이트 게임 데이터 AI PoC의 목적과 사용자 안내로 전환한다.
## 범위와 원칙
- 로그인 화면, 공통 헤더, 브라우저 제목, 로그인 미설정 안내를 스마일게이트용으로 변경한다.
- UI는 Noto Sans KR 계열 글꼴을 사용하며 외부 고객사 로고·웹폰트를 요청하지 않는다.
- 현재의 보험 VPD/Select AI backend 객체와 MCP 도구명은 UI 브랜딩 변경 대상이 아니다. 실제 게임 데이터 기반 질의로 바꾸려면 스키마, 권한, 평가 질의서를 별도 설계·교체한다.
## 완료 기준
- 공개 URL의 로그인 화면과 제목에 기존 고객사명이 표시되지 않는다.
- 스마일게이트 게임 데이터 AI PoC의 목적과 데모 계정 안내가 표시된다.
- Streamlit 구문 검증과 공개 URL 렌더링을 통과한다.

View File

@@ -249,7 +249,7 @@ section[data-testid="stSidebar"] input:disabled {
.kb-login-brand h1 {
margin: 0;
color: var(--kb-ink);
font-family: "KBFG Title", "Noto Sans KR", "Malgun Gothic", sans-serif;
font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
font-size: 2.25rem;
font-weight: 600;
line-height: 1.2;
@@ -301,7 +301,7 @@ section[data-testid="stSidebar"] input:disabled {
border-radius: 6px !important;
background: var(--kb-yellow) !important;
color: var(--kb-ink) !important;
font-family: "KBFG Title", "Noto Sans KR", "Malgun Gothic", sans-serif;
font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
font-size: 1.08rem !important;
font-weight: 600 !important;
box-shadow: 0 3px 0 #111111;
@@ -434,7 +434,7 @@ section[data-testid="stSidebar"] .kb-panel-title {
padding: 0.65rem 0.85rem;
border-left: 6px solid;
border-radius: 4px;
font-family: "KBFG Title", "Noto Sans KR", "Malgun Gothic", sans-serif;
font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
font-size: 1.75rem;
font-weight: 600;
line-height: 1.2;
@@ -617,7 +617,7 @@ button[data-baseweb="tab"] {
color: #2452a3 !important;
background: #eef3ff;
border-radius: 6px 6px 0 0;
font-family: "KBFG Title", "Noto Sans KR", "Malgun Gothic", sans-serif !important;
font-family: "Noto Sans KR", "Malgun Gothic", sans-serif !important;
font-size: 1.2rem !important;
font-weight: 700 !important;
letter-spacing: 0;
@@ -662,7 +662,7 @@ div[data-testid="stMetric"] {
gap: 10px;
margin: 1.05rem 0 0.65rem;
color: #111111;
font-family: "KBFG Title", "Noto Sans KR", "Malgun Gothic", sans-serif;
font-family: "Noto Sans KR", "Malgun Gothic", sans-serif;
font-size: 1.18rem;
font-weight: 700;
line-height: 1.3;
@@ -1991,7 +1991,7 @@ def _render_portal_login() -> None:
with st.container(key="kb_login_container"):
render_hmm_login_brand(st)
if not _portal_auth_configured():
st.error("포털 로그인 설정을 확인해 주세요.")
st.info("데모 계정 설정 중입니다. 운영 담당자에게 계정 발급을 요청해 주세요.")
return
with st.form("poc4_portal_login_form", clear_on_submit=True):
username = st.text_input(
@@ -3284,10 +3284,10 @@ def _auto_clause_comparison_table(evidence: Mapping[str, Any]) -> str:
return (
"| 보험사·상품코드 | 조항 | 확인 내용 | 원본 근거 |\n"
"|---|---|---|---|\n"
"| KB손해보험 41048 | 제6조 보상하는 손해 | 피보험자동차 사고로 "
"| 기준 데이터 41048 | 제6조 보상하는 손해 | 피보험자동차 사고로 "
"타인의 재물을 없애거나 훼손해 부담한 법률상 손해배상책임을 보상 | "
f"{kb_coverage_reference} |\n"
"| KB손해보험 41048 | 제8조 보상하지 않는 손해 | 고의, 전쟁·폭동, "
"| 기준 데이터 41048 | 제8조 보상하지 않는 손해 | 고의, 전쟁·폭동, "
"천재지변, 핵연료 영향, 반복적 유상 사용 등은 약관상 제외 조건 | "
f"{_chunk_reference(kb_exclusion)} |\n"
"| 삼성화재 20071 | 대물배상 상품요약 | 타인 차량·재물 손해를 "
@@ -6918,7 +6918,7 @@ def _process_submitted_question(
def main() -> None:
st.set_page_config(
page_title="HMM AI Operations Console", page_icon="⛴️", layout="wide"
page_title="스마일게이트 게임 데이터 AI 콘솔", page_icon="🎮", layout="wide"
)
_apply_hmm_theme()
_restore_portal_remembered_session()

View File

@@ -1,10 +1,10 @@
"""Small, self-contained HMM presentation layer for the PoC4 Streamlit app."""
"""Small, self-contained Smilegate presentation layer for the PoC4 Streamlit app."""
HMM_CLEAN_THEME_CSS = """
<style>
:root {
color-scheme:light !important;
--hmm-navy:#003b70; --hmm-ink:#172b3a; --hmm-muted:#667785; --hmm-line:#dfe7ed;
--hmm-navy:#e05a33; --hmm-ink:#252525; --hmm-muted:#6b6b6b; --hmm-line:#e7e2df;
}
html, body, [data-testid="stAppViewContainer"], .stApp {
background:#fff !important; color:var(--hmm-ink) !important;
@@ -89,10 +89,10 @@ def render_hmm_login_brand(st: object) -> None:
st.markdown(
"""
<section class="kb-login-brand">
<div class="hmm-login-wordmark" aria-label="HMM">HMM</div>
<div class="kb-login-kicker">HMM SHIPPING &amp; LOGISTICS DEMO</div>
<h1>HMM AI 업무 에이전트</h1>
<p>사용자 인증 후 해운·물류 AI 질의와 보안 관리 기능을 이용할 수 있습니다.</p>
<div class="hmm-login-wordmark" aria-label="Smilegate">SMILEGATE</div>
<div class="kb-login-kicker">SMILEGATE DATA &amp; AI POC</div>
<h1>스마일게이트 게임 데이터 AI 에이전트</h1>
<p>게임 로그·서비스 데이터를 기반으로 AI 업무 효율화와 데이터 플랫폼 활용 방식을 검증합니다.</p>
</section>
""",
unsafe_allow_html=True,
@@ -103,9 +103,9 @@ def render_hmm_header(st: object) -> None:
st.markdown(
"""
<section class="hmm-app-header">
<div class="hmm-app-wordmark">HMM</div>
<h1>AI 업무 에이전트</h1>
<p>사용자 권한에 맞는 업무 질의와 보안 관리 기능을 제공합니다.</p>
<div class="hmm-app-wordmark">SMILEGATE</div>
<h1>게임 데이터 AI 에이전트</h1>
<p>게임 로그와 서비스 데이터를 AI로 질의·분석하고, 권한 기반 데이터 접근을 검증합니다.</p>
</section>
""",
unsafe_allow_html=True,