🎮60

자연어 질의 시스템 연결

질의 시스템과 발표

학습 목표
  • 자연어 질의 인터페이스를 붙인다
  • 정적 검증 문지기를 세운다
  • 답변에 출처를 강제한다
Interactive Simulator
자연어 질의 시스템 연결
클릭하여 시뮬레이터를 실행하세요

자연어 질의 시스템

코스 4의 5단 파이프라인을 자기 그래프에 연결합니다.

[질문] → ① 스키마 주입 → ② 생성 → ③ 정적 검증 → ④ 실행 → ⑤ 조립 → [답+출처]

① 스키마 주입

앞 모듈에서 만든 스펙 문서가 여기서 프롬프트 재료가 됩니다. 잘 써 뒀다면 지금 일이 줄어듭니다. 라벨·관계·핵심 속성·명명 규약과 금지 사항("스키마에 없는 것을 만들지 말 것")을 넣습니다.

💡 시뮬레이터의 추출 프로파일을 **"⚓ 항만물류"**로 바꾸세요. 코스 2에서 설계한 것과 같은 어휘(Vessel·PortCall·Container·Berth… 그리고 PortCall 을 허브로 두는 구조)로 추출합니다. 범용 프로파일로 두면 선박이 그냥 "Organization"으로 잡혀, 여러분이 설계한 온톨로지와 결과가 어긋납니다.

② 생성 — GD 가 교사입니다

앞 모듈의 골든 데이터셋이 그대로 few-shot 예시 은행입니다. [질문 ↔ 검증된 Cypher] 쌍을 3~5개 골라 주입합니다.

③ 정적 검증 — 반드시 구현하세요

  • 읽기 전용 강제 — CREATE/MERGE/DELETE/SET 포함 시 즉시 거부
  • 스키마 대조 — 상상된 라벨·속성 차단
  • 자원 상한 — LIMIT 강제, 타임아웃

⚠️ 프롬프트로 "쓰지 마세요"라고 부탁하는 것과 기계적으로 막는 것은 다른 수준의 보장입니다.

검증 실패 시 1회 재생성, 재실패면 "답변 불가 + 사유"로 정직하게 종료합니다.

⑤ 조립 — 출처 강제

답변의 각 사실에 [source + 레코드 ID + 적재분] 을 붙이게 합니다. LoadBatch 가 여기서 신선도 배지가 됩니다.

실습

  1. 5단을 연결하고 MVP CQ 를 자연어로 물어봅니다.
  2. 일부러 쓰기 쿼리를 유도해 보고("기록 지워줘") 문지기가 잡는지 확인합니다.
  3. 스키마에 없는 속성을 요구하는 질문을 던져 상상된 속성이 걸리는지 봅니다.
  4. 없는 개체를 물어 "데이터에 없습니다"로 답하는지 확인합니다.

산출물: 질의 시스템 + 검증기 코드 + 시연 로그

용어