์›๋ฌธ: https://r2r-docs.sciphi.ai/self-hosting/installation/full

์ด ์„ค์น˜ ๊ฐ€์ด๋“œ๋Š” R2R ์ „์ฒด ๋ฒ„์ „์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹จ๋… ๊ฐœ๋ฐœ์ž๋‚˜ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ์ž‘ํ•˜๋Š” ํŒ€์˜ ๊ฒฝ์šฐ, R2R ๋ผ์ดํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ๋Š” Docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ R2R์„ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ์‰ฌ์šด ์‹œ์ž‘ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์‚ฌ์ „ ์ค€๋น„ ์‚ฌํ•ญ

  • ์‹œ์Šคํ…œ์— Docker๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„์ง Docker๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ๊ณต์‹ Docker ์„ค์น˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์„ค์น˜

1. R2R ์ €์žฅ์†Œ ํด๋ก 

Docker compose ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด R2R ์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค.

git clone https://github.com/SciPhi-AI/R2R.git
cd R2R/docker

2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

์ „์ฒด R2R ์„ค์น˜๋Š” ๊ธฐ๋ณธ r2r.toml ๋Œ€์‹  ์‚ฌ์ „ ๋นŒ๋“œ๋œ ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์ธ full.toml์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

env ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

cd env
# ์„ ํ˜ธํ•˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋กœ r2r-full.env ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
sudo nano r2r-full.env

ํ•„์ˆ˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜

๊ตฌ์„ฑ ์„ ํƒ (ํ•˜๋‚˜ ์„ ํƒ)

๋ณ€์ˆ˜์„ค๋ช…๊ธฐ๋ณธ๊ฐ’
R2R_CONFIG_NAME์‚ฌ์ „ ์ •์˜๋œ ๊ตฌ์„ฑ ์‚ฌ์šฉfull (OpenAI)
R2R_CONFIG_PATH์‚ฌ์šฉ์ž ์ •์˜ TOML ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฒฝ๋กœ์—†์Œ

๋กœ์ปฌ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด R2R_CONFIG_NAME=full_ollama๋กœ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.

LLM API ํ‚ค (์ตœ์†Œ ํ•˜๋‚˜ ํ•„์ˆ˜)

์ œ๊ณต์žํ™˜๊ฒฝ ๋ณ€์ˆ˜์‚ฌ์šฉ ์กฐ๊ฑด
OpenAIOPENAI_API_KEYR2R_CONFIG_NAME=full
AnthropicANTHROPIC_API_KEY์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์„ฑ ๋˜๋Š” ๋Ÿฐํƒ€์ž„ ์˜ค๋ฒ„๋ผ์ด๋“œ
OllamaOLLAMA_API_BASER2R_CONFIG_NAME=full_ollama

Ollama์˜ ๊ธฐ๋ณธ๊ฐ’์€ http://host.docker.internal:11434์ž…๋‹ˆ๋‹ค.

์™ธ๋ถ€ ์—์ด์ „ํŠธ ๋„๊ตฌ (์„ ํƒ ์‚ฌํ•ญ)

๋„๊ตฌํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ชฉ์ ์ œ๊ณต์ž ๋งํฌ
web_searchSERPER_API_KEY์›น ๊ฒ€์ƒ‰ ๋„๊ตฌ ํ™œ์„ฑํ™”Serper
web_scrapeFIRECRAWL_API_KEY์›น ์Šคํฌ๋žฉ ๋„๊ตฌ ํ™œ์„ฑํ™”Firecrawl

์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์€ Agentic RAG ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ web_search ๋˜๋Š” web_scrape ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ณ„ํš์ด ์žˆ์„ ๋•Œ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. R2R์€ ๋กœ์ปฌ ๋ฌธ์„œ ์ž‘์—… ์‹œ ์ด ๋ณ€์ˆ˜๋“ค ์—†์ด๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ ๋„๊ตฌ์™€ ํ•จ๊ป˜ R2R์„ ์‹œ์ž‘ํ•  ๋•Œ, ๋‹ค์Œ ๋ณ€์ˆ˜๋“ค์„ ์‹คํ–‰ ๋ช…๋ น์— ํฌํ•จํ•˜์‹ญ์‹œ์˜ค.

