근거가 있는 답변
법령, 고시, 시설기준, 매뉴얼, Q&A, 해외기준 등 업로드된 지식문서와 발행 글을 검색해 답합니다. “그럴 것 같다”가 아니라 “어디에 나와 있는지”까지 보여줍니다.
Insight Archive RAG Agent
법령·시설기준·매뉴얼을 근거로,
현장에서 바로 쓸 수 있게 답합니다.
어린이놀이시설 안전관리 전문 아카이브 위에 얹힌 RAG 챗봇. 콜센터형 FAQ가 아니라, 등록 문서를 찾아 출처와 함께 안내합니다.
User benefits
긴 법령 PDF를 뒤지거나, 상담원 대기·고정 스크립트에 막히지 않아도 됩니다. 등록된 전문자료를 검색해 결론·체크리스트·출처까지 한 번에 제공합니다.
법령, 고시, 시설기준, 매뉴얼, Q&A, 해외기준 등 업로드된 지식문서와 발행 글을 검색해 답합니다. “그럴 것 같다”가 아니라 “어디에 나와 있는지”까지 보여줍니다.
한 줄 결론 → 핵심 설명 → 실무 체크리스트 → 근거 배지 → 관련 글. 채팅 말풍선이 아니라 지식 카드로 정리되어, 점검·보고·교육에 바로 옮길 수 있습니다.
메인 화면을 챗봇으로 바꾸지 않습니다. 글을 읽다가 궁금할 때 우측 하단에서 AI 에이전트를 열어 이어서 질문하면 됩니다.
유사도가 낮으면 GENERAL로 단정을 피하고, 후보가 여러 주제에 흩어지면 CLARIFY로 되묻습니다. 모든 답변에 면책 문구를 붙이며, RAG에서는 원문 인용을 우선해 수치·조문을 임의로 재서술하지 않습니다.
Query Rewrite가 “소독”→감염병·위생, “난간 높이”→guardrail height처럼 표현을 확장해 검색합니다. 어휘가 달라도 EN 1176 영문 자료까지 이어질 수 있습니다.
Why not a call-center bot
기존 고객센터 챗봇은 “의도 분류 + 고정 답변”에 가깝습니다. AI 에이전트는 등록 문서를 검색하는 RAG로, 출처·실무 체크·되묻기·시설 레짐 분기까지 함께 줍니다.
Answer experience
단순 문장형 채팅이 아닙니다. 한 번의 질문으로 결론, 설명, 점검 항목, 근거 자료, 관련 아카이브 글까지 이어집니다.
질문 · 무인 키즈카페도 안전관리 의무가 있나요?
AI 답변은 일반적인 정보 제공을 목적으로 하며, 최종 해석은 관계기관의 공식 확인이 필요할 수 있습니다.
Document preprocessing
관리자가 PDF·TXT·MD를 올리면, 텍스트 추출 → 청킹 → 임베딩 → 검색 가능 상태로 자동 전환됩니다. 사용자 입장에서는 “최신 기준이 반영된 에이전트”로 체감됩니다.
PDF, TXT, Markdown. 문서유형(법령·매뉴얼·Q&A 등)과 함께 등록합니다.
PDF는 페이지를 병합해 본문을 추출하고, 텍스트 파일은 UTF-8로 읽습니다.
기본 800자 / overlap 100. 스마트 청킹(옵션) 시 법령·기술기준·매뉴얼·사례 유형별로 표·수치를 보존해 쪼갭니다.
청크별 벡터(text-embedding-3-small, 1536차원)를 생성해 pgvector에 저장합니다.
하이브리드 검색(벡터 + 한국어 키워드)에 바로 쓰입니다. 재임베딩도 가능합니다.
Development specs
사용자에게는 “빠르고 믿을 수 있는 답”으로 보이도록, 시설 레짐 분기 · Query Rewrite · 하이브리드·멀티쿼리 검색 · legalWeight 리랭킹 · 유사도 게이트 · CLARIFY · 구조화 응답까지 파이프라인을 나눴습니다.
legalWeight·priority 리랭킹 → 0.55 / 0.70 게이트 · Judge · 미달 시 CLARIFY(0.35) 또는 GENERALnpm run eval) · 면책 문구Grounded Intelligence
단순 LLM 래핑이 아닙니다. 고정 의도 분기, 시설 레짐(일반/신종유사), Query Rewrite + Multi-Query 하이브리드 검색,
legalWeight 리랭킹, 0.55 / 0.70 유사도 게이트, LLM Judge, CLARIFY 되묻기,
원문 인용 우선 구조화 응답까지 — 어린이놀이시설 안전관리 코퍼스에 맞춘 실제 운영 파이프라인입니다.
인사·시스템 소개·등록 문서 목록·FAQ 목록은 RAG 검색 없이 결정론적 응답으로 분기합니다.
나머지 도메인 질문은 시설 레짐·검색·게이트 파이프라인으로 처리하고,
근거가 약하면 CLARIFY로 되묻거나 GENERAL로 폴백합니다.
일반 도메인 질문에만 Query Rewrite를 적용해 동의어·한↔영 변형을 만든 뒤 Multi-Query로 병렬 검색합니다. “소독”↔감염병, “난간 높이”↔guardrail처럼 어휘 불일치와 EN 1176 영문 원문 검색을 보강합니다. 후속 질문은 직전 사용자 발화로 검색어를 보강합니다.
최소 유사도 0.55 미만이면 발행글만 쓰거나, 후보가 여러 주제에 흩어지면 CLARIFY(0.35), 아니면 GENERAL.
0.70 이상이면 Judge를 생략하고 RAG로 진입합니다.
그 사이 구간은 LLM Judge가 지식문서 관련성을 재판정해, 단일 threshold가 놓치는 경계를 보완합니다.
벡터 0.4 · 키워드 0.5 · legalWeight 가산(binding~public_guidance)으로 재순위합니다.
새 문서유형은 DB 가중치만 맞으면 코드 수정 없이 반영되며, priority로 동일 가중치 내 순서를 미세 조정합니다.
출력은 자유 텍스트가 아닌 구조화 JSON(결론·설명·체크리스트·출처·관련 카드)입니다. 수치·조문은 원문 표현을 우선 인용하고, 근거 없는 단정은 프롬프트에서 금지합니다. CLARIFY 모드에서는 후보 항목으로 질문을 좁히도록 안내합니다.
무인 키즈카페·키즈풀 등 신종유사 질문은 「신종유사놀이시설 가이드」만 검색하고 일반 법령 리라이트를 건너뜁니다. 일반 어린이놀이시설 질문과 근거가 섞이지 않도록 발행글도 레짐에 맞게 필터합니다.
Measured quality
2026-07-15, 골든셋 45문항 기준 baseline 대비 improved(Query Rewrite · legalWeight 리랭킹 · 원문 인용 프롬프트) 측정 결과입니다.
추측이 아니라 npm run eval로 반복 확인합니다.
한줄 요약 라우팅·문서유형 인용·어휘 불일치에서 개선이 확인됐습니다. Answer Point 전체는 -1.9pp로 소폭 하락했지만, Query Rewrite 목표인 어휘불일치형은 +33.3pp 상승했습니다.
Source: npm run eval · eval/golden-set.json (45 questions) · Y축: 정확도/커버리지 (%)
| 지표 | Baseline | Improved | Δ |
|---|---|---|---|
| Intent Accuracy | 95.6% | 97.8% | +2.2pp |
| Answer Mode Accuracy | 95.6% | 97.8% | +2.2pp |
| Doc Type Coverage | 71.1% | 77.8% | +6.7pp |
| Answer Point Coverage | 76.7% | 74.8% | -1.9pp |
고정응답·범위밖을 제외한 도메인 RAG 문항 기준
| 지표 | Baseline | Improved | Δ |
|---|---|---|---|
| Mode Accuracy | 94.9% | 97.4% | +2.6pp |
| Doc Type Coverage | 66.7% | 74.4% | +7.7pp |
| Answer Point Coverage | 79.5% | 78.6% | -0.9pp |
기대 핵심점이 답변에 포함된 비율 (%) · Query Rewrite 목표인 어휘불일치형이 +33.3pp
기대 answerMode(RAG / GENERAL / FIXED / CLARIFY)와 실제 일치 비율 (%)
| ID | 유형 | 질문 | 전→후 |
|---|---|---|---|
| Q016 | 어휘불일치 | 소독 기준이 뭐야? | 67% → 100% |
| Q017 | 어휘불일치 | 놀이터 청소 주기는? | 33% → 67% |
| Q018 | 어휘불일치 | 안전교육 받아야 해? | 67% → 100% |
| Q037 | 모드 | 위험 구역 표시 방법은? | GENERAL → RAG |
| Q013 | 수치규격 | 놀이시설 틈새 기준이 뭐야? | 67% → 100% |
STRICT_MODE(근거 없으면 LLM 차단)는 아직 미적용입니다. 현재는 CLARIFY 되묻기 · GENERAL 폴백 · 면책 문구로 단정을 제한합니다. 원본: eval/results/baseline-*.json, improved-*.json, comparison.json