Files
vpd-permission-poc/docs/smilegate-mcp-current-operation-guide.md
2026-08-03 13:36:23 +09:00

5.8 KiB

Smilegate Data & AI PoC — 현재 MCP 도구 운영 안내

전체 운영 절차는 Smilegate MCP·Select AI 운영 가이드를, 고객사와 무관한 보안·VPD·Data Redaction 기준은 main의 공통 운영 문서를 따른다.

1. 현재 기본 실행 경로

모든 게임 데이터 질문은 먼저 oracle.select_ai.game_query_plan을 호출한다.

일반 데이터 분석 질문
game_query_plan → smilegate_fewshot_nl2sql

게임별·일반 분석 질문
game_query_plan → executionTasks → smilegate_fewshot_nl2sql

game_query_plan은 게임 카탈로그, 별칭, 벡터 검색 결과를 사용하여 질의 범위를 NONE, SINGLE, MULTI, ALL 중 하나로 판정하고 executionTasks를 발급한다. 다음 worker에는 원 질문을 보존한 DB 작업 인자와 GAME QUERY REFERENCE를 전달한다. Portal은 이를 보정하지 않고 task 종료 상태를 합산한다.

2. 기본 실행 MCP 도구

oracle.select_ai.game_query_plan

  • 모든 게임 데이터 질의의 필수 첫 단계다.
  • OCI GenAI Chat으로 질문에서 게임명 후보를 식별하고 게임 카탈로그 벡터 검색 결과를 검증한다.
  • targetType, supportedGames, dataEligibleTargets, 미매칭 대상을 반환한다.
  • 게임명·prefix·물리 테이블을 Java나 포털 코드에서 하드코딩하지 않는다.

oracle.select_ai.smilegate_fewshot_nl2sql

  • AU 외 일반 분석 질의의 주 실행 도구다.
  • 현재 질문으로 QA 벡터 저장소에서 승인·검증된 유사 Few-shot 예제를 찾는다.
  • 선택된 Few-shot 예제의 질문·승인 SQL·논리 객체 역할을 현재 질문 및 queryPlan과 함께 Select AI 프롬프트에 추가한다.
  • ADB DBMS_CLOUD_AI.GENERATE(..., 'showsql')로 SQL을 생성한다.
  • 생성 SQL을 읽기 전용으로 검증한 후 실행한다.
  • Few-shot 근거, 생성 SQL, 실행 결과, 행 수를 반환한다.
  • 예제 승인·리타이어·유사도 기준은 DB가 관리한다. Java/Portal은 지표 조건이나 검색 결과를 보정하지 않는다.

oracle.select_ai.game_daily_au_lookup

  • 고정 정의 AU를 별도로 점검할 때 쓰는 전용 도구다. 고객 질의의 기본 실행 경로는 executionTasks가 지정한 worker이며, 일반적으로 smilegate_fewshot_nl2sql이다.
  • 입력은 queryPlan과 선택적인 baseDate(YYYY-MM-DD)다.
  • queryPlan의 게임 키를 SG_GAME_CATALOG에서 다시 검증하고 USER_MASTER_OBJECT_NAME을 동적으로 선택한다.
  • 선택된 사용자 마스터 객체에 대해 아래 정의로 AU를 집계한다.
SELECT COUNT(DISTINCT GUID) AS AU_COUNT
FROM <catalog_user_master_object>
WHERE BASE_DT = :baseDate
  AND AU_FLAG = 1
  AND EXPT_USER_YN = 'N'
  • 게임명·별칭·prefix·물리 테이블명을 입력값이나 코드에서 직접 사용하지 않는다.
  • SINGLE, MULTI, ALL 계획의 각 대상에 대해 결과를 반환한다.

3. 등록돼 있으나 기본 경로에서 직접 실행하지 않는 도구

  • 유사 질문과 승인 SQL 예제를 직접 확인하는 관리자·점검용 도구다.
  • 일반 질의에서는 smilegate_fewshot_nl2sql이 내부적으로 Few-shot 검색을 수행하므로 별도 호출하지 않는다.

oracle.select_ai.qa_vector_store

  • 검토 완료한 질문·읽기 전용 SQL·검토 메모를 Few-shot 벡터 지식으로 저장하는 관리자 도구다.
  • 사용자 질의 실행 중에는 호출하지 않는다.

oracle.select_ai.game_catalog_resolve

  • 게임명 후보의 벡터 검색 결과를 독립적으로 점검하는 진단 도구다.
  • 정상 흐름에서는 game_query_plan 내부의 게임 식별 과정이 이 역할을 수행한다.

oracle.select_ai.game_scope_resolve

  • 과거 게임 범위와 별칭 매칭을 점검하기 위한 보조 도구다.
  • 현재 기본 판정 기준은 game_query_plan이므로 정상 경로에는 넣지 않는다.

oracle.select_ai.smilegate_game_text2sql

  • Few-shot을 붙이지 않은 기본 Select AI 결과를 비교·점검하는 보조 Text2SQL 도구다.
  • 고객용 기본 분석 경로는 smilegate_fewshot_nl2sql이다.

oracle.select_ai.smilegate_game_showprompt

  • SQL 생성에 전달된 최종 Select AI 프롬프트를 확인하는 진단 도구다.
  • 테이블 comment, 컬럼 annotation, 제약조건, 게임 범위 계획, Few-shot 근거가 프롬프트에 반영됐는지 점검한다.
  • SQL을 실행하지 않는다.

oracle.select_ai.fewshot_preflight

  • Few-shot 후보의 적합성을 별도로 확인할 때 사용하는 점검 도구다.
  • 현재 smilegate.cloud-handson.com 포털의 기본 질문 allowlist와 기본 실행 경로에는 직접 넣지 않는다.

4. 실제 검증 결과

항목 확인 결과
질문 카제나의 2026-07-15 AU
게임 범위 SINGLE / SUPPORTED
게임 키 STOVE_CHAOSZERO
카탈로그 선택 객체 CZN_COMN_USER_MST
AU 실행 상태 GAME_AU_LOOKUP / READY
기준일 2026-07-15
반환 AU 0

이 검증에서 테이블명은 코드에 고정하지 않았으며, 게임 계획 결과와 SG_GAME_CATALOG 메타데이터를 통해 선택됐다.

5. 운영 원칙

  1. 게임 범위 판단과 실행 작업 생성은 항상 game_query_plan이 담당한다.
  2. Portal은 DB task를 실행·합성하며, 질문·SQL·결과를 보정하지 않는다.
  3. 분석성 질의는 승인·검증된 Few-shot 기반 Select AI로 처리한다.
  4. RETIRED 예제는 검색하지 않으며, 승인/리타이어는 DB에 저장한다.
  5. 정답지 SQL을 런타임에 실행하지 않는다. Select AI가 새로 만든 읽기 전용 SQL만 실행한다.
  6. 문제 발생 시 SHOWPROMPT, 생성 SQL, 실행 결과, 판정 이력을 근거로 metadata·Few-shot을 보완한다.