VPN07

DeepSeek-R1 RAG 지식베이스 구축 완전 가이드 2026: 나만의 AI 문서 비서 만들기

2026-03-06 읽기 약 18분 DeepSeek-R1 RAG 로컬 AI

오픈소스 LLM 다운로드 센터

DeepSeek-R1 외 Llama 4·Gemma 3·Phi-4 등 10개 모델을 한곳에서 확인하세요

모델 보기 →

핵심 요약: RAG(Retrieval-Augmented Generation)는 AI가 내 문서·데이터를 학습 없이 즉시 참조하는 기술입니다. DeepSeek-R1과 Ollama, ChromaDB, LangChain을 조합하면 완전 무료·로컬·오프라인 환경에서 나만의 AI 지식베이스를 구축할 수 있습니다. 회사 내부 문서, 법률 자료, 연구 논문 등 어떤 문서든 AI가 즉시 답해주는 시스템을 이 가이드에서 처음부터 끝까지 알려드립니다.

RAG란 무엇인가? 왜 DeepSeek-R1인가?

RAG(검색 증강 생성)는 AI 모델의 가장 큰 약점인 '환각(hallucination)'과 '오래된 지식' 문제를 해결하는 기술입니다. 기존 AI 모델은 학습 데이터 이후의 정보나 개인·조직 내부 문서를 알지 못합니다. RAG는 이 문제를 해결합니다. 사용자가 질문하면 벡터 데이터베이스에서 관련 문서 조각을 찾아 AI에게 참고 자료로 제공하고, AI는 그 자료를 바탕으로 정확한 답변을 생성합니다.

DeepSeek-R1을 RAG에 선택하는 이유는 명확합니다. 강력한 추론 능력 덕분에 제공된 문서 컨텍스트에서 핵심 정보를 정확하게 추출하고, 논리적으로 연결하는 능력이 다른 오픈소스 모델보다 월등합니다. 특히 법률 문서, 기술 매뉴얼, 학술 논문처럼 복잡한 내용을 다룰 때 그 차이가 두드러집니다.

100%
완전 로컬 실행
인터넷 없이도 작동, 데이터 외부 유출 없음
무료
0원 운영 비용
Ollama·ChromaDB·LangChain 모두 오픈소스
무제한 문서 업로드
PDF·Word·TXT·HTML 모든 형식 지원

필요한 도구와 시스템 요구사항

도구 역할 최소 사양 무료 여부
Ollama LLM 실행 엔진 RAM 8GB+ 무료
DeepSeek-R1 7B 답변 생성 LLM RAM 16GB+ 무료
ChromaDB 벡터 데이터베이스 Python 3.9+ 무료
LangChain RAG 파이프라인 구성 Python 3.9+ 무료
nomic-embed-text 문서 임베딩 모델 ~300MB 무료

💻 권장 PC 사양

16GB+
RAM
50GB+
저장공간
4코어+
CPU
선택사항
GPU (속도 향상)

1단계: Ollama와 DeepSeek-R1 설치

RAG 시스템의 핵심인 LLM을 먼저 로컬에 설치합니다. Ollama는 Windows, macOS, Linux 모두 지원하는 가장 간편한 LLM 실행 도구입니다.

1

Ollama 설치 (전 플랫폼 공통)

# macOS / Linux (터미널)

curl -fsSL https://ollama.com/install.sh | sh # Windows: https://ollama.com/download/windows 에서 .exe 다운로드 후 설치 # 설치 확인 ollama --version
2

DeepSeek-R1 및 임베딩 모델 다운로드

RAG에는 두 가지 모델이 필요합니다. 답변 생성용 LLM(DeepSeek-R1)과 문서를 벡터로 변환하는 임베딩 모델입니다.

# 답변 생성 모델 (RAM 16GB 권장)

ollama pull deepseek-r1:7b # 임베딩 모델 (문서 → 벡터 변환용, ~300MB) ollama pull nomic-embed-text # 설치된 모델 확인 ollama list

2단계: Python 환경 및 패키지 설치

1

가상 환경 생성 및 패키지 설치

# Python 3.10+ 권장

python3 -m venv rag-env source rag-env/bin/activate # Windows: rag-env\Scripts\activate # 필수 패키지 설치 pip install langchain langchain-community langchain-ollama pip install chromadb pip install pypdf unstructured pip install sentence-transformers # 설치 확인 python -c "import langchain; print('LangChain OK')"

3단계: 문서 로딩 및 벡터 저장소 구축

