diff --git a/poc4_active_source_20260714/apps/poc4/mcp_discovery_ui.py b/poc4_active_source_20260714/apps/poc4/mcp_discovery_ui.py index bbd6a6c..38cd46a 100644 --- a/poc4_active_source_20260714/apps/poc4/mcp_discovery_ui.py +++ b/poc4_active_source_20260714/apps/poc4/mcp_discovery_ui.py @@ -1323,7 +1323,24 @@ html, body, [data-testid="stAppViewContainer"], .stApp { .kb-hero h1 { margin: 0; color: #12324a; font-size: 2rem; font-weight: 700; } .kb-hero p { margin: 10px 0 0; max-width: 680px; line-height: 1.6; } .kb-ci-panel { flex: 0 0 auto; } -.kb-ci-panel img { display: block; width: 148px; height: auto; } +.kb-ci-panel img { display: block; width: 112px; height: auto; } + +.st-key-kb_login_container { max-width: 560px; margin: 56px auto 0; } +.kb-login-brand { text-align: center; } +.kb-login-logo { display: block; width: 180px; height: auto; margin: 0 auto 12px; } +.kb-login-kicker { color: #5f7280; font-size: 0.75rem; font-weight: 700; } +.kb-login-brand h1 { margin: 12px 0 8px; color: #12324a; font-size: 1.8rem; } +.kb-login-brand p { margin: 0 0 22px; color: #5f7280; } +.st-key-kb_login_container [data-testid="stForm"] { + padding: 20px; border: 1px solid #d9e4ec; border-radius: 8px; + background: #ffffff; box-shadow: none; +} +.st-key-kb_login_container [data-testid="stFormSubmitButton"] button { + background: #004b87; color: #ffffff; border: 1px solid #004b87; box-shadow: none; +} +.st-key-kb_login_container [data-testid="stFormSubmitButton"] button:hover { + background: #006aab; border-color: #006aab; color: #ffffff; +} .kb-vpd-card { margin: 10px 0; padding: 14px; border: 1px solid #d9e4ec; @@ -1957,7 +1974,6 @@ def _render_kb_header() -> None:
-
HMM
HMM Digital Operations Demo
Connect Values · Navigate Growth · AI 업무 질의
@@ -5894,111 +5910,25 @@ def _render_chat_history(conversation_id: str, page_key: str) -> None: def _render_architecture_tab() -> None: - architecture_html = """ -
-
- 전체 시스템 구성 -
-
- 사용자 권한 컨텍스트가 AI 라우터와 MCP 도구를 거쳐 Oracle Database의 - 정형 데이터·약관 지식·보안 정책으로 연결되는 현재 DEMO 실행 구조입니다. -
+ st.subheader("운영 아키텍처") + st.caption("사용자 권한을 기준으로 AI 질의, MCP 도구, Oracle Database를 연결합니다.") + experience, integration, security = st.columns(3) + with experience: + st.markdown("**01 · 사용자와 권한**") + st.write("사용자 역할과 담당 범위를 요청 컨텍스트에 적용합니다.") + with integration: + st.markdown("**02 · AI와 MCP**") + st.write("질의에 맞는 데이터·지식 검색 도구를 선택합니다.") + with security: + st.markdown("**03 · 데이터와 보안**") + st.write("VPD와 감사 정책으로 데이터 접근을 통제합니다.") -
-
- 01 · AI Experience - 사용자 권한 기반 AI 업무 경험 -
-
- 사용자·권한 - VPD 사용자와 Bearer Token으로 역할·지점·담당 범위를 요청 컨텍스트에 결합 -
-
- KB손해보험 AI 업무 에이전트 - OCI Compute · 아키텍처·시나리오·감사로그·보안관리 -
-
- OCI GenAI Router - 질의 분류, 단일·멀티툴 판단, GPT·Grok·Llama 기반 최종 답변 합성 -
-
-
- - -
- 02 · MCP INTEGRATION - 정형·벡터 MCP -

업무 SQL과 보험 약관 근거를 목적별 도구로 조회

-
kb_mcp · ords.query.kb_select_ai_vpd
-
kb_vector_mcp · hybrid_rerank_search
-
- - -
- 03 · DATA & SECURITY - Oracle ADB KBAIPOC -

POC_2 · KB_* · Select AI · Vector Search

-
VPD RLS/CLS · DBMS_FGA · Unified Audit Trail
-
-
- -
-
-

질의 처리 흐름

-
- 1 -
권한 컨텍스트 생성선택한 사용자 토큰과 질문을 세션 요청에 결합합니다.
-
-
- 2 -
AI 실행 계획 수립선택 LLM이 단일 도구 또는 멀티툴 실행 경로를 판단합니다.
-
-
- 3 -
MCP 근거 조회정형 Select AI/VPD와 약관 Hybrid·Rerank 검색을 필요한 만큼 호출합니다.
-
-
- 4 -
DB 보안 정책 적용행·컬럼 접근 통제 후 민감 컬럼 접근을 FGA 감사 로그로 기록합니다.
-
-
- 5 -
결과 합성·표시원본 MCP 결과를 보존하고 AI 답변, 진행 상태와 감사 결과를 화면에 표시합니다.
-
-
- -
-

구성 요소 설명

-
-
- 정형 업무 데이터 - POC_2의 KB_CUSTOMERS, KB_CONTRACTS, KB_CLAIMS 등 KB_* 핵심 테이블을 Select AI로 조회합니다. -
-
- 약관 지식 검색 - OCI Embedding, Oracle Vector Search와 OCI Rerank를 결합해 자사·타사 약관 근거를 찾습니다. -
-
- 데이터 보안 - Bearer Token의 사용자 식별자를 기준으로 VPD 행·컬럼 정책을 적용하고 접근 결과를 반환합니다. -
-
- 관리·감사 - 보안 운영 포털에서 정책을 관리하고, 감사로그 탭은 Wallet 연결로 FGA 정책과 Unified Audit Trail을 조회합니다. -
-
-
-
-
- """ + st.divider() + st.markdown("#### 질의 처리 흐름") st.markdown( - "\n".join( - line.strip() - for line in architecture_html.splitlines() - if line.strip() - ), - unsafe_allow_html=True, + "1. 사용자 권한과 질문을 요청에 반영합니다. \n" + "2. AI가 필요한 MCP 도구를 선택합니다. \n" + "3. Oracle Database에서 근거를 조회하고 결과를 표시합니다." )