Back to Ragflow

README Ko

README_ko.md

0.25.117.5 KB
Original Source
<div align="center"> <a href="https://cloud.ragflow.io/"> </a> </div> <p align="center"> <a href="./README.md"></a> <a href="./README_zh.md"></a> <a href="./README_tzh.md"></a> <a href="./README_ja.md"></a> <a href="./README_ko.md"></a> <a href="./README_id.md"></a> <a href="./README_pt_br.md"></a> <a href="./README_fr.md"></a> <a href="./README_ar.md"></a> <a href="./README_tr.md"></a> </p> <p align="center"> <a href="https://x.com/intent/follow?screen_name=infiniflowai" target="_blank">
</a>
<a href="https://cloud.ragflow.io" target="_blank">
    
</a>
<a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
    
</a>
<a href="https://github.com/infiniflow/ragflow/releases/latest">
    
</a>
<a href="https://github.com/infiniflow/ragflow/blob/main/LICENSE">
    
</a>
<a href="https://deepwiki.com/infiniflow/ragflow">
    
</a>
</p> <h4 align="center"> <a href="https://ragflow.io/docs/dev/">Document</a> | <a href="https://github.com/infiniflow/ragflow/issues/12241">Roadmap</a> | <a href="https://twitter.com/infiniflowai">Twitter</a> | <a href="https://discord.gg/NjYzJD3GM3">Discord</a> | <a href="https://cloud.ragflow.io">Demo</a> </h4> <div align="center" style="margin-top:20px;margin-bottom:20px;"> </div> <div align="center"> <a href="https://trendshift.io/repositories/9064" target="_blank"></a> </div>

๐Ÿ’ก RAGFlow๋ž€?

RAGFlow ๋Š” ์ตœ์ฒจ๋‹จ RAG(Retrieval-Augmented Generation)์™€ Agent ๊ธฐ๋Šฅ์„ ์œตํ•ฉํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์„ ์œ„ํ•œ ์šฐ์ˆ˜ํ•œ ์ปจํ…์ŠคํŠธ ๊ณ„์ธต์„ ์ƒ์„ฑํ•˜๋Š” ์„ ๋„์ ์ธ ์˜คํ”ˆ์†Œ์Šค RAG ์—”์ง„์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ทœ๋ชจ์˜ ๊ธฐ์—…์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ํšจ์œจ์ ์ธ RAG ์›Œํฌํ”Œ๋กœ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ํ†ตํ•ฉ ์ปจํ…์ŠคํŠธ ์—”์ง„๊ณผ ์‚ฌ์ „ ๊ตฌ์ถ•๋œ Agent ํ…œํ”Œ๋ฆฟ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์™ธ์ ์ธ ํšจ์œจ์„ฑ๊ณผ ์ •๋ฐ€๋„๋กœ ๊ณ ๊ธ‰ ๊ตฌํ˜„๋„์˜ ํ”„๋กœ๋•์…˜ ์ค€๋น„ ์™„๋ฃŒ AI ์‹œ์Šคํ…œ์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽฎ ๋ฐ๋ชจ

๋ฐ๋ชจ๋ฅผ https://cloud.ragflow.io์—์„œ ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”.

<div align="center" style="margin-top:20px;margin-bottom:20px;"> </div>

๐Ÿ”ฅ ์—…๋ฐ์ดํŠธ

  • 2026-03-24 RAGFlow Skill on OpenClaw โ€” OpenClaw๋ฅผ ํ†ตํ•ด RAGFlow ๋ฐ์ดํ„ฐ์…‹์— ์ ‘๊ทผํ•˜๋Š” ๊ณต์‹ ์Šคํ‚ฌ ์ œ๊ณต.
  • 2025-12-26 AI ์—์ด์ „ํŠธ์˜ '๋ฉ”๋ชจ๋ฆฌ' ๊ธฐ๋Šฅ ์ง€์›.
  • 2025-11-19 Gemini 3 Pro๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • 2025-11-12 Confluence, S3, Notion, Discord, Google Drive์—์„œ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • 2025-10-23 ๋ฌธ์„œ ํŒŒ์‹ฑ ๋ฐฉ๋ฒ•์œผ๋กœ MinerU ๋ฐ Docling์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • 2025-10-15 ์กฐ์ •๋œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์ง€์›.
  • 2025-08-08 OpenAI์˜ ์ตœ์‹  GPT-5 ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • 2025-08-01 ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ์™€ MCP๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • 2025-05-23 Agent์— Python/JS ์ฝ”๋“œ ์‹คํ–‰๊ธฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • 2025-05-05 ์–ธ์–ด ๊ฐ„ ์ฟผ๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • 2025-03-19 PDF ๋˜๋Š” DOCX ํŒŒ์ผ ๋‚ด์˜ ์ด๋ฏธ์ง€๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์ค‘ ๋ชจ๋“œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • 2024-12-18 DeepDoc์˜ ๋ฌธ์„œ ๋ ˆ์ด์•„์›ƒ ๋ถ„์„ ๋ชจ๋ธ ์—…๊ทธ๋ ˆ์ด๋“œ.
  • 2024-08-22 RAG๋ฅผ ํ†ตํ•ด SQL ๋ฌธ์— ํ…์ŠคํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽ‰ ๊ณ„์† ์ง€์ผœ๋ด ์ฃผ์„ธ์š”