์ถ”๊ฐ€ ์˜ต์…˜์€ ์ „์ฒด ๊ตฌ์„ฑ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

# ํด๋ผ์šฐ๋“œ LLM ๋ฐ ์—์ด์ „ํŠธ ๋„๊ตฌ ์‚ฌ์šฉ ์˜ˆ์‹œ
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-...
export SERPER_API_KEY=your_serper_api_key_here
export FIRECRAWL_API_KEY=your_firecrawl_api_key_here
 
COMPOSE_PROFILES=postgres docker compose -f compose.full.yaml up -d

3. ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์„ฑ (์„ ํƒ ์‚ฌํ•ญ)

๋‚ด์žฅ๋œ ์˜ต์…˜ ๋Œ€์‹  ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

  1. user_configs ๋””๋ ‰ํ† ๋ฆฌ์— TOML ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    # user_configs ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
    cd user_configs
     
    # ์ƒˆ ๊ตฌ์„ฑ ํŒŒ์ผ ์ƒ์„ฑ (์˜ˆ: my_config.toml)
    touch my_config.toml
     
    # ๊ตฌ์„ฑ ์„ค์ •์œผ๋กœ ํŒŒ์ผ ํŽธ์ง‘
    nano my_config.toml
  2. r2r-full.env ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ด ๊ตฌ์„ฑ์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    R2R_CONFIG_PATH=/app/user_configs/my_config.toml

R2R_CONFIG_PATH์˜ ๊ฒฝ๋กœ๋Š” ๋กœ์ปฌ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ ์ปจํ…Œ์ด๋„ˆ ๊ฒฝ๋กœ(/app/user_configs/)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •๋œ ๊ตฌ์„ฑ ํŒŒ์ผ์ด user_configs ๋””๋ ‰ํ† ๋ฆฌ์— ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ง€์ •๋œ ๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ ๋ฐ ๊ตฌ์„ฑ ํ…œํ”Œ๋ฆฟ์€ ๊ตฌ์„ฑ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

4. R2R ์„œ๋น„์Šค ์‹œ์ž‘

docker ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

cd ..
docker compose -f compose.full.yaml --profile postgres up -d
# `--profile postgres`๋Š” ์™ธ๋ถ€ Postgres๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. R2R๊ณผ ์ƒํ˜ธ์ž‘์šฉ

Python ๋˜๋Š” JS SDK๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ http://localhost:7273์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ†ตํ•ด R2R๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.

Python SDK๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด:

pip install r2r

๋‹ค์Œ ๋‹จ๊ณ„

R2R์„ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ํ•œ ํ›„:

  1. ์„ค์น˜ ํ™•์ธ: http://localhost:7272/v3/health์—์„œ R2R API์— ์ ‘์†ํ•˜์—ฌ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  2. ๋น ๋ฅธ ์‹œ์ž‘: R2R ๋น ๋ฅธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ผ ์ฒซ ๋ฒˆ์งธ RAG ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.
  3. ์‹ฌ์ธต ํŠœํ† ๋ฆฌ์–ผ: ๋” ํฌ๊ด„์ ์ธ ์ดํ•ด๋ฅผ ์œ„ํ•ด R2R ์›Œํฌ์Šค๋ฃจ๋ฅผ ์ง„ํ–‰ํ•˜์‹ญ์‹œ์˜ค.
  4. ์„ค์ • ์‚ฌ์šฉ์ž ์ •์˜: R2R ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค.

์„ค์น˜ ๋˜๋Š” ์„ค์ • ์ค‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, Discord ์ปค๋ฎค๋‹ˆํ‹ฐ ๋˜๋Š” GitHub ์ €์žฅ์†Œ๋ฅผ ํ†ตํ•ด ๋„์›€์„ ์š”์ฒญํ•˜์‹ญ์‹œ์˜ค.