시스템 아키텍처

KION RAG 장비 추천 시스템의 전체 구조 및 배포 옵션

전체 아키텍처

Frontend
Web UI
예약
Admin
챗봇 UI, KION 예약 연동
→
API
FastAPI
SSE
Session
REST + 스트리밍 + 세션관리
→
Core Pipeline (Hybrid RAG + Intent)
Parser
Intent
Hybrid Search
Rerank
LLM
쿼리파싱 → 의도파악 → 하이브리드검색 → 재정렬 → 응답생성
• 의도파악 = 부정문/복합질의 LLM 분석
• 하이브리드 = BM25 + 벡터 검색 결합
• 리랭킹 = 필터 점수 + 유사도 가중합
AI Models
sLLM
Embedding
VectorDB
Qwen 2.5 32B | BGE-M3 | Qdrant
Config
Filter
Prompt
• 웨이퍼 크기 • 재료 • 온도
• 카테고리 • 기관
• 기관 우선순위 • 접근 권한
• 장비 상태 • 예약 가능
Monitoring
📊 Logs
👍👎 Feedback
🗄️ PostgreSQL
질의/추천 로그, 피드백 → Improvement
Data Pipeline
PoC
JSON
→
Embedding (E5)
→
ChromaDB
Prod
MS-SQL
→
Sync
→
ETL
→
Embedding
→
VectorDB
PoC: 샘플 JSON 100개 | Prod: KION DB 연동 예정
Sync 옵션
관리자 수동
Cron 배치 (일간)
데이터 동기화 방식
Policy DB
기관 우선순위
정책 설정
공정↔장비 매핑
비즈니스 룰 JSON 관리
Improvement
🧠 임베딩 튜닝
📋 룰 개선
🧪 프롬프트 A/B
• 임베딩: 피드백으로 모델 미세조정
• 룰: 필터 규칙/가중치 조정
• 프롬프트: 응답 품질 A/B 테스트
Infra
🔐 인증
💾 캐싱
⚠️ 폴백
• KION SSO 연동
• 응답 캐시 (Redis)
• 에러 시 기본 응답

구현된 핵심 기능 (PoC)

🔍

하이브리드 검색

BM25 키워드 검색 + 벡터 시멘틱 검색을 결합하여 검색 정확도 향상

BM25 기술 용어 정확 매칭
Vector 의미 기반 유사도
가중치 조절: vector_weight + bm25_weight = 1.0
app/hybrid_search.py
🧠

LLM 의도 파악

복잡한 질의를 LLM으로 분석하여 부정문/복합 조건 처리

● 부정문: "800도 이하로만"
● 복합: "MOCVD랑 PECVD 둘 다"
● 추상: "어떤 장비가 좋을까"
quick_intent_check()로 LLM 호출 최소화
app/intent_parser.py
🔗

연계 질의 (세션)

대화 이력을 유지하여 후속 질문에서 이전 조건 활용

1. "6인치 MOCVD 장비" → session_id 발급
2. "8인치로 바꿔줘" → 조건만 변경
3. "비슷한 장비 더" → 카테고리 유지
세션 TTL: 1시간, LRU 캐시 (1000개)
app/conversation.py

처리 흐름 (상세)

사용자 질의
+ session_id
→
쿼리 파싱
웨이퍼/온도/재료
→
의도 파악
부정/복합/연계
→
하이브리드 검색
BM25 + Vector
→
필터 + 리랭킹
Hard/Soft 조건
→
LLM 응답
Qwen 2.5
→
세션 저장
조건/추천 기록

2가지 아키텍처 옵션 (미팅 시 결정 필요)

Architecture A: 온프레미스 (로컬 sLLM)

데이터가 외부로 나가지 않음 | 완전한 데이터 보안 | GPU 서버 필요

Web UI
사용자
→
FastAPI
API 서버
→
RAG Pipeline
Parser
Filter
RAG
Rerank
→
Ollama
Qwen 2.5
로컬 sLLM
Qdrant
BGE-M3
(로컬 임베딩)
KION MS-SQL
(연동 예정)
📊 Logs
질의/추천/피드백
sLLM
Qwen 2.5 32B
대안: Llama 3 8B
임베딩
BGE-M3
대안: E5-large
벡터DB
Qdrant
대안: Milvus
인프라
GPU 서버
RTX 4090 / A100
장점
  • 데이터가 외부로 나가지 않음
  • 월 운영비 예측 가능 (~50만원)
  • 모델 커스터마이징 가능
단점
  • GPU 서버 초기 투자 (~1,500만원)
  • 서버 운영 인력 필요
  • 모델 업데이트 수동 관리

Architecture B: 클라우드 호스팅

AWS 클라우드에서 운영 | 두 가지 방식 선택 가능

B-1: EC2 GPU 인스턴스 (직접 설치)

AWS에서 GPU 서버를 빌려서 sLLM을 직접 설치/운영