โญ๏ธ์šฐ๋ฆฌ์˜ ์ €์žฅ์†Œ๋ฅผ ์ฆ๊ฒจ์ฐพ๊ธฐ์— ๋“ฑ๋กํ•˜์—ฌ ํฅ๋ฏธ๋กœ์šด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์—…๋ฐ์ดํŠธ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์„ธ์š”! ๋ชจ๋“  ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ฆ‰์‹œ ์•Œ๋ฆผ์„ ๋ฐ›์œผ์„ธ์š”! ๐ŸŒŸ

<div align="center" style="margin-top:20px;margin-bottom:20px;"> </div>

๐ŸŒŸ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿญ "Quality in, quality out"

  • ์‹ฌ์ธต ๋ฌธ์„œ ์ดํ•ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณต์žกํ•œ ํ˜•์‹์˜ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ์—์„œ ์ง€์‹์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋ฌดํ•œํ•œ ํ† ํฐ์—์„œ "๋ฐ์ดํ„ฐ ์†์˜ ๋ฐ”๋Š˜"์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.

๐Ÿฑ ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์˜ chunking

  • ๋˜‘๋˜‘ํ•˜๊ณ  ์„ค๋ช… ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹.
  • ๋‹ค์–‘ํ•œ ํ…œํ”Œ๋ฆฟ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒฑ ํ• ๋ฃจ์‹œ๋„ค์ด์…˜์„ ์ค„์ธ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ

  • ํ…์ŠคํŠธ ์ฒญํ‚น์„ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐœ์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ค‘์š”ํ•œ ์ฐธ๊ณ  ์ž๋ฃŒ์™€ ์ถ”์  ๊ฐ€๋Šฅํ•œ ์ธ์šฉ์„ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜์—ฌ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ต๋ณ€์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€์˜ ํ˜ธํ™˜์„ฑ

  • ์›Œ๋“œ, ์Šฌ๋ผ์ด๋“œ, ์—‘์…€, ํ…์ŠคํŠธ ํŒŒ์ผ, ์ด๋ฏธ์ง€, ์Šค์บ”๋ณธ, ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ, ์›น ํŽ˜์ด์ง€ ๋“ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›€ ์ž๋™ํ™”๋˜๊ณ  ์†์‰ฌ์šด RAG ์›Œํฌํ”Œ๋กœ์šฐ

  • ๊ฐœ์ธ ๋ฐ ๋Œ€๊ทœ๋ชจ ๋น„์ฆˆ๋‹ˆ์Šค์— ๋งž์ถ˜ ํšจ์œจ์ ์ธ RAG ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜.
  • ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ LLM ๋ฐ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ.
  • ๋‹ค์ค‘ ๊ฒ€์ƒ‰๊ณผ ๊ฒฐํ•ฉ๋œ re-ranking.
  • ๋น„์ฆˆ๋‹ˆ์Šค์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง๊ด€์ ์ธ API.

๐Ÿ”Ž ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

<div align="center" style="margin-top:20px;margin-bottom:20px;"> </div>

๐ŸŽฌ ์‹œ์ž‘ํ•˜๊ธฐ

๐Ÿ“ ์‚ฌ์ „ ์ค€๋น„ ์‚ฌํ•ญ

  • CPU >= 4 cores
  • RAM >= 16 GB
  • Disk >= 50 GB
  • Docker >= 24.0.0 & Docker Compose >= v2.26.1
  • gVisor: RAGFlow์˜ ์ฝ”๋“œ ์‹คํ–‰๊ธฐ(์ƒŒ๋“œ๋ฐ•์Šค) ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

