※ 다음과 같은 흐름으로 동작합니다.
● 사용자 질문 ➡️ 의도 분석 (4가지 방법) ➡️ RAG 조회 ➡️ LLM 최종 답변 생성
↩️ (Fallback 시 다시 의도 분석 단계로 복귀)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ [1단계] 사용자 질문 입력
예시 질문:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ [2단계] 의도 분석 및 4가지 멀티턴 진행방법
『사용자 질문의도를 분석하여 4가지 방법으로 처리』
[방법①] 문서기반 벡터DB RAG
[방법②] MySQL 기반 RAG
[방법③] 문서+MySQL 혼합 RAG
[방법④] 모호한 질문(LLM 추가질문)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ [3단계] RAG 조회 및 결과
『RAG 조회 결과 판단 후 진행방법 결정』
▶️ 조회 성공
→ LLM 최종 답변 제공 (도식화 모듈 이용하여 시각화 가능)
▶️ 조회 실패 (Fallback)
→ LLM이 다시 의도 분석 단계로 돌아가 추가질문 수행
→ 사용자 답변 받아 재조회(RAG)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ [4단계] LLM 최종답변 예시
문서기반 답변 예시
『가입하신 암보험은 갑상선암도 기본 보장되며, 가입 후 90일 경과 후 진단 시 1천만원 보장됩니다.』
DB기반 답변 예시
『30세 여성 기준 가장 저렴한 암보험은 A보험사 ‘실속 암보험’이며, 월 12,000원입니다.』
문서+DB 혼합 답변 예시
『35세 남성 기준 갑상선암 기본보장 상품은 B보험사 ‘프리미엄 암보험’이며 월 23,000원입니다. 가입 후 90일 이후 진단 시 1,500만원 보장됩니다.』
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ [5단계] LLM Fallback 예시
(암보험 데이터에 없는 정보 요청 시 Fallback)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔖 단계별 요약 표
┌─────────┬─────────────────────────┬───────────┬───────────┐
│구분 │설명(암보험 질문 예시) │ 추천기술 │ 추천 이유 │
├─────────┼─────────────────────────┼───────────┼───────────┤
│문서 RAG │"갑상선암 보장?" │벡터DB │빠른 문서검색 │
│DB RAG │"가장 저렴한 암보험?" │MySQL+ORM │빠른 DB조회 │
│혼합 RAG │"갑상선암 보장 상품과 보험료?" │벡터DB+MySQL │통합검색 │
│모호한 질문 │"암보험 꼭 가입?" │GPT-4 등 LLM │자연스러운 추가질문│
│Fallback │"자동차보험 보장돼?"(자료없음) │GPT-4 등 LLM │재확인 가능 │
└─────────┴─────────────────────────┴───────────┴───────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 추천 기술스택 공부 가이드
벡터DB
① Pinecone(https://www.pinecone.io) 공식 튜토리얼
② FAISS(https://faiss.ai/) 공식 튜토리얼
MySQL + ORM
① Prisma(https://www.prisma.io/docs) 공식문서
② Sequelize(https://sequelize.org/) 튜토리얼
LLM (LangChain, GPT-4)
① LangChain(https://python.langchain.com) 공식 튜토리얼
② OpenAI API(https://platform.openai.com/docs/introduction) 공식문서
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 깔끔한 도식화 구조도 이미지 (텍스트기반)
[사용자 질문]
│
(의도 분석)
├─① 문서기반 벡터DB 조회─────┐
├─② MySQL 기반 조회───────┤
├─③ 문서+MySQL 혼합조회───-┤
└─④ LLM 추가질문───────────┤
│ │
│ 조회 성공 → LLM 최종답변
│ 조회 실패 → Fallback
▼ │
[RAG 조회]─────────────────┤
├─ 충분한 정보 → [LLM 최종답변]
└─ 정보 부족 → [LLM 추가질문(Fallback)] ──┐
│
[사용자 추가답변]───────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
이렇게 도식화하면 전체 멀티턴 구조를 이해하기 쉽고 명확하게 정리하여 활용하실 수 있습니다.
🔹 UI 기반 멀티턴 시나리오 (웹 챗봇 형태)
[1] 사용자 입력
암보험 괜찮은 거 있나요?
[2] 시스템 응답 (정보 부족)
보험 나이와 성별을 알려주시면, 조건에 맞는 암보험 상품을 비교해드릴게요.
[3] 사용자 응답
30세 남자입니다.
[4] 시스템 처리
[5] 최종 응답
30세 남성 기준으로 추천되는 암보험 상품은 총 3개입니다. 보험료는 월 28,000원~45,000원 사이이며, 주요 보장 항목은 다음과 같습니다.
(보험사 로고 + 상품명 + 보험료 + 보장 항목 테이블 + 바 차트 시각화)
[1] 사용자 입력
암 진단되면 보장돼요?
[2] 시스템 응답 (조건 부족)
암진단특약이 포함된 경우를 말씀하신 걸까요?
[3] 사용자 응답
네, 암진단특약 기준으로요.
[4] 시스템 처리
[5] 최종 응답
암진단특약이 포함된 경우, 갑상선암 제외 주요 암 진단 시 최대 5천만 원까지 보장됩니다. 세부 내용은 아래를 참고해주세요.
(문서 스니펫 + 요약된 보장 조건 표)