ragflow / README_ko.md
Kevin Hu
update doc for release (#2071)
b71a073
|
raw
history blame
13.6 kB

English | ็ฎ€ไฝ“ไธญๆ–‡ | ๆ—ฅๆœฌ่ชž | ํ•œ๊ตญ์–ด |

Latest Release Static Badge docker pull infiniflow/ragflow:v0.10.0 license

Document | Roadmap | Twitter | Discord | Demo

๐Ÿ’ก RAGFlow๋ž€?

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

๐ŸŽฎ ๋ฐ๋ชจ

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

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

  • 2024-08-22 RAG๋ฅผ ํ†ตํ•ด SQL ๋ฌธ์— ํ…์ŠคํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-08-02: graphrag์™€ ๋งˆ์ธ๋“œ๋งต์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ GraphRAG๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-07-23: ์˜ค๋””์˜ค ํŒŒ์ผ ๋ถ„์„์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-07-21: ๋” ๋งŽ์€ LLMs(LocalAI, OpenRouter, StepFun, Nvidia)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-07-18: ๊ทธ๋ž˜ํ”„์— ๋” ๋งŽ์€ ๊ตฌ์„ฑ์š”์†Œ(Wikipedia, PubMed, Baidu, Duckduckgo)๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-07-08: Graph๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-06-27: Q&A ๋ถ„์„ ๋ฐฉ๋ฒ•์—์„œ Markdown๊ณผ Docx๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-06-27: Docx ํŒŒ์ผ์—์„œ ์ด๋ฏธ์ง€ ์ถ”์ถœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-06-27: Markdown ํŒŒ์ผ์—์„œ ํ‘œ ์ถ”์ถœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-06-06: ๋Œ€ํ™” ์„ค์ •์—์„œ ๊ธฐ๋ณธ์œผ๋กœ Self-RAG๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-05-30: BCE ๋ฐ BGE reranker ๋ชจ๋ธ์„ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  • 2024-05-23: ๋” ๋‚˜์€ ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด RAPTOR๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • 2024-05-15: OpenAI GPT-4o๋ฅผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

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

๐Ÿญ "Quality in, quality out"

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

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

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

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

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

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

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

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

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

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

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

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

  • CPU >= 4 cores
  • RAM >= 16 GB
  • Disk >= 50 GB
  • Docker >= 24.0.0 & Docker Compose >= v2.26.1

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

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

  1. 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
    
  2. ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ํ•˜์„ธ์š”:

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

    ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด dev ๋ฒ„์ „์˜ RAGFlow Docker ์ด๋ฏธ์ง€๊ฐ€ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ํŠน์ • Docker ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ ค๋ฉด, docker/.env ํŒŒ์ผ์—์„œ RAGFLOW_VERSION์„ ์›ํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„, ์˜ˆ๋ฅผ ๋“ค์–ด RAGFLOW_VERSION=v0.10.0๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ๋’ค, ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

    $ cd ragflow/docker
    $ chmod +x ./entrypoint.sh
    $ docker compose up -d
    

    ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋Š” ์•ฝ 9GB ํฌ๊ธฐ์ด๋ฉฐ ๋กœ๋“œํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

    $ docker logs -f ragflow-server
    

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

        ____                 ______ __
       / __ \ ____ _ ____ _ / ____// /____  _      __
      / /_/ // __ `// __ `// /_   / // __ \| | /| / /
     / _, _// /_/ // /_/ // __/  / // /_/ /| |/ |/ /
    /_/ |_| \__,_/ \__, //_/    /_/ \____/ |__/|__/
                  /____/
    
     * 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 ํŒŒ์ผ์—์„œ ์›ํ•˜๋Š” LLM ํŒฉํ† ๋ฆฌ๋ฅผ user_default_llm์— ์„ ํƒํ•˜๊ณ , API_KEY ํ•„๋“œ๋ฅผ ํ•ด๋‹น API ํ‚ค๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.

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

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

๐Ÿ”ง ์„ค์ •

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

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

.env ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด service_conf.yaml ํŒŒ์ผ์˜ ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

./docker/README ํŒŒ์ผ์—๋Š” ํ™˜๊ฒฝ ์„ค์ •๊ณผ ์„œ๋น„์Šค ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์ด ์žˆ์œผ๋ฉฐ, ./docker/README ํŒŒ์ผ์— ๋‚˜์—ด๋œ ๋ชจ๋“  ํ™˜๊ฒฝ ์„ค์ •์ด service_conf.yaml ํŒŒ์ผ์˜ ํ•ด๋‹น ๊ตฌ์„ฑ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ HTTP ์„œ๋น„์Šค ํฌํŠธ(80)๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด docker-compose.yml ํŒŒ์ผ์—์„œ 80:80์„ <YOUR_SERVING_PORT>:80์œผ๋กœ ๋ณ€๊ฒฝํ•˜์„ธ์š”.

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

$ docker-compose up -d

๐Ÿ› ๏ธ ์†Œ์Šค์—์„œ ๋นŒ๋“œํ•˜๊ธฐ

Docker ์ด๋ฏธ์ง€๋ฅผ ์†Œ์Šค์—์„œ ๋นŒ๋“œํ•˜๋ ค๋ฉด:

$ 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. ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ํ•˜์„ธ์š”:

    $ git clone https://github.com/infiniflow/ragflow.git
    $ cd ragflow/
    
  2. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๊ณ , Anaconda ๋˜๋Š” Miniconda๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”:

    $ conda create -n ragflow python=3.11.0
    $ conda activate ragflow
    $ pip install -r requirements.txt
    
    # 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. ์ง„์ž… ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์„ธ์š”:

    # ํŒŒ์ด์ฌ ๊ฒฝ๋กœ๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค:
    $ which python
    # RAGFlow ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค:
    $ pwd
    
    $ cp docker/entrypoint.sh .
    $ vi entrypoint.sh
    
    # ์‹ค์ œ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์„ค์ • ์กฐ์ •ํ•˜๊ธฐ (๋‹ค์Œ ๋‘ ๊ฐœ์˜ 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)๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”:

    $ cd docker
    $ docker compose -f docker-compose-base.yml up -d 
    
  5. ์„ค์ • ํŒŒ์ผ์„ ํ™•์ธํ•˜์—ฌ ๋‹ค์Œ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜์„ธ์š”:

  • docker/.env์˜ ์„ค์ •์ด conf/service_conf.yaml์˜ ์„ค์ •๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • service_conf.yaml์˜ ๊ด€๋ จ ์„œ๋น„์Šค์— ๋Œ€ํ•œ IP ์ฃผ์†Œ์™€ ํฌํŠธ๊ฐ€ ๋กœ์ปฌ ๋จธ์‹ ์˜ IP ์ฃผ์†Œ์™€ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋…ธ์ถœ๋œ ํฌํŠธ์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  1. RAGFlow ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

    $ chmod +x ./entrypoint.sh
    $ bash ./entrypoint.sh
    
  2. ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

    $ cd web
    $ npm install --registry=https://registry.npmmirror.com --force
    $ vim .umirc.ts
    # proxy.target์„ http://127.0.0.1:9380๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
    $ npm run dev 
    
  3. ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค:

    $ 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
    

๐Ÿ“š ๋ฌธ์„œ

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

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

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

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

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