5분 안에 첫 채팅

STEP 1
설치

저장소를 clone하고 부트스트랩 스크립트를 실행합니다. uv·의존성·Ollama·기본 Teacher 모델까지 한 번에 준비됩니다.

git clone https://github.com/DevDnA/rag-factory.git
cd rag-factory && ./setup.sh
STEP 2
프로젝트 생성

템플릿에서 새 프로젝트 디렉터리를 만듭니다. project.yaml(설정)과 documents/(문서 투입처)가 생성됩니다.

./rf init my-project
cp /path/to/your/*.pdf my-project/documents/
STEP 3
RAG 채팅 시작

문서 파싱·인덱싱이 끝나면 브라우저로 채팅이 열립니다. 두 번째 실행부터는 인덱스를 재사용해 즉시 시작.

cd my-project
../rf rag

브라우저 → http://localhost:8000

지원 포맷 — PDF, HWP, HWPX, DOCX, DOC, PPT, PPTX, XLSX, XLS, HTML, TXT, MD 12종. project.yamlparsing.formats에서 활성 확장자를 조정합니다.

왜 필요한가

범용 LLM은 우리 조직의 문서를 모릅니다. ChatGPT에 사내 규정을 물어보면 그럴듯한 거짓말을 합니다.

rag-factory는 도메인 문서를 넣으면 그 문서만으로 답변하는 RAG 채팅 서비스를 만듭니다. 모든 처리가 로컬에서 실행되어 사내 문서가 밖으로 나가지 않으며, 문서에 없는 내용은 추측하지 않고 "해당 정보 없음"이라 답합니다.

핵심 기능

하이브리드 검색 + 리랭킹

벡터 검색 + BM25 키워드를 RRF로 결합하고, 한국어 cross-encoder(dragonkue/bge-reranker-v2-m3-ko)로 재정렬합니다.

HyDE + Multi-Query

LLM 가상 답변으로 임베딩 강화(HyDE) + 질의 N개 변형 병렬 검색. 도메인 약어 많은 corpus에서 짧은 질의의 recall을 끌어올립니다.

Corpus-Aware 라우팅

인덱싱 시 LLM이 corpus의 도메인 명칭·약어를 자동 추출. 라우팅·합성에 컨텍스트로 주입되어 어떤 도메인 문서든 즉시 적응.

Agent RAG (smart_mode)

rag.agent.smart_mode: true 한 줄로 IntentClassifier(8 카테고리), Clarifier, Personas, Planner/Verifier 다단계 검색을 일괄 활성화.

OpenAI 호환 API

/v1/chat/completions, /v1/models 제공 — OpenWebUI·LangChain·LlamaIndex 등과 바로 연동.

opencode-ai 스타일 추론 UI

tool-call 카드 + 상태 아이콘(⏵/✓/✗)으로 RAG 에이전트의 다단계 검색 과정을 시각화. monospace 헤더, indented observation.

Fine-tuning은 잘 안 됩니다. 1B Student 파인튜닝(rf tune)은 소규모 도메인 데이터(< 100 QA)에서 거의 100% 과적합합니다. 평소엔 rf rag만 쓰셔도 도메인 답변의 대부분이 해결됩니다. 그래도 시도하실 분은 CLI 레퍼런스의 advanced 섹션을 참조하세요.

이어서 볼 문서

시스템 요구사항

  • Python 3.11+
  • Ollamaollama.com (Teacher LLM 백엔드)
  • GPU — NVIDIA CUDA (8GB+) 또는 Apple Silicon (MPS) 권장. CPU 폴백 가능(느림).
  • 메모리 — 24GB 통합 메모리 기준 qwen3.5:9b 단일 모델 안정. 16GB 이하는 모든 모델 슬롯 qwen3.5:4b로 다운그레이드.