이제 핵심 작업입니다. 내 문서(PDF, TXT, Word 등)를 읽어 작은 조각(청크)으로 나누고, 각 조각을 벡터로 변환하여 ChromaDB에 저장합니다. 이 과정이 바로 '지식베이스 구축'입니다.

1

문서 로더 및 벡터 DB 구축 코드

# build_knowledge_base.py

from langchain_community.document_loaders import PyPDFLoader, DirectoryLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_community.embeddings import OllamaEmbeddings from langchain_community.vectorstores import Chroma # 1. 문서 디렉토리 로드 (PDF, TXT 모두 지원) loader = DirectoryLoader("./my_documents/", glob="**/*.pdf", loader_cls=PyPDFLoader) documents = loader.load() print(f"총 {len(documents)} 페이지 로드 완료") # 2. 문서 청킹 (최적 청크 크기: 500~1000자) text_splitter = RecursiveCharacterTextSplitter( chunk_size=800, chunk_overlap=100, separators=["\n\n", "\n", "。", ".", " "] ) chunks = text_splitter.split_documents(documents) print(f"총 {len(chunks)} 청크로 분할 완료") # 3. Ollama 임베딩 모델 초기화 embeddings = OllamaEmbeddings(model="nomic-embed-text") # 4. ChromaDB에 벡터 저장 (./chroma_db 폴더에 자동 저장) vectorstore = Chroma.from_documents( documents=chunks, embedding=embeddings, persist_directory="./chroma_db" ) print("지식베이스 구축 완료! chroma_db 폴더에 저장되었습니다.")

4단계: RAG 쿼리 시스템 구축 및 실행

1

RAG 쿼리 파이프라인 전체 코드

# rag_chat.py - DeepSeek-R1 RAG 대화 시스템

from langchain_community.vectorstores import Chroma from langchain_community.embeddings import OllamaEmbeddings from langchain_ollama import ChatOllama from langchain.chains import RetrievalQA from langchain.prompts import PromptTemplate # 1. 저장된 지식베이스 로드 embeddings = OllamaEmbeddings(model="nomic-embed-text") vectorstore = Chroma(persist_directory="./chroma_db", embedding_function=embeddings) # 2. DeepSeek-R1 모델 초기화 llm = ChatOllama(model="deepseek-r1:7b", temperature=0.1) # 3. 한국어 최적화 프롬프트 템플릿 prompt_template = """당신은 제공된 문서를 기반으로 정확한 답변을 제공하는 전문 AI 비서입니다. 반드시 아래 참고 문서를 바탕으로 답변하세요. 문서에 없는 내용은 "문서에서 해당 정보를 찾을 수 없습니다"라고 말하세요. 참고 문서: {context} 질문: {question} 상세하고 정확한 한국어 답변:""" PROMPT = PromptTemplate( template=prompt_template, input_variables=["context", "question"] ) # 4. RAG 체인 구성 (상위 4개 관련 문서 검색) qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever(search_kwargs={"k": 4}), chain_type_kwargs={"prompt": PROMPT}, return_source_documents=True ) # 5. 대화형 인터페이스 실행 print("🤖 DeepSeek-R1 RAG 지식베이스 시스템 준비 완료!") print("'exit' 입력 시 종료\n") while True: query = input("질문을 입력하세요: ").strip() if query.lower() == 'exit': break if not query: continue result = qa_chain.invoke({"query": query}) print(f"\n📋 답변:\n{result['result']}") print(f"\n📚 참고 문서:") for doc in result['source_documents'][:2]: source = doc.metadata.get('source', '알 수 없음') page = doc.metadata.get('page', '?') print(f" - {source} (페이지 {page})") print("-" * 50)
2

실행 방법

# 순서대로 실행

# 1단계: 지식베이스 구축 (최초 1회) python build_knowledge_base.py # 2단계: RAG 채팅 시작 python rag_chat.py # 예시 출력 # 🤖 DeepSeek-R1 RAG 지식베이스 시스템 준비 완료! # 질문을 입력하세요: 계약서 해지 조건은 무엇인가요? # 📋 답변: 계약서 제3조 2항에 따르면 해지 조건은...

5단계: Open WebUI로 브라우저 인터페이스 구성

터미널 대신 브라우저에서 ChatGPT처럼 사용하고 싶다면 Open WebUI와 Ollama를 연동하면 됩니다. RAG 기능도 Open WebUI에서 직접 지원합니다.