Web UI
→
FastAPI
EC2
→
Ollama + Qwen 2.5
EC2 GPU (g5.xlarge)
Qdrant (EC2)
BGE-M3 (로컬)
KION MS-SQL
📊 Logs
장점: 모델 자유 선택, 온프레미스와 동일 구조, 시간당 과금
단점: 서버 관리 필요, GPU 인스턴스 비용 (~$1/h)

B-2: AWS Bedrock (관리형 API)

AWS가 운영하는 LLM을 API로 호출 (설치 불필요)

Web UI
→
FastAPI
Lambda
→
AWS Bedrock
Llama 3 API
Qdrant Cloud
Bedrock Titan (임베딩)
KION MS-SQL
📊 Logs
장점: 설치/관리 불필요, 자동 스케일링, 빠른 도입
단점: 토큰당 과금, 모델 선택 제한, 데이터 외부 전송

🔍 B-1 vs B-2 비교

구분 B-1: EC2 GPU B-2: Bedrock API
LLM 설치 직접 설치 (Ollama) 불필요 (API 호출)
비용 구조 시간당 (~$1/h) 토큰당 과금
모델 선택 자유 (Qwen, Llama 등) Bedrock 지원 모델만
추천 상황 사용량 많음, 모델 커스텀 필요 빠른 도입, 운영 부담 최소화

용어 설명

💡 아키텍처 다이어그램에 나오는 용어들을 설명합니다

sLLM (Small LLM)

GPT-4, Claude 같은 초대형 모델 대신, 직접 운영 가능한 작은 언어모델입니다.
예: Qwen 2.5, Llama 3 (7B~32B 파라미터)
✓ 데이터가 외부로 나가지 않음

EC2 GPU 인스턴스

AWS에서 GPU 서버를 빌려서 사용하는 방식입니다.
온프레미스처럼 Ollama 설치 후 sLLM 직접 실행.
= 클라우드에서 직접 설치 방식

AWS Bedrock

AWS가 제공하는 AI 모델 API 서비스입니다.
설치 없이 Llama 3, Claude 등을 API로 호출.
= 관리형 서비스 (설치 불필요)

Qdrant vs Qdrant Cloud

Qdrant: 직접 서버에 설치해서 운영
Qdrant Cloud: Qdrant 회사가 호스팅해주는 서비스
(매니지드 = 설치/운영을 대신 해줌)

임베딩 모델 (BGE-M3 vs Bedrock Titan)

텍스트를 벡터(숫자)로 변환하는 모델입니다.
BGE-M3: 로컬에서 직접 실행
Bedrock Titan: AWS API로 호출

🔑 온프레미스 vs 클라우드 핵심 차이

구분 온프레미스 (A) 클라우드 (B)
LLM 실행 위치 내 GPU 서버 AWS 서버 (API 호출)
초기 비용 GPU 서버 구매 (~1,500만원) 없음
운영 비용 전기/관리비 (~50만원/월) 사용량 비례 (API 호출당 과금)
데이터 보안 ✓ 외부 전송 없음 AWS로 데이터 전송됨

네트워크 구성 및 연동 방식

온프레미스 네트워크

사용자 (외부 또는 사내)
↓ VPN / 사내망
사내 네트워크 (10.x.x.x)
nginx
:443
→
FastAPI
:8000
→
Ollama
Qwen 2.5
핵심: 모든 서비스가 사내 네트워크 안에서 동작 → 데이터가 외부로 나가지 않음

클라우드 네트워크 (EC2 GPU)

사용자 (어디서든)
↓ HTTPS (공인 IP/도메인)
AWS VPC (프라이빗)
ALB
(LB)
→
EC2
FastAPI
→
Ollama
Qwen 2.5
핵심: 공인 IP/도메인으로 어디서든 접근 가능 → EC2 GPU에서 Ollama 직접 실행

권장 기술 스택 조합

구분 LLM 임베딩 벡터DB 초기 비용 월 운영비
A: 온프레미스 Ollama + Qwen 2.5 BGE-M3 (로컬) Qdrant 구축비용
~1,000-1,500만원
전기/관리
~10-30만원
B-1: EC2 GPU Ollama + Qwen 2.5 BGE-M3 (로컬) Qdrant (EC2) 없음 g5.xlarge ~$1/시간
(업무시간만 ~20-30만원)
B-2: Bedrock API AWS Bedrock Llama 3 Bedrock Titan Qdrant Cloud 없음 사용량 비례
~5-20만원

※ 비용은 사용량, 인스턴스 타입, 리전에 따라 달라질 수 있음. 정확한 비용은 AWS Calculator 참고.

운영·모니터링

📊 로그 수집

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

🔄 피드백 루프

👍
👎
추천 맞음 / 안맞음 버튼
피드백 기반 개선:
• 임베딩 모델 튜닝
• 필터 규칙 조정
• 프롬프트 개선

상세 문서 안내

기술스택
임베딩 모델, 벡터DB, sLLM 비교
데이터설계
스키마, 동기화, RAG 지식베이스
구현가이드
API, 프롬프트, 비즈니스 룰