ragflow
무엇인가
RAGFlow는 LLM 앞단에 놓이는 컨텍스트 계층이다. 벡터 DB나 프롬프트 라이브러리처럼 조각 기능만 내놓는 대신, 문서 수집부터 검색·재순위·인용 생성까지 하나의 배포 가능한 서비스로 묶는다. 에이전트 실행 기능이 같은 엔진 안에 들어 있어 검색 결과가 도구 호출의 입력으로 바로 연결된다.
어떻게 동작하나
수집 단계에서 Word, Slides, Excel, TXT, 이미지, 스캔본, 구조화 데이터, 웹 페이지를 받는다. 파싱 방식은 DeepDoc 외에 MinerU와 Docling을 선택할 수 있다. 청킹은 템플릿 기반이며 청크 경계를 시각화해 사람이 개입한다. 임베딩 모델과 LLM은 교체 가능하고, 여러 회수 경로의 결과를 융합 재순위한다. 답변에는 원문 위치까지 추적 가능한 인용이 붙는다. 에이전트는 MCP와 Python/JavaScript 코드 실행기를 쓰며, 코드 실행기는 gVisor 샌드박스에서 격리된다. 데이터는 Confluence, S3, Notion, Discord, Google Drive에서 동기화하고 Feishu·Discord·Telegram·Line 같은 채팅 채널로도 연결된다. .env 파일이 SVR_HTTP_PORT, MYSQL_PASSWORD, MINIO_PASSWORD 같은 기본값을 담당한다.
무엇과 다른가
일반적인 RAG 스택은 파서, 벡터 저장소, 오케스트레이션 라이브러리를 따로 조립하고 그 사이 접착 코드를 유지해야 한다. RAGFlow는 그 조립 자체를 서버 하나로 대체한다. 청킹 결과를 눈으로 확인하고 수정할 수 있다는 점, 인용을 원문 위치까지 되짚을 수 있다는 점이 파이프라인 라이브러리와의 구조적 차이다. 에이전트 템플릿이 내장돼 검색 계층과 에이전트 계층을 별도로 붙이지 않는다.
어떻게 쓰나
Docker Compose로 기동한다. 먼저 vm.max_map_count를 262144 이상으로 올리고 저장소를 클론한다. docker/.env의 RAGFLOW_IMAGE 변수로 배포판 버전을 지정한 뒤 docker compose로 서버를 띄운다. 기동 후 상태를 확인하고 브라우저에서 서버 IP로 접속한다. 기본 설정은 HTTP 80 포트를 쓰므로 포트 번호 없이 http://IP_OF_YOUR_MACHINE으로 들어간다. service_conf.yaml.template의 user_default_llm에서 LLM 팩토리를 고르고 API_KEY를 채운다.
전제와 한계
Docker 이미지는 x86 플랫폼용만 배포되며 ARM64 이미지는 제공되지 않는다. ARM64에서는 직접 이미지를 빌드해야 한다. 최소 사양은 CPU 4코어, RAM 16GB, 디스크 50GB, Docker 24.0.0 이상, Docker Compose v2.26.1 이상, Python 3.13 이상이다. 코드 실행기 샌드박스를 쓰려면 gVisor가 추가로 필요하다. vm.max_map_count 변경은 재부팅 시 초기화되므로 /etc/sysctl.conf에 넣어야 유지된다. v0.22.0부터는 슬림 에디션만 배포되고 이미지 태그에 -slim 접미사가 붙지 않는다.
관련 논문 4
유사 도구
- MaxKBRAG 파이프라인과 워크플로 엔진, MCP 도구 호출을 묶어 기업용 에이전트를 만드는 Python/Django 오픈소스 플랫폼이다.
- WeKnora원시 문서를 수집해 검색 가능한 RAG 지식베이스와 자율 추론 에이전트, 자체 유지 위키로 바꾸는 Go 기반 자체 호스팅 LLM 지식 플랫폼이다.
- onyxLLM 애플리케이션 계층으로, RAG·웹 검색·코드 실행·에이전트를 갖춘 셀프호스팅 AI 채팅 플랫폼이다. 50개 이상 커넥터로 사내 데이터를 색인한다.
- difyLLM 애플리케이션을 워크플로·RAG·에이전트·모델 관리·관측까지 한 워크스페이스에서 만들고, 클라우드나 셀프호스팅으로 배포하는 오픈소스 플랫폼이다.
- Langchain-ChatchatLangChain 위에 지식베이스 검색과 Agent를 얹어 오픈소스 LLM만으로 오프라인 질의응답을 구성하는 Python 애플리케이션이다.
- FastGPTLLM 위에 지식베이스 RAG 검색과 시각적 워크플로 편집을 얹어 질의응답 시스템을 구성하는 TypeScript 플랫폼이다.