[!TIP] ๋กœ์ปฌ ๋จธ์‹ (Windows, Mac, Linux)์— Docker๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, Docker ์—”์ง„ ์„ค์น˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿš€ ์„œ๋ฒ„ ์‹œ์ž‘ํ•˜๊ธฐ

  1. vm.max_map_count๊ฐ€ 262144 ์ด์ƒ์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”:

    vm.max_map_count์˜ ๊ฐ’์„ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜์„ธ์š”:

    bash
    $ sysctl vm.max_map_count
    

    ๋งŒ์•ฝ vm.max_map_count ์ด 262144 ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ๊ฐ’์„ ์Ÿˆ์„ค์ •ํ•˜์„ธ์š”.

    bash
    # ์ด ๊ฒฝ์šฐ์— 262144๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.:
    $ sudo sysctl -w vm.max_map_count=262144
    

    ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์‹œ์Šคํ…œ ์žฌ๋ถ€ํŒ… ํ›„์— ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์˜๊ตฌ์ ์œผ๋กœ ์ ์šฉํ•˜๋ ค๋ฉด /etc/sysctl.conf ํŒŒ์ผ์— vm.max_map_count ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”:

    bash
    vm.max_map_count=262144
    
  2. ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ํ•˜์„ธ์š”:

    bash
    $ git clone https://github.com/infiniflow/ragflow.git
    
  3. ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ Docker ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”:

[!CAUTION] ๋ชจ๋“  Docker ์ด๋ฏธ์ง€๋Š” x86 ํ”Œ๋žซํผ์„ ์œ„ํ•ด ๋นŒ๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ARM64 ํ”Œ๋žซํผ์„ ์œ„ํ•œ Docker ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ARM64 ํ”Œ๋žซํผ์„ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด, ์‹œ์Šคํ…œ๊ณผ ํ˜ธํ™˜๋˜๋Š” Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ด ๊ฐ€์ด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ์„ธ์š”.

์•„๋ž˜ ๋ช…๋ น์–ด๋Š” RAGFlow Docker ์ด๋ฏธ์ง€์˜ v0.25.1 ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ RAGFlow ๋ฒ„์ „์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๋‹ค์Œ ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. v0.25.1๊ณผ ๋‹ค๋ฅธ RAGFlow ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋ฉด, docker/.env ํŒŒ์ผ์—์„œ RAGFLOW_IMAGE ๋ณ€์ˆ˜๋ฅผ ์ ์ ˆํžˆ ์—…๋ฐ์ดํŠธํ•œ ํ›„ docker compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

bash
$ cd ragflow/docker

# git checkout v0.25.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 tagImage size (GB)Has embedding models?Stable?
v0.21.1โ‰ˆ9โœ”๏ธStable release
v0.21.1-slimโ‰ˆ2โŒStable release

v0.22.0๋ถ€ํ„ฐ๋Š” slim ์—๋””์…˜๋งŒ ๋ฐฐํฌํ•˜๋ฉฐ ์ด๋ฏธ์ง€ ํƒœ๊ทธ์— -slim ์ ‘๋ฏธ์‚ฌ๋ฅผ ๋” ์ด์ƒ ๋ถ™์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  1. ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋œ ํ›„ ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”:

    bash
    $ docker logs -f docker-ragflow-cpu-1
    

    ๋‹ค์Œ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋กœ ์‹œ์Šคํ…œ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘๋˜์—ˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:

    bash
         ____   ___    ______ ______ __
        / __ \ /   |  / ____// ____// /____  _      __
       / /_/ // /| | / / __ / /_   / // __ \| | /| / /
      / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
     /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/
    
     * Running on all addresses (0.0.0.0)
    

    ๋งŒ์•ฝ ํ™•์ธ ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋ฐ”๋กœ RAGFlow์— ๋กœ๊ทธ์ธํ•˜๋ฉด, RAGFlow๊ฐ€ ์™„์ „ํžˆ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์—์„œ network abnormal ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์›น ๋ธŒ๋ผ์šฐ์ €์— ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  RAGFlow์— ๋กœ๊ทธ์ธํ•˜์„ธ์š”.

    ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, http://IP_OF_YOUR_MACHINE๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค (ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ์ œ์™ธ). ๊ธฐ๋ณธ HTTP ์„œ๋น„์Šค ํฌํŠธ 80์€ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. service_conf.yaml.template ํŒŒ์ผ์—์„œ ์›ํ•˜๋Š” LLM ํŒฉํ† ๋ฆฌ๋ฅผ user_default_llm์— ์„ ํƒํ•˜๊ณ , API_KEY ํ•„๋“œ๋ฅผ ํ•ด๋‹น API ํ‚ค๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ llm_api_key_setup๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    ์ด์ œ ์‡ผ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค!

๐Ÿ”ง ์„ค์ •

์‹œ์Šคํ…œ ์„ค์ •๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์Œ ํŒŒ์ผ๋“ค์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • .env: SVR_HTTP_PORT, MYSQL_PASSWORD, MINIO_PASSWORD์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • service_conf.yaml.template: ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • docker-compose.yml: ์‹œ์Šคํ…œ์€ docker-compose.yml์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

.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์œผ๋กœ ๋ณ€๊ฒฝํ•˜์„ธ์š”.

๋ชจ๋“  ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์—…๋ฐ์ดํŠธ๋Š” ์ ์šฉ๋˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ ์žฌ๋ถ€ํŒ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

bash
$ docker compose -f docker-compose.yml up -d

