티스토리 뷰

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 발급

  1. Google AI Studio 접속
  2. API Key 생성
  3. 환경 변수 등록
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
«   2026/03   »
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
글 보관함