RAG 파이프라인, 프롬프트 설계, API 엔드포인트, 운영 가이드
※ 벡터 검색과 메타데이터 필터가 동시에 처리됨 (Hybrid Search)
| 종류 | 설명 | 장점 | 단점 |
|---|---|---|---|
| Naive RAG | 단순 벡터 검색 → LLM | 구현 간단, 빠름 | 정확도 한계 |
| Advanced RAG | 쿼리 최적화 + 리랭킹 | 정확도 향상 | 복잡도 증가 |
| Hybrid RAG | 벡터 + 키워드 + 메타데이터 | 균형잡힌 검색 | 튜닝 필요 |
| Graph RAG | 지식그래프 + 벡터검색 | 관계 추론 가능 | 그래프 구축 비용 |
| Self-RAG | LLM이 검색 필요성 판단 | 불필요한 검색 감소 | LLM 호출 증가 |
| Corrective RAG | 검색 결과 품질 평가 후 보정 | 오답 감소 | 지연 시간 증가 |
| Agentic RAG | 에이전트가 다단계 검색 | 복잡한 질문 처리 | 비용/시간 증가 |
✅ 현재 KION RAG: Advanced RAG + Hybrid 방식 채택
| Phase | 단계 | 주요 작업 | 상태 |
|---|---|---|---|
| Phase 1 | 데이터 정제 · 스키마 확정 | MS-SQL 연동, 스키마 정규화, 용어 표준화 | ⏳ 미팅 후 |
| Phase 2 | RAG PoC | 임베딩 모델, 벡터DB, API 서버, 평가 | ✅ 완료 |
| Phase 3 | 규칙 · 필터 강화 | 쿼리 파서, 메타필터, 비즈니스 룰 | ✅ 완료 |
| Phase 4 | UI/UX 및 권한 | 챗봇 위젯, 필터 UI, 권한 관리 | 🔄 30% |
| Phase 5 | 운영 · 모니터링 | 로깅, 피드백, 동기화 스케줄러 | ⏳ 예정 |
복합 쿼리 예시
"6 inch Si 웨이퍼, 게이트 산화막 5nm, RTA 필요, 400℃ 이상"
| 추출 항목 | 파싱 결과 | 처리 |
|---|---|---|
| 웨이퍼 사이즈 | 6 inch |
메타필터 |
| 재료 | Si |
메타필터 |
| 공정 | RTA (열처리) |
벡터검색 + 메타필터 |
| 온도 | temp_min: 400 |
메타필터 |
파일: prompts/recommendation_stream.txt
파일: prompts/recommendation_json.txt
| 룰 | 설명 | 구현 위치 | 상태 |
|---|---|---|---|
| 메타 필터링 | 웨이퍼 사이즈, 온도, 재료 조건으로 필터 | rag.py / filters.py |
✅ 구현됨 |
| 기관별 우선순위 | 사용자 소속 기관 장비 우선 표시 | filters.py |
✅ 구현됨 |
| 예약 가능 여부 | 예약 불가 장비 필터링 또는 표시 | filters.py |
⏳ 예정 |
| Maintenance 제외 | 유지보수 중인 장비 검색 결과에서 제외 | policy.py |
✅ 구현됨 |
| 권한별 장비 제한 | 사용자 권한에 따라 표시 장비 제한 | main.py |
⚠️ 문의필요 |
비즈니스 룰을 JSON 기반으로 관리하며, 검색 결과에 동적으로 적용됩니다.
institution_priority.json
policy_settings.json
process_equipment_mapping.json
| 단계 | 적용 내용 | 목적 | 구현 파일 |
|---|---|---|---|
| STEP 2 | 공정↔장비 매핑 | 검색 정확도 향상 (키워드→카테고리) | query_parser.py |
| STEP 4 | 정책 필터 | 비즈니스 룰 적용 (점검중 제외 등) | filters.py |
| STEP 5 | 기관 우선순위 | 기관별 장비 우선 표시 | filters.py |
| STEP 7 | 결과 제한 | max_recommendations 적용 | filters.py |
| 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 예정
⏳ Phase 5 예정
✅ 기본 구현됨
사용자 피드백을 기반으로 검색 정확도를 지속적으로 개선하는 시스템입니다.
※ LLM은 학습 안함 (RAG)
| Phase | 항목 | 설명 | 우선순위 |
|---|---|---|---|
| Phase 1 | 피드백 수집 API + DB | feedback_logs 테이블, POST /feedback API | 높음 |
| Phase 1 | 피드백 대시보드 | 오답 케이스, 긍정 비율 차트 | 높음 |
| Phase 2 | 룰 제안 시스템 | 오답 패턴 분석 → 관리자 제안 | 중간 |
| Phase 3 | 프롬프트 A/B 테스트 | 버전 관리 + 통계 검정 | 중간 |
| Phase 4 | 임베딩 모델 개선 | 오답 500건+ 누적 및 ROI 검토 후 (향후) | 향후 |