Elasticsearch ์—์„œ Infinity ๋กœ ๋ฌธ์„œ ์—”์ง„ ์ „ํ™˜

RAGFlow ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Elasticsearch ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ํ…์ŠคํŠธ ๋ฐ ๋ฒกํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. [Infinity]๋กœ ์ „ํ™˜(https://github.com/infiniflow/infinity/), ๋‹ค์Œ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

  1. ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
    bash
    $docker compose-f docker/docker-compose.yml down -v
    
    Note: -v ๋Š” docker ์ปจํ…Œ์ด๋„ˆ์˜ ๋ณผ๋ฅจ์„ ์‚ญ์ œํ•˜๊ณ  ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šฐ๋ฉฐ, ์ด ์ž‘์—…์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์ง€ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
  2. docker/.env์˜ "DOC_ENGINE" ์„ "infinity" ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ปจํ…Œ์ด๋„ˆ ๋ถ€ํŒ…:
    bash
    $docker compose-f docker/docker-compose.yml up -d
    

    [!WARNING] Linux/arm64 ์‹œ์Šคํ…œ์—์„œ Infinity๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ๊ณต์‹์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿ”ง ์†Œ์Šค ์ฝ”๋“œ๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค

์ด Docker ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋Š” ์•ฝ 1GB์ด๋ฉฐ, ์™ธ๋ถ€ ๋Œ€ํ˜• ๋ชจ๋ธ๊ณผ ์ž„๋ฒ ๋”ฉ ์„œ๋น„์Šค์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

bash
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .

ํ”„๋ก์‹œ ํ™˜๊ฒฝ์ธ ๊ฒฝ์šฐ, ํ”„๋ก์‹œ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๏ผš

bash
docker build --platform linux/amd64 \
  --build-arg http_proxy=http://YOUR_PROXY:PORT \
  --build-arg https_proxy=http://YOUR_PROXY:PORT \
  -f Dockerfile -t infiniflow/ragflow:nightly .

๐Ÿ”จ ์†Œ์Šค ์ฝ”๋“œ๋กœ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  1. uv ์™€ pre-commit ์„ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜, ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒฝ์šฐ ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค:

    bash
    pipx install uv pre-commit
    
  2. ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํด๋ก ํ•˜๊ณ  Python ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

    bash
    git clone https://github.com/infiniflow/ragflow.git
    cd ragflow/
    uv sync --python 3.12 # install RAGFlow dependent python modules
    uv run python3 download_deps.py
    pre-commit install
    
  3. Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜์กด ์„œ๋น„์Šค(MinIO, Elasticsearch, Redis ๋ฐ MySQL)๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

    bash
    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
    
  4. HuggingFace์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, HF_ENDPOINT ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฏธ๋Ÿฌ ์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:

    bash
    export HF_ENDPOINT=https://hf-mirror.com
    
  5. ๋งŒ์•ฝ ์šด์˜ ์ฒด์ œ์— jemalloc์ด ์—†์œผ๋ฉด ๋‹ค์Œ ๋ฐฉ์‹์œผ๋กœ ์„ค์น˜ํ•˜์„ธ์š”:

    bash
    # ubuntu
    sudo apt-get install libjemalloc-dev
    # centos
    sudo yum install jemalloc
    # mac
    sudo brew install jemalloc
    
  6. ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

    bash
    source .venv/bin/activate
    export PYTHONPATH=$(pwd)
    bash docker/launch_backend_service.sh
    
  7. ํ”„๋ก ํŠธ์—”๋“œ ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

    bash
    cd web
    npm install
    
  8. ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

    bash
    npm run dev
    

    ๋‹ค์Œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์‹œ์Šคํ…œ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค:

  9. ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋œ ํ›„ RAGFlow ํ”„๋ก ํŠธ์—”๋“œ ๋ฐ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

    bash
    pkill -f "ragflow_server.py|task_executor.py"
    

๐Ÿ“š ๋ฌธ์„œ

๐Ÿ“œ ๋กœ๋“œ๋งต

RAGFlow ๋กœ๋“œ๋งต 2026์„ ํ™•์ธํ•˜์„ธ์š”.

๐Ÿ„ ์ปค๋ฎค๋‹ˆํ‹ฐ

๐Ÿ™Œ ์ปจํŠธ๋ฆฌ๋ทฐ์…˜

RAGFlow๋Š” ์˜คํ”ˆ์†Œ์Šค ํ˜‘์—…์„ ํ†ตํ•ด ๋ฐœ์ „ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •์‹ ์„ ๋ฐ”ํƒ•์œผ๋กœ, ์šฐ๋ฆฌ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด, ๋จผ์ € ๊ฐ€์ด๋“œ๋ผ์ธ์„ ๊ฒ€ํ† ํ•ด ์ฃผ์„ธ์š”.