| <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> | | |
| </p> | |
| <p align="center"> | |
| <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://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.10.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.10.0"></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/infiniflow/ragflow/assets/12318111/b083d173-dadc-4ea9-bdeb-180d7df514eb" width="1200"/> | |
| </div> | |
| ## ๐ฅ ์ ๋ฐ์ดํธ | |
| - 2024-08-22 RAG๋ฅผ ํตํด SQL ๋ฌธ์ ํ ์คํธ๋ฅผ ์ง์ํฉ๋๋ค. | |
| - 2024-08-02: [graphrag](https://github.com/microsoft/graphrag)์ ๋ง์ธ๋๋งต์์ ์๊ฐ์ ๋ฐ์ GraphRAG๋ฅผ ์ง์ํฉ๋๋ค. | |
| - 2024-07-23: ์ค๋์ค ํ์ผ ๋ถ์์ ์ง์ํฉ๋๋ค. | |
| - 2024-07-21: ๋ ๋ง์ LLMs(LocalAI, OpenRouter, StepFun, Nvidia)๋ฅผ ์ง์ํฉ๋๋ค. | |
| - 2024-07-18: ๊ทธ๋ํ์ ๋ ๋ง์ ๊ตฌ์ฑ์์(Wikipedia, PubMed, Baidu, Duckduckgo)๋ฅผ ์ถ๊ฐํฉ๋๋ค. | |
| - 2024-07-08: [Graph](./graph/README.md)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ํฌํ๋ก์ฐ๋ฅผ ์ง์ํฉ๋๋ค. | |
| - 2024-06-27: Q&A ๋ถ์ ๋ฐฉ๋ฒ์์ Markdown๊ณผ Docx๋ฅผ ์ง์ํฉ๋๋ค. | |
| - 2024-06-27: Docx ํ์ผ์์ ์ด๋ฏธ์ง ์ถ์ถ์ ์ง์ํฉ๋๋ค. | |
| - 2024-06-27: Markdown ํ์ผ์์ ํ ์ถ์ถ์ ์ง์ํฉ๋๋ค. | |
| - 2024-06-06: ๋ํ ์ค์ ์์ ๊ธฐ๋ณธ์ผ๋ก [Self-RAG](https://huggingface.co/papers/2310.11511)๋ฅผ ์ง์ํฉ๋๋ค. | |
| - 2024-05-30: [BCE](https://github.com/netease-youdao/BCEmbedding) ๋ฐ [BGE](https://github.com/FlagOpen/FlagEmbedding) reranker ๋ชจ๋ธ์ ํตํฉํฉ๋๋ค. | |
| - 2024-05-23: ๋ ๋์ ํ ์คํธ ๊ฒ์์ ์ํด [RAPTOR](https://arxiv.org/html/2401.18059v1)๋ฅผ ์ง์ํฉ๋๋ค. | |
| - 2024-05-15: OpenAI GPT-4o๋ฅผ ํตํฉํฉ๋๋ค. | |
| ## ๐ ์ฃผ์ ๊ธฐ๋ฅ | |
| ### ๐ญ **"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 ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ณ ์๋ฒ๋ฅผ ์์ํ์ธ์: | |
| > ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด *dev* ๋ฒ์ ์ RAGFlow Docker ์ด๋ฏธ์ง๊ฐ ์๋์ผ๋ก ๋ค์ด๋ก๋๋ฉ๋๋ค. ํน์ Docker ๋ฒ์ ์ ๋ค์ด๋ก๋ํ๊ณ ์คํํ๋ ค๋ฉด, **docker/.env** ํ์ผ์์ `RAGFLOW_VERSION`์ ์ํ๋ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ ํ, ์๋ฅผ ๋ค์ด `RAGFLOW_VERSION=v0.10.0`๋ก ์ ๋ฐ์ดํธ ํ ๋ค, ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ธ์. | |
| ```bash | |
| $ cd ragflow/docker | |
| $ chmod +x ./entrypoint.sh | |
| $ docker compose up -d | |
| ``` | |
| > ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ ์ฝ 9GB ํฌ๊ธฐ์ด๋ฉฐ ๋ก๋ํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. | |
| 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 anomaly` ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. | |
| 5. ์น ๋ธ๋ผ์ฐ์ ์ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ณ RAGFlow์ ๋ก๊ทธ์ธํ์ธ์. | |
| > ๊ธฐ๋ณธ ์ค์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ, `http://IP_OF_YOUR_MACHINE`๋ง ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค (ํฌํธ ๋ฒํธ๋ ์ ์ธ). ๊ธฐ๋ณธ HTTP ์๋น์ค ํฌํธ `80`์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ผ๋ก ์ฌ์ฉํ ๋ ์๋ตํ ์ ์์ต๋๋ค. | |
| 6. [service_conf.yaml](./docker/service_conf.yaml) ํ์ผ์์ ์ํ๋ 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](./docker/service_conf.yaml): ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. | |
| - [docker-compose.yml](./docker/docker-compose.yml): ์์คํ ์ [docker-compose.yml](./docker/docker-compose.yml)์ ์ฌ์ฉํ์ฌ ์์๋ฉ๋๋ค. | |
| [.env](./docker/.env) ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ด [service_conf.yaml](./docker/service_conf.yaml) ํ์ผ์ ๋ด์ฉ๊ณผ ์ผ์นํ๋๋ก ํด์ผ ํฉ๋๋ค. | |
| > [./docker/README](./docker/README.md) ํ์ผ์๋ ํ๊ฒฝ ์ค์ ๊ณผ ์๋น์ค ๊ตฌ์ฑ์ ๋ํ ์์ธํ ์ค๋ช ์ด ์์ผ๋ฉฐ, [./docker/README](./docker/README.md) ํ์ผ์ ๋์ด๋ ๋ชจ๋ ํ๊ฒฝ ์ค์ ์ด [service_conf.yaml](./docker/service_conf.yaml) ํ์ผ์ ํด๋น ๊ตฌ์ฑ๊ณผ ์ผ์นํ๋๋ก ํด์ผ ํฉ๋๋ค. | |
| ๊ธฐ๋ณธ HTTP ์๋น์ค ํฌํธ(80)๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๋ฉด [docker-compose.yml](./docker/docker-compose.yml) ํ์ผ์์ `80:80`์ `<YOUR_SERVING_PORT>:80`์ผ๋ก ๋ณ๊ฒฝํ์ธ์. | |
| > ๋ชจ๋ ์์คํ ๊ตฌ์ฑ ์ ๋ฐ์ดํธ๋ ์ ์ฉ๋๊ธฐ ์ํด ์์คํ ์ฌ๋ถํ ์ด ํ์ํฉ๋๋ค. | |
| > | |
| > ```bash | |
| > $ docker-compose up -d | |
| > ``` | |
| ## ๐ ๏ธ ์์ค์์ ๋น๋ํ๊ธฐ | |
| Docker ์ด๋ฏธ์ง๋ฅผ ์์ค์์ ๋น๋ํ๋ ค๋ฉด: | |
| ```bash | |
| $ git clone https://github.com/infiniflow/ragflow.git | |
| $ cd ragflow/ | |
| $ docker build -t infiniflow/ragflow:dev . | |
| $ cd ragflow/docker | |
| $ chmod +x ./entrypoint.sh | |
| $ docker compose up -d | |
| ``` | |
| ## ๐ ๏ธ ์์ค์์ ์๋น์ค ์์ํ๊ธฐ | |
| ์๋น์ค๋ฅผ ์์ค์์ ์์ํ๋ ค๋ฉด: | |
| 1. ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํ์ธ์: | |
| ```bash | |
| $ git clone https://github.com/infiniflow/ragflow.git | |
| $ cd ragflow/ | |
| ``` | |
| 2. ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ๊ณ , Anaconda ๋๋ Miniconda๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ์ธ์: | |
| ```bash | |
| $ conda create -n ragflow python=3.11.0 | |
| $ conda activate ragflow | |
| $ pip install -r requirements.txt | |
| ``` | |
| ```bash | |
| # CUDA ๋ฒ์ ์ด 12.0๋ณด๋ค ๋์ ๊ฒฝ์ฐ, ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ถ๊ฐ๋ก ์คํํ์ธ์: | |
| $ pip uninstall -y onnxruntime-gpu | |
| $ pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ | |
| ``` | |
| 3. ์ง์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณต์ฌํ๊ณ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ธ์: | |
| ```bash | |
| # ํ์ด์ฌ ๊ฒฝ๋ก๋ฅผ ๋ฐ์์ต๋๋ค: | |
| $ which python | |
| # RAGFlow ํ๋ก์ ํธ ๊ฒฝ๋ก๋ฅผ ๋ฐ์์ต๋๋ค: | |
| $ pwd | |
| ``` | |
| ```bash | |
| $ cp docker/entrypoint.sh . | |
| $ vi entrypoint.sh | |
| ``` | |
| ```bash | |
| # ์ค์ ์ํฉ์ ๋ง๊ฒ ์ค์ ์กฐ์ ํ๊ธฐ (๋ค์ ๋ ๊ฐ์ export ๋ช ๋ น์ด๋ ์๋ก ์ถ๊ฐ๋์์ต๋๋ค): | |
| # - `which python`์ ๊ฒฐ๊ณผ๋ฅผ `PY`์ ํ ๋นํฉ๋๋ค. | |
| # - `pwd`์ ๊ฒฐ๊ณผ๋ฅผ `PYTHONPATH`์ ํ ๋นํฉ๋๋ค. | |
| # - `LD_LIBRARY_PATH`๊ฐ ์ค์ ๋์ด ์๋ ๊ฒฝ์ฐ ์ฃผ์ ์ฒ๋ฆฌํฉ๋๋ค. | |
| # - ์ ํ ์ฌํญ: Hugging Face ๋ฏธ๋ฌ ์ถ๊ฐ. | |
| PY=${PY} | |
| export PYTHONPATH=${PYTHONPATH} | |
| export HF_ENDPOINT=https://hf-mirror.com | |
| ``` | |
| 4. ๋ค๋ฅธ ์๋น์ค(MinIO, Elasticsearch, Redis, MySQL)๋ฅผ ์์ํ์ธ์: | |
| ```bash | |
| $ cd docker | |
| $ docker compose -f docker-compose-base.yml up -d | |
| ``` | |
| 5. ์ค์ ํ์ผ์ ํ์ธํ์ฌ ๋ค์ ์ฌํญ์ ํ์ธํ์ธ์: | |
| - **docker/.env**์ ์ค์ ์ด **conf/service_conf.yaml**์ ์ค์ ๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. | |
| - **service_conf.yaml**์ ๊ด๋ จ ์๋น์ค์ ๋ํ IP ์ฃผ์์ ํฌํธ๊ฐ ๋ก์ปฌ ๋จธ์ ์ IP ์ฃผ์์ ์ปจํ ์ด๋์์ ๋ ธ์ถ๋ ํฌํธ์ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. | |
| 6. RAGFlow ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์์ํฉ๋๋ค: | |
| ```bash | |
| $ chmod +x ./entrypoint.sh | |
| $ bash ./entrypoint.sh | |
| ``` | |
| 7. ํ๋ก ํธ์๋ ์๋น์ค๋ฅผ ์์ํฉ๋๋ค: | |
| ```bash | |
| $ cd web | |
| $ npm install --registry=https://registry.npmmirror.com --force | |
| $ vim .umirc.ts | |
| # proxy.target์ http://127.0.0.1:9380๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. | |
| $ npm run dev | |
| ``` | |
| 8. ํ๋ก ํธ์๋ ์๋น์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค: | |
| ```bash | |
| $ cd web | |
| $ npm install --registry=https://registry.npmmirror.com --force | |
| $ umi build | |
| $ mkdir -p /ragflow/web | |
| $ cp -r dist /ragflow/web | |
| $ apt install nginx -y | |
| $ cp ../docker/nginx/proxy.conf /etc/nginx | |
| $ cp ../docker/nginx/nginx.conf /etc/nginx | |
| $ cp ../docker/nginx/ragflow.conf /etc/nginx/conf.d | |
| $ systemctl start nginx | |
| ``` | |
| ## ๐ ๋ฌธ์ | |
| - [Quickstart](https://ragflow.io/docs/dev/) | |
| - [User guide](https://ragflow.io/docs/dev/category/user-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๋ ์คํ์์ค ํ์ ์ ํตํด ๋ฐ์ ํฉ๋๋ค. ์ด๋ฌํ ์ ์ ์ ๋ฐํ์ผ๋ก, ์ฐ๋ฆฌ๋ ์ปค๋ฎค๋ํฐ์ ๋ค์ํ ๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค. ์ฐธ์ฌํ๊ณ ์ถ์ผ์๋ค๋ฉด, ๋จผ์ [๊ฐ์ด๋๋ผ์ธ](./docs/references/CONTRIBUTING.md)์ ๊ฒํ ํด ์ฃผ์ธ์. | |