Files
vpd-permission-poc/docs/design/708-smilegate-select-ai-oci-genai/README.md
2026-08-03 12:31:50 +09:00

4.4 KiB

#708 Smilegate Select AI OCI GenAI 전환

프로젝트 개요

Smilegate DATA & AI PoC는 Autonomous Database의 게임 데이터에서 Select AI Text2SQL을 생성하고, MCP와 백오피스를 통해 결과를 조회한다. 현재 운영 프로파일은 외부 OpenRouter 경유 Claude를 사용한다.

목표

SGMP_POC_HAIKU45가 가진 게임 데이터 object list와 메타데이터 활용 범위는 유지하면서, LLM 호출 경로만 OCI Generative AI openai.gpt-5.4-mini로 전환한다. ADB Resource Principal이 아닌 이 머신의 ~/.oci/config DEFAULT API signing credential을 ADB credential으로 등록한다.

전환 설계

구분 기존 전환 후
프로파일 SGMP_POC_HAIKU45 SGMP_POC_OCI_GPT54MINI
제공자 OpenAI 호환 외부 경로 OCI Generative AI (provider: oci)
모델 Claude Haiku 4.5 openai.gpt-5.4-mini
인증 외부 API credential DEFAULT API signing key 기반 SGMP_POC_OCI_DEFAULT_CRED
OCI 리전 외부 서비스 us-chicago-1 (GPT-5.4 Mini OCI inference route)
게임 데이터 범위 기존 object list 기존 profile attributes에서 복제
MCP 설정 기존 프로파일명 BACKOFFICE_SELECT_AI_PROFILE=SGMP_POC_OCI_GPT54MINI

신규 프로파일은 기존 프로파일의 metadata 관련 attributes를 복사하고, 외부 endpoint·credential·model은 OCI 값으로 새로 설정한다. 따라서 object list, comment, annotation, constraint 기반 Text2SQL 문맥은 유지된다. 기존 외부 프로파일은 삭제하지 않으며, 전환 실패 시 환경변수만 원래 값으로 되돌린다.

사전 조건

  1. ~/.oci/config DEFAULT의 user, tenancy, fingerprint, key_file이 유효한 OCI API signing key여야 한다.
  2. DEFAULT API signing user가 Chicago 리전 root compartment에서 OCI Generative AI openai.gpt-5.4-mini 호출 권한을 가져야 한다. DEFAULT config의 signing region과 GPT inference route는 독립적이므로 profile attribute regionus-chicago-1로 명시한다.
  3. 스크립트는 SGMP_POC 프로파일 소유자로 실행한다.

구현 순서

  1. sql/adb/72_sgmp_select_ai_oci_genai_profile.sql로 신규 OCI 프로파일을 만든다.
  2. 새 프로파일로 한글 Text2SQL SHOWSQL과 생성 SQL의 읽기 전용 실행을 검증한다.
  3. 운영 서버의 BACKOFFICE_SELECT_AI_PROFILE만 새 프로파일로 교체하고 백오피스를 재기동한다.
  4. 운영 MCP의 oracle.select_ai.smilegate_game_text2sql 응답 profile과 집계 결과를 검증한다.

롤백

새 프로파일을 삭제하지 않는다. MCP에서 오류가 나거나 SQL 품질이 허용 기준을 충족하지 않으면 /etc/smilegate/backoffice.envBACKOFFICE_SELECT_AI_PROFILESGMP_POC_HAIKU45로 되돌린 뒤 서비스를 재기동한다.

검증 기준

  • 새 프로파일 provider=oci, model=openai.gpt-5.4-mini, credential=SGMP_POC_OCI_DEFAULT_CRED, region=us-chicago-1
  • 한글 질의는 SQLcl UTF-8 base64 복원식으로 전달한다.
  • DBMS_CLOUD_AI.GENERATE(..., 'showsql')이 읽기 전용 SELECT 또는 WITH SQL을 생성한다.
  • 해당 SQL을 읽기 전용 트랜잭션에서 실행해 결과를 반환한다.
  • 운영 MCP 응답의 profileSGMP_POC_OCI_GPT54MINI이다.

Llama 4 Scout 범위 판정 성능 비교

게임 범위 판정은 Text2SQL 실행 전 OCI Chat을 사용한다. 이 단계의 응답시간을 비교하기 위해 운영 프로파일을 교체하지 않고 별도 테스트 프로파일 SGMP_POC_OCI_LLAMA4SCOUT을 만든다.

구분 운영 비교 대상
프로파일 SGMP_POC_OCI_GPT54MINI SGMP_POC_OCI_LLAMA4SCOUT
모델 openai.gpt-5.4-mini meta.llama-4-scout-17b-16e-instruct
인증·리전 기존 OCI credential·inference region 유지 동일
object list·metadata 운영 값 운영 값 복제
운영 트래픽 사용 사용하지 않음

sql/adb/112_sgmp_select_ai_oci_llama4scout_profile.sql은 기존 OCI 프로파일의 credential, region, compartment, object list와 metadata instructions를 복제하고 모델만 교체한다. 같은 질문을 두 프로파일에 각각 Chat 호출해 경과시간과 반환 JSON 형식을 기록한다. 품질·지연시간 결과를 검토하기 전에는 sg_game_extract_mentionssg_game_match_candidate의 운영 프로파일을 바꾸지 않는다.