View Categories

Dify에서 Knowledge 기반 RAG 챗봇 만들기

#

1단계: Knowledge Base 생성하기 #

1.1 Knowledge Base 생성 시작 #

  1. Dify에서 Knowledge 메뉴로 이동
  2. Create Knowledge 버튼 클릭
  3. Knowledge Base 이름과 설명 입력

1.2 문서 업로드 #

지원하는 파일 형식:

  • 텍스트 파일: TXT, Markdown, DOCX, HTML, JSONL, PDF
  • 구조화된 데이터: CSV, Excel
  • 온라인 데이터: 웹페이지, Notion 등

업로드 방법:

  • 파일을 드래그 앤 드롭
  • Upload file 버튼을 통해 선택
  • 여러 파일 동시 업로드 지원

2단계: 청킹(Chunking) 모드 선택 #

2.1 청킹이란? #

LLM의 제한된 컨텍스트 윈도우로 인해 긴 텍스트를 작은 청크(chunk)로 분할하는 과정입니다.

2.2 청킹 모드 옵션 #

General Mode (일반 모드) #

  • 기본적인 청킹 방식
  • 각 텍스트 청크가 독립적으로 처리
  • 대부분의 문서에 적합

Parent-child Mode (부모-자식 모드) #

  • 계층적 청킹 구조
  • 더 정확한 컨텍스트 유지
  • 복잡한 문서 구조에 적합

2.3 청킹 설정 옵션 #

  • Chunk Size: 청크 크기 (토큰 수)
  • Chunk Overlap: 청크 간 중복 영역
  • Separator: 텍스트 분할 기준

3단계: 인덱싱 방법 및 검색 설정 #

3.1 인덱싱 방법 선택 #

High Quality (고품질) 모드 – 권장 #

  • 임베딩 모델을 사용하여 텍스트를 벡터로 변환
  • 더 정확한 의미 매칭
  • 토큰을 소모하지만 높은 정확도 제공

Economical (경제적) 모드 #

  • 키워드 기반 검색
  • 토큰 소모 없음
  • 기본적인 검색 기능

3.2 검색 설정 (High Quality 모드) #

Vector Retrieval (벡터 검색) #

  • 의미 기반 검색
  • 자연어 질의에 최적화
  • 유사한 의미의 다른 표현도 찾아냄

Full-text Retrieval (전문 검색) #

  • 키워드 기반 정확한 매칭
  • 특정 용어나 구문 검색에 유리

Hybrid Retrieval (하이브리드 검색) – 권장 #

  • 벡터 검색과 전문 검색 결합
  • 최적의 검색 결과 제공

3.3 Q&A 모드 (Community Edition 전용) #

  • 자동으로 Q&A 쌍 생성
  • FAQ 문서에 최적화
  • Q to Q 매칭 전략 사용

4단계: 임베딩 처리 대기 #

  1. Save and Process 버튼 클릭
  2. 임베딩 처리 완료까지 대기 (문서 크기에 따라 시간 소요)
  3. 처리 상태를 실시간으로 모니터링

5단계: RAG 챗봇 애플리케이션 생성 #

5.1 새 애플리케이션 생성 #

  1. Studio 메뉴로 이동
  2. Create from Blank 선택
  3. Chatbot 애플리케이션 타입 선택
  4. 애플리케이션 이름 입력

5.2 Knowledge Base 연결 #

  1. Context 섹션에서 Add 버튼 클릭
  2. 생성한 Knowledge Base 선택
  3. 필요시 여러 Knowledge Base 연결 가능

5.3 검색 설정 구성 #

Context Settings > Retrieval Setting #

  • Top K: 검색할 청크 수 (기본값: 3)
  • Score Threshold: 관련성 점수 임계값
  • Rerank Model: 재순위 모델 (선택사항)

Metadata Filtering #

  • 특정 조건으로 문서 검색 범위 제한
  • 날짜, 카테고리, 태그 등으로 필터링

6단계: 고급 기능 설정 #

6.1 Citation and Attribution 활성화 #

  1. Add Features 섹션에서 설정
  2. Enable Citation: 인용 출처 표시
  3. Enable Attribution: 참조 문서 정보 제공

6.2 프롬프트 최적화 #

당신은 회사의 전문 고객 지원 AI입니다. 
제공된 지식 기반을 바탕으로 정확하고 도움이 되는 답변을 제공하세요.

지침:
1. 지식 기반에서 관련 정보를 찾아 답변하세요
2. 확실하지 않은 정보는 추측하지 마세요
3. 출처를 명확히 제시하세요
4. 친근하고 전문적인 톤을 유지하세요

6.3 모델 설정 #

  • Temperature: 창의성 조절 (0.1-0.3 권장)
  • Max Tokens: 최대 응답 길이
  • Top P: 응답 다양성 조절

7단계: 테스트 및 디버깅 #

7.1 Retrieval Test #

  1. Knowledge Base에서 Retrieval Test 실행
  2. 샘플 질문으로 검색 결과 확인
  3. 청크 점수와 관련성 검토

7.2 Debug and Preview #

  1. Debug and Preview 모드에서 테스트
  2. 다양한 질문 유형으로 성능 확인
  3. 응답 품질과 인용 정확성 검토

7.3 성능 최적화 #

  • 검색 결과가 부정확한 경우 청킹 설정 조정
  • Top K 값 최적화
  • 프롬프트 개선

8단계: 배포 및 공유 #

8.1 애플리케이션 게시 #

  1. Publish 버튼 클릭
  2. 배포 설정 구성
  3. 공개 URL 생성

8.2 통합 옵션 #

  • Web App: 독립적인 웹 애플리케이션
  • API: 다른 시스템과 통합
  • Embed: 웹사이트에 임베드
  • Slack/Discord: 메신저 봇으로 배포

베스트 프랙티스 #

문서 준비 #

  • 일관된 형식으로 문서 정리
  • 중복 내용 제거
  • 명확한 제목과 구조 사용

청킹 최적화 #

  • 문서 타입에 맞는 청킹 모드 선택
  • 적절한 청크 크기 설정 (512-1024 토큰)
  • 중요한 정보가 분할되지 않도록 주의

검색 성능 향상 #

  • 하이브리드 검색 사용
  • 적절한 Top K 값 설정
  • 정기적인 성능 모니터링

사용자 경험 개선 #

  • 명확한 인용 출처 제공
  • 응답할 수 없는 질문에 대한 적절한 안내
  • 다국어 지원 고려

문제 해결 #

일반적인 문제 #

  1. 검색 결과 부정확: 청킹 설정이나 검색 방법 조정
  2. 응답 속도 느림: 문서 크기 줄이기 또는 Top K 값 조정
  3. 인용 누락: Citation 기능 활성화 확인
  4. 관련 없는 응답: 프롬프트 개선 및 필터링 강화

이 가이드를 따라하면 Dify에서 효과적인 RAG 챗봇을 구축할 수 있습니다. 지속적인 테스트와 최적화를 통해 더 나은 성능을 달성할 수 있습니다.

Powered by BetterDocs

Leave a Reply