Table of Contents
#
1단계: Knowledge Base 생성하기 #
1.1 Knowledge Base 생성 시작 #
- Dify에서 Knowledge 메뉴로 이동
- Create Knowledge 버튼 클릭
- 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단계: 임베딩 처리 대기 #
- Save and Process 버튼 클릭
- 임베딩 처리 완료까지 대기 (문서 크기에 따라 시간 소요)
- 처리 상태를 실시간으로 모니터링
5단계: RAG 챗봇 애플리케이션 생성 #
5.1 새 애플리케이션 생성 #
- Studio 메뉴로 이동
- Create from Blank 선택
- Chatbot 애플리케이션 타입 선택
- 애플리케이션 이름 입력
5.2 Knowledge Base 연결 #
- Context 섹션에서 Add 버튼 클릭
- 생성한 Knowledge Base 선택
- 필요시 여러 Knowledge Base 연결 가능
5.3 검색 설정 구성 #
Context Settings > Retrieval Setting #
- Top K: 검색할 청크 수 (기본값: 3)
- Score Threshold: 관련성 점수 임계값
- Rerank Model: 재순위 모델 (선택사항)
Metadata Filtering #
- 특정 조건으로 문서 검색 범위 제한
- 날짜, 카테고리, 태그 등으로 필터링
6단계: 고급 기능 설정 #
6.1 Citation and Attribution 활성화 #
- Add Features 섹션에서 설정
- Enable Citation: 인용 출처 표시
- 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 #
- Knowledge Base에서 Retrieval Test 실행
- 샘플 질문으로 검색 결과 확인
- 청크 점수와 관련성 검토
7.2 Debug and Preview #
- Debug and Preview 모드에서 테스트
- 다양한 질문 유형으로 성능 확인
- 응답 품질과 인용 정확성 검토
7.3 성능 최적화 #
- 검색 결과가 부정확한 경우 청킹 설정 조정
- Top K 값 최적화
- 프롬프트 개선
8단계: 배포 및 공유 #
8.1 애플리케이션 게시 #
- Publish 버튼 클릭
- 배포 설정 구성
- 공개 URL 생성
8.2 통합 옵션 #
- Web App: 독립적인 웹 애플리케이션
- API: 다른 시스템과 통합
- Embed: 웹사이트에 임베드
- Slack/Discord: 메신저 봇으로 배포
베스트 프랙티스 #
문서 준비 #
- 일관된 형식으로 문서 정리
- 중복 내용 제거
- 명확한 제목과 구조 사용
청킹 최적화 #
- 문서 타입에 맞는 청킹 모드 선택
- 적절한 청크 크기 설정 (512-1024 토큰)
- 중요한 정보가 분할되지 않도록 주의
검색 성능 향상 #
- 하이브리드 검색 사용
- 적절한 Top K 값 설정
- 정기적인 성능 모니터링
사용자 경험 개선 #
- 명확한 인용 출처 제공
- 응답할 수 없는 질문에 대한 적절한 안내
- 다국어 지원 고려
문제 해결 #
일반적인 문제 #
- 검색 결과 부정확: 청킹 설정이나 검색 방법 조정
- 응답 속도 느림: 문서 크기 줄이기 또는 Top K 값 조정
- 인용 누락: Citation 기능 활성화 확인
- 관련 없는 응답: 프롬프트 개선 및 필터링 강화
이 가이드를 따라하면 Dify에서 효과적인 RAG 챗봇을 구축할 수 있습니다. 지속적인 테스트와 최적화를 통해 더 나은 성능을 달성할 수 있습니다.