티스토리 뷰
2026.03.24 - [분류 전체보기] - RAG 시스템 이용 상담원 응대 구축 가이드 1
2026.03.24 - [분류 전체보기] - 상담원 RAG 시스템 구축 종합 가이드 2
📘 상담원 RAG 시스템 구축 가이드 (LLM: Google Gemin0i 사용)
📌 개요
본 문서는 상담원 지원용 RAG(Retrieval-Augmented Generation) 시스템을
Kubernetes 기반으로 구축하며, **LLM은 Google Gemini (외부 API)**를 사용하는 구조를 설명합니다.
🎯 목표
- 상담원이 고객 문의에 빠르게 대응
- 내부 문서 기반 정확한 답변 제공
- AI가 답변 초안을 생성 (출처 포함)
- 상담 품질 및 처리 속도 향상
🏗️ 전체 아키텍처
[상담원 UI]
↓
[API Backend]
↓
[RAG Orchestrator]
├─ Hybrid Search (Vector + Keyword)
├─ Reranker
├─ Prompt 생성
↓
[Gemini API]
↓
[답변 + 근거 + 신뢰도]
☁️ Google Gemini 연동 구조
[RAG Orchestrator]
│
▼
[LLM Gateway (옵션)]
│
▼
[Google Gemini API]
│
▼
[응답 반환]
🔐 Gemini API 준비
1. API Key 발급
- Google AI Studio 접속
- API Key 생성
- 환경 변수 등록
export GEMINI_API_KEY="your-api-key"
⚙️ Backend (FastAPI 기준)
1. 패키지 설치
pip install google-generativeai
2. Gemini 호출 코드
import google.generativeai as genai
import os
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
model = genai.GenerativeModel("gemini-1.5-pro")
def generate_answer(question, context_docs):
context = "\n\n".join(context_docs)
prompt = f"""
당신은 상담원 보조 AI입니다.
[고객 질문]
{question}
[참고 문서]
{context}
규칙:
- 반드시 문서 기반으로 답변
- 근거 없으면 "확인 필요"로 답변
- 친절하고 간결하게 작성
- 출처 포함
답변:
"""
response = model.generate_content(prompt)
return response.text
🔍 RAG 구성 요소
1. Retriever
- OpenSearch or pgvector
- BM25 + Vector Hybrid 검색
2. Reranker
- bge-reranker
- Top-K 재정렬
3. Prompt Builder
- 질문 + 문서 결합
- 정책 적용
- hallucination 방지
📦 Kubernetes 배포 구조
namespace: rag-app
├─ web-ui
├─ api-backend
├─ rag-orchestrator
├─ reranker
├─ embedding-worker
namespace: rag-data
├─ postgresql
├─ opensearch
├─ redis
namespace: ingress
├─ ingress-controller
🚀 Deployment 예시
api-backend
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-backend
spec:
replicas: 3
template:
spec:
containers:
- name: api
image: rag-api:latest
env:
- name: GEMINI_API_KEY
valueFrom:
secretKeyRef:
name: gemini-secret
key: api-key
🔐 Secret 생성
kubectl create secret generic gemini-secret \
--from-literal=api-key=YOUR_API_KEY
⚡ HPA 설정
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: api-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: api-backend
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
📊 서버 스펙 (Gemini 외부 사용 기준)
✅ App Node
- 16 vCPU / 64GB RAM
- 4~6대
✅ Data Node
- 16~32 vCPU / 128GB RAM
- OpenSearch 3노드
✅ DB
- PostgreSQL HA 2~3대
✅ Redis
- 3노드 구성
❌ GPU 필요 없음 (Gemini 사용)
📂 문서 파이프라인
문서 → 파싱 → 정제 → Chunk → Embedding → Index 저장
🔄 요청 흐름
1. 상담원 질문
2. API 수신
3. Retriever 검색
4. Reranker 정렬
5. Prompt 생성
6. Gemini 호출
7. 답변 생성
8. 상담원 전달
🛡️ 보안 설계
- API Key → Kubernetes Secret
- NetworkPolicy 적용
- SSO 인증
- 문서 권한 분리
- 개인정보 마스킹
📊 모니터링
- Prometheus
- Grafana
- Loki
주요 지표
- 응답 시간
- 검색 정확도
- Gemini API latency
- 실패율
⚠️ 주의사항
1. 비용 관리
- Gemini 호출 비용 발생
- 캐싱 필수 (Redis)
2. Rate Limit
- API 호출 제한 대비
- Retry / Backoff 적용
3. Prompt 최적화
- 문서 길이 제한
- Token 절약
🔥 확장 기능
- 상담 자동 요약
- 고객 감정 분석
- 추천 답변 자동 생성
- CRM 자동 입력
- ChatOps 연동
🎯 최종 요약
LLM → Gemini (외부 API)
검색 → OpenSearch / pgvector
Backend → FastAPI / Spring
Infra → Kubernetes
✔ GPU 없이 빠르게 구축 가능
✔ 비용 대비 효율 좋음
✔ 확장성 우수
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- llama
- 코로나19
- embedding
- 5.4.0.1072
- VectorStore
- 버쳐박스
- RangChain
- Weaviate
- Chroma
- CVE 취약점 점검
- Qdrant
- Ai
- KoSimCSE
- K8s
- chunking
- 임베딩
- 테라폼
- faiss
- RAG
- n8n
- 오라클
- MSA
- AWS
- llm
- Oracle
- open ai
- poetry
- MCP
- kiwipiepy
- 쿠버네티스
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
글 보관함