구현 가이드

RAG 파이프라인, 프롬프트 설계, API 엔드포인트, 운영 가이드

데이터 처리 흐름

1 💬 입력 → 2 🔍 파싱 → 3 📚 RAG + 🎯 메타필터 (동시) → 4 ⚖️ 리랭킹 → 5 🤖 LLM

※ 벡터 검색과 메타데이터 필터가 동시에 처리됨 (Hybrid Search)

RAG 아키텍처 종류

종류 설명 장점 단점
Naive RAG 단순 벡터 검색 → LLM 구현 간단, 빠름 정확도 한계
Advanced RAG 쿼리 최적화 + 리랭킹 정확도 향상 복잡도 증가
Hybrid RAG 벡터 + 키워드 + 메타데이터 균형잡힌 검색 튜닝 필요
Graph RAG 지식그래프 + 벡터검색 관계 추론 가능 그래프 구축 비용
Self-RAG LLM이 검색 필요성 판단 불필요한 검색 감소 LLM 호출 증가
Corrective RAG 검색 결과 품질 평가 후 보정 오답 감소 지연 시간 증가
Agentic RAG 에이전트가 다단계 검색 복잡한 질문 처리 비용/시간 증가

✅ 현재 KION RAG: Advanced RAG + Hybrid 방식 채택

현재 방식 선택 이유

🎯 도메인 특성

  • 정확한 스펙 매칭 중요6인치 → 6인치만
  • 구조화된 장비 DB메타필터 효과적
  • 비즈니스 룰 필수기관 우선순위 등

⚡ PoC 단계 고려

  • 빠른 검증 목표복잡한 구조 지양
  • sLLM 사용 (Ollama)다중 호출 부담
  • Graph/Agentic오버엔지니어링

🚀 향후 확장 계획

  • + Corrective RAG품질 검증 추가
  • + Graph RAG장비 간 관계 추론
  • + Agentic RAG다단계 질문 처리

구현 단계별 가이드

Phase 단계 주요 작업 상태
Phase 1 데이터 정제 · 스키마 확정 MS-SQL 연동, 스키마 정규화, 용어 표준화 ⏳ 미팅 후
Phase 2 RAG PoC 임베딩 모델, 벡터DB, API 서버, 평가 ✅ 완료
Phase 3 규칙 · 필터 강화 쿼리 파서, 메타필터, 비즈니스 룰 ✅ 완료
Phase 4 UI/UX 및 권한 챗봇 위젯, 필터 UI, 권한 관리 🔄 30%
Phase 5 운영 · 모니터링 로깅, 피드백, 동기화 스케줄러 ⏳ 예정

sLLM 프롬프트 설계

🎭 시스템 프롬프트 구성

  • 역할 정의"반도체 장비 추천 전문가"
  • 언어 규칙한국어 필수, 기술용어만 영어
  • 추천 규칙제공된 리스트만 사용
  • 응답 포맷JSON / 자연어 선택

📋 추천 규칙

  • 생성 금지장비 리스트 내에서만 추천
  • 조건 불만족"적합한 장비 없음" 허용
  • 근거 설명스펙 기반 "왜 적합한지" 설명
  • Top N1~3개 장비 추천

입력 형태 정의

복합 쿼리 예시

"6 inch Si 웨이퍼, 게이트 산화막 5nm, RTA 필요, 400℃ 이상"

추출 항목 파싱 결과 처리
웨이퍼 사이즈 6 inch 메타필터
재료 Si 메타필터
공정 RTA (열처리) 벡터검색 + 메타필터
온도 temp_min: 400 메타필터

응답 포맷

💬 자연어 응답 (사용자용)

사용자님, GaN MOCVD 장비에 대해 추천드립니다.

1. [KION-009] MOCVD 시스템
이 장비는 GaN, AlGaN 에피 성장에 최적화...

따라서 [KION-009]를 추천드립니다.

파일: prompts/recommendation_stream.txt

📊 JSON 응답 (시스템 연동용)

{
  "recommendations": [
    {"equipment_id": "KION-009",
     "reason": "GaN 에피 성장 최적화"}
  ],
  "explanation": "종합 설명..."
}

파일: prompts/recommendation_json.txt

비즈니스 룰

룰 설명 구현 위치 상태
메타 필터링 웨이퍼 사이즈, 온도, 재료 조건으로 필터 rag.py / filters.py ✅ 구현됨
기관별 우선순위 사용자 소속 기관 장비 우선 표시 filters.py ✅ 구현됨
예약 가능 여부 예약 불가 장비 필터링 또는 표시 filters.py ⏳ 예정
Maintenance 제외 유지보수 중인 장비 검색 결과에서 제외 policy.py ✅ 구현됨
권한별 장비 제한 사용자 권한에 따라 표시 장비 제한 main.py ⚠️ 문의필요

