홈페이지 챗봇 - RAG 구체적 실행 계획
문서 성격: 기획서(
mento_chatbot_v1_0.md) 기반 RAG 구현 기술 설계서 목적: 데이터 준비부터 운영까지 구체적인 실행 단계와 결정 포인트 제시 최종 갱신: 2026-07-08
0. 현재 상황 진단 (중요)
| 항목 | 상태 | 액션 |
|---|---|---|
| 데이터 | ❌ 없음 (전화 상담만 존재) | 즉시 상담 로그 수집 시작 |
| 지식베이스 | ❌ 없음 | 로그 쌓인 후 표준답변 정리 |
| RAG 개발 | ⏸️ 보류 | 데이터 준비 완료 후 착수 |
| 우선순위 | 경로당 > POS > ERP > 기타 | 카톡 로그 분석 반영 |
⚠️ 원칙: "데이터 없이 AI를 붙이면 참조할 근거가 없어 오답이 나온다." (기획서 2항)
1. 단계별 실행 계획 (기획서 8항 연동)
Phase 0: 데이터 수집 (개발 0) — 지금 당장
📋 전화 상담 로그 엑셀 기록 (응대자용) ├── 컬럼: 날짜 / 제품군 / 유형 / 질문요지 / 답변내용 / 처리결과 ├── 기간: 2~3주간 연속 기록 └── 목표: 반복 질문 Top 20 도출
text
제품군 + 유형 2축 분류 체계 (카톡 로그 분석 반영):
| 제품군 (축1) | 유형 (축2) | 자동응대 가능성 |
|---|---|---|
| 스마트경로당 | 계정·비번 | ✅ 즉시 가능 |
| 스마트경로당 | 사용법·설정 | ✅ 즉시 가능 |
| 스마트경로당 | 정산·금액불일치 | ❌ 전화전환 |
| POS | 계정·비번 | ✅ 즉시 가능 |
| POS | 사용법·설정 | ✅ 즉시 가능 |
| POS | 개발이슈 | ❌ 전화전환 |
| ERP | 계정·비번 | ✅ 즉시 가능 |
| 건설전자카드 | 불량·AS | ⚠️ 일부 가능 |
Phase 1: 표준답변 정리 (개발 0, 2~3주 후)
입력: 엑셀 로그에서 추출한 반복 질문 Top 20
출력: 지식베이스에 적재할 (질문, 표준답변, 제품군, 유형) 세트
표준답변 템플릿 예시:
제품군: 스마트경로당 유형: 계정·비밀번호 질문: "마을살림e 비밀번호를 잊어버렸어요" 표준답변:
마을살림e 로그인 화면 하단 '비밀번호 찾기' 클릭
가입 시 등록한 휴대폰 번호 입력
SMS로 받은 임시 비밀번호로 로그인 후 변경
문제 지속 시 고객센터(000-0000)로 연락 출처: [응대자 인터뷰 / 매뉴얼 3장]
text
Phase 2: 데이터 구조 확정 (기획서 6항 상세화)
-- 1. 원본 상담 로그 (모든 채널 통합)
CREATE TABLE consult_logs (
id SERIAL PRIMARY KEY,
channel VARCHAR(20) NOT NULL, -- 전화/카톡/챗봇/메일
product VARCHAR(50), -- 스마트경로당/POS/ERP/건설전자카드
category VARCHAR(50), -- 계정·비번/사용법·설정/정산·금액/...
question TEXT NOT NULL,
answer TEXT,
handler VARCHAR(50),
resolved BOOLEAN DEFAULT false,
created_at TIMESTAMP DEFAULT NOW()
);
-- 2. 검증된 지식베이스 (챗봇이 실제 참조)
CREATE TABLE knowledge_base (
id SERIAL PRIMARY KEY,
product VARCHAR(50) NOT NULL, -- 제품군 (1차 필터)
category VARCHAR(50) NOT NULL, -- 유형 (2차 필터)
question TEXT NOT NULL, -- 표준 질문
answer TEXT NOT NULL, -- 표준 답변 (단계별 상세)
keywords TEXT[], -- 검색 최적화용 키워드
source VARCHAR(100), -- 출처 (매뉴얼/응대자/...
status VARCHAR(20) DEFAULT 'active',
version INT DEFAULT 1,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- 3. 문서 원본 (매뉴얼 PDF 등)
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
title VARCHAR(200) NOT NULL,
content TEXT NOT NULL, -- 청크 단위로 분할된 텍스트
product VARCHAR(50),
category VARCHAR(50),
file_name VARCHAR(100),
chunk_index INT, -- 청크 순번
created_at TIMESTAMP DEFAULT NOW()
);
Phase 3: RAG 시스템 구축 (기획서 5항 실행)
3-1. 기술 스택 결정
구성요소 옵션 추천 (2026년 기준)
LLM GPT-4o-mini / Claude 3.5 Sonnet / Gemini 1.5 Flash GPT-4o-mini (비용/성능 균형)
임베딩 text-embedding-3-small / Cohere / BGE text-embedding-3-small (OpenAI)
벡터DB Pinecone / pgvector / Milvus / Chroma pgvector (PostgreSQL 확장, 별도 DB 불필요)
STT Web Speech API / Google STT / Clova Web Speech API (무료, PoC) → 상용 검토
3-2. RAG 파이프라인 아키텍처
text
[오프라인] 데이터 준비
┌─────────────────────────────────────────────────────────────┐
│ knowledge_base (표준 Q&A) → 청킹(1문서=1청크) │
│ ↓ │
│ 임베딩 (text-embedding-3-small) │
│ ↓ │
│ pgvector에 저장 (질문 벡터 + 메타데이터: 제품군, 유형) │
└─────────────────────────────────────────────────────────────┘
[온라인] 질의응답
┌─────────────────────────────────────────────────────────────┐
│ 사용자 질문: "마을살림e 비번을 잊었어요" │
│ ↓ │
│ ① 제품군 분류 (규칙 기반 or LLM) → "스마트경로당" │
│ ↓ │
│ ② 질문 임베딩 │
│ ↓ │
│ ③ pgvector 검색 (제품군 필터 + 유사도 상위 3개) │
│ ↓ │
│ ④ 컨텍스트 구성: "다음 문서를 참고해 답변하세요: [청크]" │
│ ↓ │
│ ⑤ LLM(GPT-4o-mini) 답변 생성 │
│ ↓ │
│ ⑥ 답변 신뢰도 확인 (유사도 0.7 미만 → 전화전환) │
└─────────────────────────────────────────────────────────────┘
3-3. 프롬프트 템플릿 (예시)
text
[시스템 프롬프트]
당신은 진승정보기술의 고객센터 챗봇입니다.
제공된 지식베이스 문서만을 근거로 답변하세요.
모르는 질문은 "죄송합니다. 정확한 답변을 드리기 어려워 고객센터(000-0000)로 연결해 드리겠습니다."라고 안내하세요.
답변은 실제로 따라 할 수 있도록 구체적인 단계로 작성하세요.
[사용자 질문]
{{user_question}}
[참고 문서]
{{retrieved_chunks}}
[답변 규칙]
1. 참고 문서에 없는 내용은 절대 추측하지 마세요.
2. 단계별로 번호를 붙여 설명하세요.
3. 마지막에 "더 궁금하신 점은 고객센터로 연락 주세요"를 추가하세요.
Phase 4: UI/UX 구현 (홈페이지 연동)
text
[홈페이지 (React/Vue)] [챗봇 백엔드 (별도)]
┌─────────────────────┐ ┌─────────────────────────┐
│ 우측 하단 플로팅 │ API │ /api/chat │
│ 챗봇 아이콘 │ ──────→ │ - 질문 수신 │
│ ↓ │ │ - 제품군 분류 │
│ 채팅창 팝업 │ ←────── │ - RAG 검색 │
│ (PC: 360x500) │ SSE │ - 답변 생성 (stream) │
│ (모바일: 전체화면) │ │ - 전화전환 여부 판단 │
│ ↓ │ │ │
│ 텍스트 입력 / │ │ /api/feedback │
│ 음성 입력(STT) │ │ - 답변 평가 저장 │
└─────────────────────┘ └─────────────────────────┘
Phase 5: STT 음성 입력 (기획서 4항)
단계 접근법 비용 비고
PoC Web Speech API 무료 크롬/안드로이드 OK, iOS 불안정
운영 Google Cloud Speech-to-Text 유료 (분당 $0.006) iOS 포함 안정적
대안 Naver Clova Speech 유료 국내 환경 최적화
추천: PoC는 Web Speech API로 무료 구현 → 고객 iOS 비중 확인 후 상용 전환 검토
2. 핵심 결정 포인트 (Open Issues 해결)
번호 의사결정 항목 현황 추천안 결정 주체
1 지식베이스 우선순위 ❌ 미정 경로당 > POS > ERP > 건설전자카드 실무팀
2 LLM API ❌ 미정 GPT-4o-mini (비용 효율) 개발팀
3 벡터DB ❌ 미정 pgvector (PostgreSQL 확장) 개발팀
4 STT 엔진 ❌ 미정 Web Speech API → 상용 검토 개발팀
5 표준답변 작성 ❌ 미정 상담사 인터뷰 + 매뉴얼 참조 실무팀
6 개발 스택 ❌ 미정 홈페이지 스택과 연동 개발팀
3. 즉시 실행 체크리스트 (오늘부터)
📞 전화 상담 로그 엑셀 양식 배포 (응대자용)
컬럼: 날짜 / 제품군 / 유형 / 질문요지 / 답변내용 / 처리결과
제품군: 스마트경로당 / POS / ERP / 건설전자카드 / 키오스크 / 기타
유형: 계정·비번 / 사용법·설정 / 정산·금액 / 불량·AS / 기기회수 / 개발이슈 / 영업·견적
📂 기존 매뉴얼·문서 현황 파악
POS 매뉴얼 (50p) → 문제 단위로 분할 필요
스마트경로당 매뉴얼 존재 여부 확인
ERP/건설전자카드 관련 문서 확인
👥 응대자 인터뷰
"제일 많이 받는 질문 Top 10" 수집
각 질문에 대한 표준 답변 스크립트 정리
📊 고객 iOS 비중 확인 → STT 엔진 결정
4. 성공 측정 지표 (기획서 9항)
지표 측정 방법 목표치
전화 문의 감소율 챗봇 도입 전/후 비교 30% 이상
자동응대 성공률 전체 질문 중 자동응답 비율 60% 이상
Top 10 응대율 반복 질문 Top 10 자동응답률 80% 이상
사용자 만족도 챗봇 세션 후 평가 (👍/👎) 70% 이상
지식베이스 성장 월간 표준 Q&A 추가 건수 10건 이상
5. 일정 계획 (예시)
text
Week 1-2: 📋 전화 상담 로그 수집 (응대자 교육 + 엑셀 기록)
Week 3-4: 📊 로그 분석 → 반복 질문 Top 20 도출
Week 5-6: ✍️ 표준답변 정리 + DB 구조 확정
Week 7-8: 🗄️ 지식베이스 적재 (표준 Q&A 20건)
Week 9-10: 🤖 RAG 개발 (임베딩 + 벡터DB + LLM 연동)
Week 11-12: 🎨 챗봇 UI 구현 + 홈페이지 연동
Week 13: 🧪 내부 테스트 + 피드백 반영
Week 14: 🚀 오픈 (Beta) → 모니터링 시작
6. 위험 요소 및 대비
위험 대비책
데이터 수집 누락 엑셀 기록을 습관화할 프로세스 구축 (매일 5분)
표준답변 품질 낮음 상담사 검수 프로세스 (2인 확인)
RAG 오답률 높음 유사도 임계값(threshold) 설정 → 낮으면 전화전환
LLM 비용 폭증 캐싱 도입 (동일 질문 재사용), GPT-4o-mini 사용
iOS STT 미동작 Web Speech API fallback → 텍스트 입력 유도
7. 프로세스 다이어그램 (전체 흐름)
text
┌─────────────────────────────────────────────────────────────────────────────┐
│ [데이터 준비 단계] │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ Phase 0 │───▶│ Phase 1 │───▶│ Phase 2 │───▶│ Phase 3 │ │
│ │ 데이터 수집 │ │ 표준답변정리 │ │ DB 구조확정 │ │ RAG 구축 │ │
│ │ (엑셀 로그) │ │ (Top 20) │ │ (3개 테이블)│ │ (임베딩+) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └───────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ "응대자가 매일 "반복 질문 "PostgreSQL "GPT-4o │
│ 5분만 기록" Top 20 도출" pgvector" + RAG" │
└─────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ [UI/UX 구현 단계] │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Phase 4 │───▶│ Phase 5 │───▶│ 운영 │ │
│ │ 챗봇 UI │ │ STT 음성입력│ │ 모니터링 │ │
│ │ (홈페이지) │ │ (마이크) │ │ + 성장 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ "React/Vue + "Web Speech API "월 10건 Q&A │
│ 플로팅 위젯" or Google STT" 추가 목표" │
└─────────────────────────────────────────────────────────────────────────────┘
8. 담당자별 역할 정의
역할 담당 업무 비고
실무팀 (응대자) • 일일 상담 로그 엑셀 기록
• 반복 질문 Top 20 도출 협조
• 표준답변 검수 Phase 0-1 핵심
실무팀 (리더) • 로그 취합 및 분석
• 표준답변 초안 작성
• 매뉴얼 문서 취합 Phase 1-2 주관
개발팀 • DB 설계 및 구축
• RAG 파이프라인 개발
• 챗봇 UI/홈페이지 연동
• STT 연동 Phase 2-5 실행
경영지원팀 • 사업영역/제품군 확정
• iOS 사용자 비중 확인 의사결정 지원
9. 다음 단계 (Action Items)
우선순위 항목 담당 기한
1️⃣ 전화 상담 로그 엑셀 양식 배포 및 교육 실무팀 리더 2026-07-09
2️⃣ 매일 로그 기록 시작 (2~3주간) 응대자 전원 즉시
3️⃣ 기존 매뉴얼/문서 현황 조사 실무팀 리더 2026-07-12
4️⃣ 응대자 인터뷰 (Top 10 질문) 실무팀 리더 2026-07-15
5️⃣ iOS 사용자 비중 확인 경영지원팀 2026-07-15
댓글 0