RAGFlow 는 최첨단 RAG(Retrieval-Augmented Generation)와 Agent 기능을 융합하여 대규모 언어 모델(LLM)을 위한 우수한 컨텍스트 계층을 생성하는 선도적인 오픈소스 RAG 엔진입니다. 모든 규모의 기업에 적용 가능한 효율적인 RAG 워크플로를 제공하며, 통합 컨텍스트 엔진과 사전 구축된 Agent 템플릿을 통해 개발자들이 복잡한 데이터를 예외적인 효율성과 정밀도로 고급 구현도의 프로덕션 준비 완료 AI 시스템으로 변환할 수 있도록 지원합니다.
데모를 https://demo.ragflow.io에서 실행해 보세요.
⭐️우리의 저장소를 즐겨찾기에 등록하여 흥미로운 새로운 기능과 업데이트를 최신 상태로 유지하세요! 모든 새로운 릴리스에 대한 즉시 알림을 받으세요! 🌟
[!TIP] 로컬 머신(Windows, Mac, Linux)에 Docker가 설치되지 않은 경우, Docker 엔진 설치를 참조하세요.
vm.max_map_count가 262144 이상인지 확인하세요:
vm.max_map_count의 값을 아래 명령어를 통해 확인하세요:$ sysctl vm.max_map_count만약
vm.max_map_count이 262144 보다 작다면 값을 쟈설정하세요.# 이 경우에 262144로 설정했습니다.: $ sudo sysctl -w vm.max_map_count=262144이 변경 사항은 시스템 재부팅 후에 초기화됩니다. 변경 사항을 영구적으로 적용하려면 /etc/sysctl.conf 파일에 vm.max_map_count 값을 추가하거나 업데이트하세요:
vm.max_map_count=262144
레포지토리를 클론하세요:
$ git clone https://github.com/infiniflow/ragflow.git
미리 빌드된 Docker 이미지를 생성하고 서버를 시작하세요:
[!CAUTION] 모든 Docker 이미지는 x86 플랫폼을 위해 빌드되었습니다. 우리는 현재 ARM64 플랫폼을 위한 Docker 이미지를 제공하지 않습니다. ARM64 플랫폼을 사용 중이라면, 시스템과 호환되는 Docker 이미지를 빌드하려면 이 가이드를 사용해 주세요.
아래 명령어는 RAGFlow Docker 이미지의 v0.22.1 버전을 다운로드합니다. 다양한 RAGFlow 버전에 대한 설명은 다음 표를 참조하십시오. v0.22.1과 다른 RAGFlow 버전을 다운로드하려면, docker/.env 파일에서 RAGFLOW_IMAGE 변수를 적절히 업데이트한 후 docker compose를 사용하여 서버를 시작하십시오.
$ cd ragflow/docker
# git checkout v0.22.1
# Optional: use a stable tag (see releases: https://github.com/infiniflow/ragflow/releases)
# 이 단계는 코드의 entrypoint.sh 파일이 Docker 이미지 버전과 일치하도록 보장합니다.
# Use CPU for DeepDoc tasks:
$ docker compose -f docker-compose.yml up -d
# To use GPU to accelerate DeepDoc tasks:
# sed -i '1i DEVICE=gpu' .env
# docker compose -f docker-compose.yml up -d
참고:
v0.22.0이전 버전에서는 embedding 모델이 포함된 이미지와 embedding 모델이 포함되지 않은 slim 이미지를 모두 제공했습니다. 자세한 내용은 다음과 같습니다:
| RAGFlow image tag | Image size (GB) | Has embedding models? | Stable? |
|---|---|---|---|
| v0.21.1 | ≈9 | ✔️ | Stable release |
| v0.21.1-slim | ≈2 | ❌ | Stable release |
v0.22.0부터는 slim 에디션만 배포하며 이미지 태그에 -slim 접미사를 더 이상 붙이지 않습니다.
서버가 시작된 후 서버 상태를 확인하세요:
$ docker logs -f docker-ragflow-cpu-1
다음 출력 결과로 시스템이 성공적으로 시작되었음을 확인합니다:
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0)
만약 확인 단계를 건너뛰고 바로 RAGFlow에 로그인하면, RAGFlow가 완전히 초기화되지 않았기 때문에 브라우저에서
network anormal오류가 발생할 수 있습니다.
웹 브라우저에 서버의 IP 주소를 입력하고 RAGFlow에 로그인하세요.
기본 설정을 사용할 경우,
http://IP_OF_YOUR_MACHINE만 입력하면 됩니다 (포트 번호는 제외). 기본 HTTP 서비스 포트80은 기본 구성으로 사용할 때 생략할 수 있습니다.
service_conf.yaml.template 파일에서 원하는 LLM 팩토리를 user_default_llm에 선택하고, API_KEY 필드를 해당 API 키로 업데이트하세요.
자세한 내용은 llm_api_key_setup를 참조하세요.
이제 쇼가 시작됩니다!
시스템 설정과 관련하여 다음 파일들을 관리해야 합니다:
SVR_HTTP_PORT, MYSQL_PASSWORD, MINIO_PASSWORD와 같은 시스템의 기본 설정을 포함합니다..env 파일의 변경 사항이 service_conf.yaml.template 파일의 내용과 일치하도록 해야 합니다.
./docker/README 파일 ./docker/README은 service_conf.yaml.template 파일에서 ${ENV_VARS}로 사용할 수 있는 환경 설정과 서비스 구성에 대한 자세한 설명을 제공합니다.
기본 HTTP 서비스 포트(80)를 업데이트하려면 docker-compose.yml 파일에서 80:80을 <YOUR_SERVING_PORT>:80으로 변경하세요.
모든 시스템 구성 업데이트는 적용되기 위해 시스템 재부팅이 필요합니다.
$ docker compose -f docker-compose.yml up -d
RAGFlow 는 기본적으로 Elasticsearch 를 사용하여 전체 텍스트 및 벡터를 저장합니다. [Infinity]로 전환(https://github.com/infiniflow/infinity/), 다음 절차를 따르십시오.
$docker compose-f docker/docker-compose.yml down -v
Note: -v 는 docker 컨테이너의 볼륨을 삭제하고 기존 데이터를 지우며, 이 작업은 컨테이너를 중지하는 것과 동일합니다.$docker compose-f docker/docker-compose.yml up -d
[!WARNING] Linux/arm64 시스템에서 Infinity로 전환하는 것은 공식적으로 지원되지 않습니다.
이 Docker 이미지의 크기는 약 1GB이며, 외부 대형 모델과 임베딩 서비스에 의존합니다.
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .
uv 와 pre-commit 을 설치하거나, 이미 설치된 경우 이 단계를 건너뜁니다:
pipx install uv pre-commit
소스 코드를 클론하고 Python 의존성을 설치합니다:
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
uv sync --python 3.10 # install RAGFlow dependent python modules
uv run download_deps.py
pre-commit install
Docker Compose를 사용하여 의존 서비스(MinIO, Elasticsearch, Redis 및 MySQL)를 시작합니다:
docker compose -f docker/docker-compose-base.yml up -d
/etc/hosts 에 다음 줄을 추가하여 conf/service_conf.yaml 에 지정된 모든 호스트를 127.0.0.1 로 해결합니다:
127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager
HuggingFace에 접근할 수 없는 경우, HF_ENDPOINT 환경 변수를 설정하여 미러 사이트를 사용하세요:
export HF_ENDPOINT=https://hf-mirror.com
만약 운영 체제에 jemalloc이 없으면 다음 방식으로 설치하세요:
# ubuntu
sudo apt-get install libjemalloc-dev
# centos
sudo yum install jemalloc
# mac
sudo brew install jemalloc
백엔드 서비스를 시작합니다:
source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
프론트엔드 의존성을 설치합니다:
cd web
npm install
프론트엔드 서비스를 시작합니다:
npm run dev
다음 인터페이스는 시스템이 성공적으로 시작되었음을 나타냅니다:
개발이 완료된 후 RAGFlow 프론트엔드 및 백엔드 서비스를 중지합니다.
pkill -f "ragflow_server.py|task_executor.py"
RAGFlow 로드맵 2025을 확인하세요.
RAGFlow는 오픈소스 협업을 통해 발전합니다. 이러한 정신을 바탕으로, 우리는 커뮤니티의 다양한 기여를 환영합니다. 참여하고 싶으시다면, 먼저 가이드라인을 검토해 주세요.