← 홈으로 PROJECT DECK — 03 / 06
03 · AI · RAG · Eval 2026.02 — 운영 중

WMS AI 챗봇,
운영 업무를 대화로.

재고 부족 분석 · 잔여 주문 · 간편입고를 자연어로 처리하는 챗봇을 모듈 주 저자(커밋 81%)로 설계부터 운영 배포, 외부 노출까지 만들었습니다.

← → 방향키 · 휠 · 스와이프로 넘겨보세요

왜 만들었나

문제는 두 겹이었습니다 — 하나는 사람의 반복 노동, 하나는 LLM 자체의 성질.

PROBLEM 01

반복 질문이 전부 수작업

"오늘 나갈 주문 재고 충분해?", "결품 대기 얼마나 남았어?" — 운영 담당자가 여러 화면을 오가며 확인해야 답이 나오는 질문들이 매일 반복됐습니다.

PROBLEM 02

LLM은 코드를 안 바꿔도 품질이 변한다

프롬프트 한 줄, 모델 버전 하나, RAG 문서 하나가 도구 라우팅 오류 · 숫자 환각 · 정보 누락을 만듭니다. 챗봇을 만드는 순간 이 변동성이 운영 리스크가 됩니다.

판단기능이 아니라 신뢰가 진짜 문제다 — 챗봇과 함께, 품질 변동을 배포 전에 잡는 장치를 같이 만들어야 한다.

어떻게 동작하나

답변이 문서 요약이 아니라 실제 시스템 데이터에서 나오도록 — 업무는 도구 호출로, 지식은 하이브리드 검색으로.

사용자 질문 라우팅
슬림 프롬프트
업무 Tool 28종
재고 분석 · 상차 시뮬레이션 · 간편입고
+ RAG
Vector + RRF · Contextual Retrieval
가드레일 SSE 스트리밍
Ollama → Bedrock → GW
LLM 백엔드 3단 전환 — 교체가 설정 문제가 되도록
Tiered Memory
멀티턴 컨텍스트 오염 방지
Terraform + Helm
API Gateway 외부 노출까지 직접

다섯 가지 설계 결정

D1업무는 검색이 아니라 도구 호출로
Tool/ActionHandler 28종 — 답이 실제 시스템 데이터에서 나온다.
D2검색은 벡터 하나로 안 된다
Vector + 키워드를 RRF로 융합, PARENT_CHILD 청킹으로 문맥 보존.
D3품질 변동은 Eval로 잡는다
결정론 MUST + LLM-as-Judge 이중 판정 — 다음 장에서 자세히.
D4LLM 백엔드는 갈아끼울 수 있어야
게이트웨이 일원화로 비용 관측과 모델 교체를 설정 문제로.
D5노출까지가 기능이다
API Gateway(Terraform) + Helm 라우팅 + Swagger 범위 제한.

품질은 측정해서 안다

"잘 되는 것 같다"를 없애기 위해, 모든 변경이 통과해야 하는 이중 판정 Eval 시스템을 직접 만들었습니다.

결정론 MUST즉시 실패 게이트
  • 재고 질문에 출고 Tool 호출 → 도구 라우팅 위반
  • 도메인 밖 질문에 답변 → 가드레일 위반
  • 기계적으로 판정 — 흔들리지 않는 기준선
LLM-as-Judge품질 점수 판정
  • faithfulness — 숫자 환각 감지
  • completeness — 정보 누락 감지
  • relevancy — 대상 불일치 감지
Gate시나리오 27종 · Golden QA 669건을 기준선으로 — 프롬프트 · 모델 · RAG 문서가 바뀔 때마다 회귀를 배포 전에 포착합니다.

결과 — 전부 실측입니다

28
업무 Tool / ActionHandler
669
Golden QA 데이터셋
4.16/5
LLM 판정 평균 (운영 QA)
0.864
골든 답변 유사도 평균

사내 PoC로 시작해 운영(real) 배포와 외부 노출까지 완주 — 품질 기준선이 있어 모델과 프롬프트를 계속 바꾸면서도 회귀 없이 개선하고 있습니다.