ragflow / README_ko.md
writinwaters
Updated RAGFlow edition descriptions (#4001)
01d7cd1
|
raw
history blame
14.3 kB
<div align="center">
<a href="https://demo.ragflow.io/">
<img src="web/src/assets/logo-with-text.png" width="520" alt="ragflow logo">
</a>
</div>
<p align="center">
<a href="./README.md">English</a> |
<a href="./README_zh.md">็ฎ€ไฝ“ไธญๆ–‡</a> |
<a href="./README_ja.md">ๆ—ฅๆœฌ่ชž</a> |
<a href="./README_ko.md">ํ•œ๊ตญ์–ด</a> |
<a href="./README_id.md">Bahasa Indonesia</a>
</p>
<p align="center">
<a href="https://x.com/intent/follow?screen_name=infiniflowai" target="_blank">
<img src="https://img.shields.io/twitter/follow/infiniflow?logo=X&color=%20%23f5f5f5" alt="follow on X(Twitter)">
</a>
<a href="https://demo.ragflow.io" target="_blank">
<img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
</a>
<a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
<img src="https://img.shields.io/badge/docker_pull-ragflow:v0.14.1-brightgreen" alt="docker pull infiniflow/ragflow:v0.14.1">
</a>
<a href="https://github.com/infiniflow/ragflow/releases/latest">
<img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
</a>
<a href="https://github.com/infiniflow/ragflow/blob/main/LICENSE">
<img height="21" src="https://img.shields.io/badge/License-Apache--2.0-ffffff?labelColor=d4eaf7&color=2e6cc4" alt="license">
</a>
</p>
<h4 align="center">
<a href="https://ragflow.io/docs/dev/">Document</a> |
<a href="https://github.com/infiniflow/ragflow/issues/162">Roadmap</a> |
<a href="https://twitter.com/infiniflowai">Twitter</a> |
<a href="https://discord.gg/4XxujFgUN7">Discord</a> |
<a href="https://demo.ragflow.io">Demo</a>
</h4>
## ๐Ÿ’ก RAGFlow๋ž€?
[RAGFlow](https://ragflow.io/)๋Š” ์‹ฌ์ธต ๋ฌธ์„œ ์ดํ•ด์— ๊ธฐ๋ฐ˜ํ•œ ์˜คํ”ˆ์†Œ์Šค RAG (Retrieval-Augmented Generation) ์—”์ง„์ž…๋‹ˆ๋‹ค. ์ด ์—”์ง„์€ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ •ํ™•ํ•œ ์งˆ๋ฌธ ์‘๋‹ต ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ๋ณต์žกํ•œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ์—์„œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ์ฒ˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ์ธ์šฉ์„ ํ†ตํ•ด ์ด๋ฅผ ๋’ท๋ฐ›์นจํ•ฉ๋‹ˆ๋‹ค. RAGFlow๋Š” ๊ทœ๋ชจ์— ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๊ธฐ์—…์— ์ตœ์ ํ™”๋œ RAG ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
## ๐ŸŽฎ ๋ฐ๋ชจ
๋ฐ๋ชจ๋ฅผ [https://demo.ragflow.io](https://demo.ragflow.io)์—์„œ ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”.
<div align="center" style="margin-top:20px;margin-bottom:20px;">
<img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
<img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
</div>
## ๐Ÿ”ฅ ์—…๋ฐ์ดํŠธ
- 2024-12-04 ์ง€์‹๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ํŽ˜์ด์ง€๋žญํฌ ์ ์ˆ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
- 2024-11-22 ์—์ด์ „ํŠธ์˜ ๋ณ€์ˆ˜ ์ •์˜ ๋ฐ ์‚ฌ์šฉ์„ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
- 2024-11-01 ํŒŒ์‹ฑ๋œ ์ฒญํฌ์— ํ‚ค์›Œ๋“œ ์ถ”์ถœ ๋ฐ ๊ด€๋ จ ์งˆ๋ฌธ ์ƒ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์žฌํ˜„์œจ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
- 2024-08-22 RAG๋ฅผ ํ†ตํ•ด SQL ๋ฌธ์— ํ…์ŠคํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
- 2024-08-02: [graphrag](https://github.com/microsoft/graphrag)์™€ ๋งˆ์ธ๋“œ๋งต์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ GraphRAG๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
## ๐ŸŽ‰ ๊ณ„์† ์ง€์ผœ๋ด ์ฃผ์„ธ์š”
โญ๏ธ์šฐ๋ฆฌ์˜ ์ €์žฅ์†Œ๋ฅผ ์ฆ๊ฒจ์ฐพ๊ธฐ์— ๋“ฑ๋กํ•˜์—ฌ ํฅ๋ฏธ๋กœ์šด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์—…๋ฐ์ดํŠธ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์„ธ์š”! ๋ชจ๋“  ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ฆ‰์‹œ ์•Œ๋ฆผ์„ ๋ฐ›์œผ์„ธ์š”! ๐ŸŒŸ
<div align="center" style="margin-top:20px;margin-bottom:20px;">
<img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
</div>
## ๐ŸŒŸ ์ฃผ์š” ๊ธฐ๋Šฅ
### ๐Ÿญ **"Quality in, quality out"**
- [์‹ฌ์ธต ๋ฌธ์„œ ์ดํ•ด](./deepdoc/README.md)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณต์žกํ•œ ํ˜•์‹์˜ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ์—์„œ ์ง€์‹์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
- ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋ฌดํ•œํ•œ ํ† ํฐ์—์„œ "๋ฐ์ดํ„ฐ ์†์˜ ๋ฐ”๋Š˜"์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.
### ๐Ÿฑ **ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์˜ chunking**
- ๋˜‘๋˜‘ํ•˜๊ณ  ์„ค๋ช… ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹.
- ๋‹ค์–‘ํ•œ ํ…œํ”Œ๋ฆฟ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
### ๐ŸŒฑ **ํ• ๋ฃจ์‹œ๋„ค์ด์…˜์„ ์ค„์ธ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ**
- ํ…์ŠคํŠธ ์ฒญํ‚น์„ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐœ์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
- ์ค‘์š”ํ•œ ์ฐธ๊ณ  ์ž๋ฃŒ์™€ ์ถ”์  ๊ฐ€๋Šฅํ•œ ์ธ์šฉ์„ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜์—ฌ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ต๋ณ€์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
### ๐Ÿ” **๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€์˜ ํ˜ธํ™˜์„ฑ**
- ์›Œ๋“œ, ์Šฌ๋ผ์ด๋“œ, ์—‘์…€, ํ…์ŠคํŠธ ํŒŒ์ผ, ์ด๋ฏธ์ง€, ์Šค์บ”๋ณธ, ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ, ์›น ํŽ˜์ด์ง€ ๋“ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
### ๐Ÿ›€ **์ž๋™ํ™”๋˜๊ณ  ์†์‰ฌ์šด RAG ์›Œํฌํ”Œ๋กœ์šฐ**
- ๊ฐœ์ธ ๋ฐ ๋Œ€๊ทœ๋ชจ ๋น„์ฆˆ๋‹ˆ์Šค์— ๋งž์ถ˜ ํšจ์œจ์ ์ธ RAG ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜.
- ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ LLM ๋ฐ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ.
- ๋‹ค์ค‘ ๊ฒ€์ƒ‰๊ณผ ๊ฒฐํ•ฉ๋œ re-ranking.
- ๋น„์ฆˆ๋‹ˆ์Šค์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง๊ด€์ ์ธ API.
## ๐Ÿ”Ž ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜
<div align="center" style="margin-top:20px;margin-bottom:20px;">
<img src="https://github.com/infiniflow/ragflow/assets/12318111/d6ac5664-c237-4200-a7c2-a4a00691b485" width="1000"/>
</div>
## ๐ŸŽฌ ์‹œ์ž‘ํ•˜๊ธฐ
### ๐Ÿ“ ์‚ฌ์ „ ์ค€๋น„ ์‚ฌํ•ญ
- CPU >= 4 cores
- RAM >= 16 GB
- Disk >= 50 GB
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
> ๋กœ์ปฌ ๋จธ์‹ (Windows, Mac, Linux)์— Docker๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, [Docker ์—”์ง„ ์„ค์น˜]((https://docs.docker.com/engine/install/))๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
### ๐Ÿš€ ์„œ๋ฒ„ ์‹œ์ž‘ํ•˜๊ธฐ
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 ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”:
> ์•„๋ž˜ ๋ช…๋ น์–ด๋Š” RAGFlow Docker ์ด๋ฏธ์ง€์˜ v0.14.1-slim ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ RAGFlow ๋ฒ„์ „์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๋‹ค์Œ ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. v0.14.1-slim๊ณผ ๋‹ค๋ฅธ RAGFlow ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋ฉด, docker/.env ํŒŒ์ผ์—์„œ RAGFLOW_IMAGE ๋ณ€์ˆ˜๋ฅผ ์ ์ ˆํžˆ ์—…๋ฐ์ดํŠธํ•œ ํ›„ docker compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ „์ฒด ๋ฒ„์ „์ธ v0.14.1์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋ฉด RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.1๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
```bash
$ cd ragflow
$ docker compose -f docker/docker-compose.yml up -d
```
| RAGFlow image tag | Image size (GB) | Has embedding models? | Stable? |
| ----------------- | --------------- | --------------------- | ------------------------ |
| v0.14.1 | &approx;9 | :heavy_check_mark: | Stable release |
| v0.14.1-slim | &approx;2 | โŒ | Stable release |
| v0.15.0-dev1 | &approx;9 | :heavy_check_mark: | *Unstable* beta release |
| v0.15.0-dev1-slim | &approx;2 | โŒ | *Unstable* beta release |
| nightly | &approx;9 | :heavy_check_mark: | *Unstable* nightly build |
| nightly-slim | &approx;2 | โŒ | *Unstable* nightly build |
4. ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋œ ํ›„ ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”:
```bash
$ docker logs -f ragflow-server
```
_๋‹ค์Œ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋กœ ์‹œ์Šคํ…œ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘๋˜์—ˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:_
```bash
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:9380
* Running on http://x.x.x.x:9380
INFO:werkzeug:Press CTRL+C to quit
```
> ๋งŒ์•ฝ ํ™•์ธ ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋ฐ”๋กœ RAGFlow์— ๋กœ๊ทธ์ธํ•˜๋ฉด, RAGFlow๊ฐ€ ์™„์ „ํžˆ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์—์„œ `network anormal` ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
5. ์›น ๋ธŒ๋ผ์šฐ์ €์— ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  RAGFlow์— ๋กœ๊ทธ์ธํ•˜์„ธ์š”.
> ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, `http://IP_OF_YOUR_MACHINE`๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค (ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ์ œ์™ธ). ๊ธฐ๋ณธ HTTP ์„œ๋น„์Šค ํฌํŠธ `80`์€ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
6. [service_conf.yaml.template](./docker/service_conf.yaml.template) ํŒŒ์ผ์—์„œ ์›ํ•˜๋Š” LLM ํŒฉํ† ๋ฆฌ๋ฅผ `user_default_llm`์— ์„ ํƒํ•˜๊ณ , `API_KEY` ํ•„๋“œ๋ฅผ ํ•ด๋‹น API ํ‚ค๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.
> ์ž์„ธํ•œ ๋‚ด์šฉ์€ [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
_์ด์ œ ์‡ผ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค!_
## ๐Ÿ”ง ์„ค์ •
์‹œ์Šคํ…œ ์„ค์ •๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์Œ ํŒŒ์ผ๋“ค์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:
- [.env](./docker/.env): `SVR_HTTP_PORT`, `MYSQL_PASSWORD`, `MINIO_PASSWORD`์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
- [service_conf.yaml.template](./docker/service_conf.yaml.template): ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
- [docker-compose.yml](./docker/docker-compose.yml): ์‹œ์Šคํ…œ์€ [docker-compose.yml](./docker/docker-compose.yml)์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
[.env](./docker/.env) ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด [service_conf.yaml.template](./docker/service_conf.yaml.template) ํŒŒ์ผ์˜ ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
> [./docker/README](./docker/README.md) ํŒŒ์ผ ./docker/README์€ service_conf.yaml.template ํŒŒ์ผ์—์„œ ${ENV_VARS}๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ์„ค์ •๊ณผ ์„œ๋น„์Šค ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ HTTP ์„œ๋น„์Šค ํฌํŠธ(80)๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด [docker-compose.yml](./docker/docker-compose.yml) ํŒŒ์ผ์—์„œ `80:80`์„ `<YOUR_SERVING_PORT>:80`์œผ๋กœ ๋ณ€๊ฒฝํ•˜์„ธ์š”.
> ๋ชจ๋“  ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์—…๋ฐ์ดํŠธ๋Š” ์ ์šฉ๋˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ ์žฌ๋ถ€ํŒ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
>
> ```bash
> $ docker compose -f docker/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
```
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 --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
```
## ๐Ÿ”ง ์†Œ์Šค ์ฝ”๋“œ๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค(์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ํฌํ•จ)
์ด Docker์˜ ํฌ๊ธฐ๋Š” ์•ฝ 9GB์ด๋ฉฐ, ์ด๋ฏธ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์™ธ๋ถ€ ๋Œ€ํ˜• ๋ชจ๋ธ ์„œ๋น„์Šค์—๋งŒ ์˜์กดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
```bash
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build -f Dockerfile -t infiniflow/ragflow:nightly .
```
## ๐Ÿ”จ ์†Œ์Šค ์ฝ”๋“œ๋กœ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
1. Poetry๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒฝ์šฐ ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค:
```bash
pipx install poetry
export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
```
2. ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํด๋ก ํ•˜๊ณ  Python ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:
```bash
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
~/.local/bin/poetry install --sync --no-root # install RAGFlow dependent python modules
```
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
```
4. HuggingFace์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, `HF_ENDPOINT` ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฏธ๋Ÿฌ ์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:
```bash
export HF_ENDPOINT=https://hf-mirror.com
```
5. ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:
```bash
source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
```
6. ํ”„๋ก ํŠธ์—”๋“œ ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:
```bash
cd web
npm install --force
```
7. ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:
```bash
npm run dev
```
_๋‹ค์Œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์‹œ์Šคํ…œ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค:_
![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
## ๐Ÿ“š ๋ฌธ์„œ
- [Quickstart](https://ragflow.io/docs/dev/)
- [User guide](https://ragflow.io/docs/dev/category/guides)
- [References](https://ragflow.io/docs/dev/category/references)
- [FAQ](https://ragflow.io/docs/dev/faq)
## ๐Ÿ“œ ๋กœ๋“œ๋งต
[RAGFlow ๋กœ๋“œ๋งต 2024](https://github.com/infiniflow/ragflow/issues/162)์„ ํ™•์ธํ•˜์„ธ์š”.
## ๐Ÿ„ ์ปค๋ฎค๋‹ˆํ‹ฐ
- [Discord](https://discord.gg/4XxujFgUN7)
- [Twitter](https://twitter.com/infiniflowai)
- [GitHub Discussions](https://github.com/orgs/infiniflow/discussions)
## ๐Ÿ™Œ ์ปจํŠธ๋ฆฌ๋ทฐ์…˜
RAGFlow๋Š” ์˜คํ”ˆ์†Œ์Šค ํ˜‘์—…์„ ํ†ตํ•ด ๋ฐœ์ „ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •์‹ ์„ ๋ฐ”ํƒ•์œผ๋กœ, ์šฐ๋ฆฌ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด, ๋จผ์ € [๊ฐ€์ด๋“œ๋ผ์ธ](./CONTRIBUTING.md)์„ ๊ฒ€ํ† ํ•ด ์ฃผ์„ธ์š”.