Files
vpd-permission-poc/docs/design/706-smilegate-qa-history/README.md

5.4 KiB

설계서: 스마일게이트 고객 질답 검증 이력

추적성

  • Redmine: #706 [Smilegate] 고객 엑셀 질답 검증 이력 및 실행 화면
  • 기준 질답서: /Users/joungminko/claude-workspace/oci-data-flow-aidp/docs/reports/sgmp-select-ai-full-qa-term-dict-final-v2-20260721.md
  • 기준 데이터: 표준 DW 샘플 28건 + 카제나 샘플 19건 = 47건
  • 대상 스키마: SGMP_POC
  • 대상 화면: poc4_active_source_20260714/apps/poc4/mcp_discovery_ui.py

프로젝트 개요

vpd-permission-poc은 Oracle Autonomous Database의 게임 데이터와 Select AI/MCP를 연결해 자연어 데이터 질의를 검증하는 PoC다. 이번 기능은 고객이 제공한 Excel 기반 질답서를 실행 가능한 기준 시나리오로 바꾸고, 데모 중 실제 답변 품질을 설명 가능하게 남긴다.

목표

  1. 고객 Excel에서 정리한 47개 질문을 질문 마스터로 보관한다.
  2. 기준 답변, 기준 SQL, 과거 검증 결과와 이후 실행 결과를 모두 순차 이력으로 보관한다.
  3. 사용자가 후보 테이블에서 질문을 고르거나 자유 질의를 입력해 즉시 실행할 수 있게 한다.
  4. 후보 질문은 SQL 의미 검증과 실행 결과로 PASS, WARN, FAIL을 표시한다. 정답 기준이 없는 자유 질의는 REVIEW로 표시한다.

데이터 모델

테이블은 사용자 요청에 따라 두 개만 둔다.

테이블 역할
SG_AI_QA_QUESTION QUESTION_ID 고객 Excel 질문, 출처, 기대 포인트, 원본 샘플 SQL, 기준 SQL/답변, SQL 판정 규칙을 보관한다. 자유 질의도 해시 기준으로 이 테이블에 한 번만 등록한다.
SG_AI_QA_ANSWER ANSWER_SEQ 질문별 실행 이력이다. 과거 47건도 HISTORICAL로 적재하고, 포털 실행은 LIVE로 계속 추가한다.

SG_AI_QA_ANSWER.QUESTION_ID는 질문 마스터를 참조한다. 실행 결과는 JSON, 생성 SQL·답변·판정 근거는 CLOB으로 저장한다. 따라서 질문 기준은 바뀌어도 이미 실행된 이력의 원문과 당시 판정을 보존한다.

판정 규칙

  1. 기준 시나리오는 required_sql_termsrecommended_sql_terms를 사용한다.
  2. 필수 테이블·컬럼·집계·기간 규칙이 빠지거나 모델 오류 문구가 SQL에 섞이면 FAIL이다.
  3. 권장 필터가 빠졌거나 지원 범위가 일부인 경우 WARN이다.
  4. 미지원 게임 질문은 별칭 조회를 거치지 않고 임의 게임 ID나 테이블을 만들어 내면 FAIL이다. 안전하게 거절하거나 별칭 조회 결과가 0건이면 PASS이다.
  5. 월간 NRU/AU, 재화 보유/사용 등 기존 질답서의 개별 보정 규칙은 같은 판정기에 반영한다.
  6. 자유 질의는 기준 질문을 선택하지 않은 경우 REVIEW로 저장한다. 실행 성공을 정답으로 표시하지 않는다.

문장 표현의 유사도만으로 정답을 판정하지 않는다. 집계값, 생성 SQL, 실행 결과가 근거가 되므로 고객에게 왜 통과 또는 실패인지 보여줄 수 있다.

화면 흐름

  1. 검증 시나리오 탭에서 47개 후보를 표 형태로 표시한다. 케이스, 구분, 제목, 질문, 기대 포인트, 최근 판정, 최근 실행 시각을 보여 준다.
  2. 행을 선택하면 질문 입력란이 채워지고, 우측 또는 하단에 기준 답변·기준 SQL·원본 Excel 출처를 표시한다.
  3. 사용자는 선택된 기준 질문을 그대로 실행하거나 자유 텍스트를 작성한다.
  4. 실행 뒤에는 현재 답변, 생성 SQL, 조회 행, 판정, 판정 근거를 표시하고 SG_AI_QA_ANSWER에 저장한다.
  5. 같은 질문의 과거 답변은 최신 순 표로 보여 주며, 과거 기준 검증과 현재 실행을 구분한다.

실행 근거 표시와 가독성

선택 질문의 기준 답변과 기준 SQL은 브라우저의 다크 테마 설정과 관계없이 밝은 배경과 어두운 글자로 표시한다. 질의 실행이 끝난 뒤에는 요약 답변만 보여 주지 않고, 실제 MCP가 반환한 생성 SQL과 조회 결과 테이블을 기본으로 펼쳐서 함께 보여 준다. 결과 행이 없으면 그 사실을 명확히 표시한다.

적재 기준

  • 기준 원본은 sgmp-select-ai-full-qa-term-dict-final-v2-20260721.md와 동시 생성된 JSON이다.
  • JSON의 STD-05 실행 출력은 비정상적으로 크므로, 이력 조회 안정성을 위해 저장 시 안전한 길이로 절단하고 원본 보고서 경로를 질문에 남긴다.
  • 과거 레코드는 HISTORICAL, 포털에서 수행하는 새 레코드는 LIVE로 구분한다.

완료 기준

  • ADB에 질문 마스터 47건과 과거 답변 이력 47건이 있다.
  • 답변 이력 키는 증가하는 ANSWER_SEQ이며 질문 외래키가 유효하다.
  • 후보 선택, 자유 질의, 기준 답변/SQL, 과거 이력, PASS/WARN/FAIL/REVIEW 표기가 한 화면에서 작동한다.
  • 생성 SQL의 핵심 규칙을 바꾼 실패 케이스가 FAIL로 판정되는 단위 테스트가 있다.
  • 실제 포털 실행 한 건이 ADB 이력에 저장되는 것을 확인한다.

비범위

  • 이 기능은 Select AI의 정답을 하드코딩해 바꾸지 않는다.
  • 과거 대화 SQLite 저장소를 이번 작업에서 전면 이전하지 않는다. 고객 질답 검증 이력만 ADB의 두 테이블에 저장한다.
  • 자유 질의에 임의의 정답을 부여하지 않는다.