# Docker로 Open WebUI 실행 (Ollama 연동 포함)

docker run -d \ -p 3000:8080 \ --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui \ ghcr.io/open-webui/open-webui:main # 브라우저에서 http://localhost:3000 접속 # 설정 → 문서 → PDF 업로드 → RAG 채팅 시작

실전 활용 사례: 이런 곳에 써보세요

기업 내부 문서 Q&A

  • • 사내 규정집·정책 문서 검색
  • • 제품 매뉴얼·기술 문서 질문
  • • 회의록 요약 및 결정사항 추적
  • • 계약서 조항 분석

학술 연구 지원

  • • 수십 개 논문에서 관련 내용 검색
  • • 참고문헌 자동 인용 확인
  • • 연구 데이터 분석 요청
  • • 논문 비교 분석 및 요약

법률·의료 문서

  • • 법령·판례 검색 및 해석
  • • 진료 기록 분석 (완전 오프라인)
  • • 보험 약관 조항 검색
  • • 규제 문서 준수 여부 확인

개인 지식 관리

  • • 독서 노트·메모 검색
  • • 북마크·스크랩 자료 질의
  • • 개인 일기·기록 분석
  • • 강의 자료 복습 시스템

RAG 성능 최적화 핵심 팁

청크 크기 최적화

청크 크기는 문서 유형에 따라 다르게 설정하세요. 너무 작으면 컨텍스트가 부족하고, 너무 크면 검색 정확도가 낮아집니다.

300~500자
FAQ·요약 문서
800~1000자
일반 보고서
1500~2000자
기술 논문

하이브리드 검색 적용

벡터 검색(의미 기반)과 키워드 검색(BM25)을 결합하면 검색 정확도가 15~25% 향상됩니다. LangChain의 EnsembleRetriever를 활용하세요.

메타데이터 필터링 활용

ChromaDB의 메타데이터 필터를 사용하면 특정 파일, 날짜, 카테고리의 문서만 검색할 수 있습니다. 대규모 지식베이스에서 검색 속도를 3~5배 향상시킵니다.

💡 빠른 모델 다운로드를 위한 팁

Hugging Face와 Ollama 서버는 해외에 위치합니다. nomic-embed-text, DeepSeek-R1 모델 다운로드 시 국내 직접 연결보다 VPN07(1000Mbps)을 사용하면 속도가 크게 향상됩니다. 5GB 모델도 3~5분 내 완료됩니다.

자주 묻는 문제와 해결법

Q. 답변이 문서 내용과 관계없는 내용을 생성합니다

프롬프트를 더 엄격하게 작성하거나 temperature를 0.0~0.1로 낮추세요. "반드시 문서에 기반하여 답변하라"는 지시를 프롬프트에 명확히 포함하세요.

Q. 한국어 PDF 문서가 깨져서 로드됩니다

PyPDF 대신 pdfplumber를 사용하거나, 스캔 PDF는 pytesseract로 OCR 처리 후 텍스트를 저장하세요. 한글 폰트 문제는 unstructured[pdf] 패키지로 해결됩니다.

Q. ChromaDB에 저장 후 응답이 너무 느립니다

검색 k값을 4→2로 줄이거나, DeepSeek-R1 대신 더 작은 모델(1.5B)로 답변 속도를 높이고 상세 답변이 필요할 때만 7B를 사용하는 하이브리드 방식을 써보세요.

오픈소스 LLM 다운로드 센터

DeepSeek-R1 외 Llama 4·Gemma 3·Phi-4·Mistral 등 10개 모델을 한곳에서 확인하세요

모델 보기 →

VPN07 - AI 모델 고속 다운로드의 필수품

Hugging Face · Ollama 서버 1000Mbps 고속 접속 · 10년 운영 신뢰

$1.5/월
초저가 월정액
1000Mbps
기가급 대역폭
70+개국
글로벌 서버
30일
환불 보장

DeepSeek-R1 7B 모델은 약 5GB, nomic-embed-text는 300MB입니다. Hugging Face 서버는 해외에 있어 직접 연결 시 느릴 수 있습니다. VPN07은 1000Mbps 대역폭으로 AI 모델을 빠르게 다운로드할 수 있게 해줍니다. 10년 이상 운영된 신뢰할 수 있는 VPN으로 RAG 시스템 구축부터 일상 업무까지 안전하게 사용하세요. 30일 환불 보장으로 부담 없이 시작하세요.

관련 글 추천

월 $1.5 · 10년 운영
VPN07 무료 체험