Policy DB (정책 데이터베이스)

비즈니스 룰을 JSON 기반으로 관리하며, 검색 결과에 동적으로 적용됩니다.

🏢 기관 우선순위

institution_priority.json

  • 나노종합기술원priority: 10
  • 한국나노기술원priority: 20
  • KISTpriority: 30
  • 사용자 소속기관priority: 0 (최우선)

⚙️ 정책 설정

policy_settings.json

  • maintenance_excludetrue (점검중 제외)
  • external_visibletrue (외부기관 표시)
  • max_recommendations5 (최대 추천수)
  • min_rag_score0.3 (최소 유사도)

🔄 공정↔장비 매핑

process_equipment_mapping.json

  • "에피 성장"→ MOCVD, MBE
  • "박막 증착"→ Sputter, PECVD, ALD
  • "열처리"→ RTA, Furnace
  • "식각"→ ICP-RIE, RIE

Policy DB 적용 시점

단계 적용 내용 목적 구현 파일
STEP 2 공정↔장비 매핑 검색 정확도 향상 (키워드→카테고리) query_parser.py
STEP 4 정책 필터 비즈니스 룰 적용 (점검중 제외 등) filters.py
STEP 5 기관 우선순위 기관별 장비 우선 표시 filters.py
STEP 7 결과 제한 max_recommendations 적용 filters.py

상세 순서도 보기 →

API 엔드포인트

Method Endpoint 설명 응답
POST /chat 장비 추천 요청 JSON
POST /chat/stream 스트리밍 추천 SSE
GET /equipment/count 장비 수 조회 JSON
POST /equipment/reload 데이터 리로드 JSON
GET /health 헬스 체크 JSON
POST /policy/reload Policy DB 리로드 JSON
GET /policy/status Policy DB 상태 조회 JSON
GET /policy/test-mapping 공정↔장비 매핑 테스트 JSON

운영 / 모니터링

📊 로그 수집

  • 질의 로그사용자 쿼리 기록
  • 추천 로그추천된 장비 목록
  • 선택 로그실제 선택한 장비
  • 응답 시간성능 메트릭

⏳ Phase 5 예정

🔄 피드백 루프

  • 👍 맞음 / 👎 안맞음사용자 피드백
  • 추천 정확도 분석Recall 측정
  • 프롬프트 개선피드백 기반
  • 임베딩/룰 튜닝지속 개선

⏳ Phase 5 예정

🔧 시스템 모니터링

  • 헬스 체크/health API
  • LLM 상태Ollama 연결
  • 벡터DB 상태Qdrant
  • 에러 알림Slack/Email (예정)

✅ 기본 구현됨

Improvement 알고리즘 (피드백 기반 개선)

사용자 피드백을 기반으로 검색 정확도를 지속적으로 개선하는 시스템입니다.

👍👎 피드백 수집 → 📊 오답 분석 → 🔧 개선 적용
임베딩 튜닝 룰 개선 프롬프트 A/B

🧠 임베딩 모델 개선 (향후)

  • Hard Negative Mining오답에서 학습 데이터 추출
  • Contrastive Learning(query, positive, negative)
  • 트리거 조건오답 500건+ 누적 후
  • 현실적 대안더 나은 모델로 교체

※ LLM은 학습 안함 (RAG)

📋 룰 개선 알고리즘

  • 오답 패턴 분석쿼리 키워드 vs 정답 카테고리
  • 누락 매핑 발견"박막 코팅" → Sputter
  • 신뢰도 계산70% 이상 → 자동 제안
  • 관리자 승인제안 → 검토 → 적용

🧪 프롬프트 A/B 테스트

  • 버전 관리Control vs Test 프롬프트
  • 트래픽 분배session_id 기반 50:50
  • 통계 검정Chi-squared (p < 0.05)
  • 자동 롤아웃우승 버전 자동 적용

Improvement 구현 우선순위

Phase 항목 설명 우선순위
Phase 1 피드백 수집 API + DB feedback_logs 테이블, POST /feedback API 높음
Phase 1 피드백 대시보드 오답 케이스, 긍정 비율 차트 높음
Phase 2 룰 제안 시스템 오답 패턴 분석 → 관리자 제안 중간
Phase 3 프롬프트 A/B 테스트 버전 관리 + 통계 검정 중간
Phase 4 임베딩 모델 개선 오답 500건+ 누적 및 ROI 검토 후 (향후) 향후

상세 설계 문서 (docs/IMPROVEMENT_DESIGN.md) →