์๋ฌธ: 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 ํค (์ต์ ํ๋ ํ์)
์ ๊ณต์ | ํ๊ฒฝ ๋ณ์ | ์ฌ์ฉ ์กฐ๊ฑด |
---|---|---|
OpenAI | OPENAI_API_KEY | R2R_CONFIG_NAME=full |
Anthropic | ANTHROPIC_API_KEY | ์ฌ์ฉ์ ์ ์ ๊ตฌ์ฑ ๋๋ ๋ฐํ์ ์ค๋ฒ๋ผ์ด๋ |
Ollama | OLLAMA_API_BASE | R2R_CONFIG_NAME=full_ollama |
Ollama์ ๊ธฐ๋ณธ๊ฐ์
http://host.docker.internal:11434
์ ๋๋ค.
์ธ๋ถ ์์ด์ ํธ ๋๊ตฌ (์ ํ ์ฌํญ)
๋๊ตฌ | ํ๊ฒฝ ๋ณ์ | ๋ชฉ์ | ์ ๊ณต์ ๋งํฌ |
---|---|---|---|
web_search | SERPER_API_KEY | ์น ๊ฒ์ ๋๊ตฌ ํ์ฑํ | Serper |
web_scrape | FIRECRAWL_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. ์ฌ์ฉ์ ์ ์ ๊ตฌ์ฑ (์ ํ ์ฌํญ)
๋ด์ฅ๋ ์ต์ ๋์ ์ฌ์ฉ์ ์ ์ ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
-
user_configs
๋๋ ํ ๋ฆฌ์ TOML ๊ตฌ์ฑ ํ์ผ์ ์์ฑํฉ๋๋ค.# user_configs ๋๋ ํ ๋ฆฌ๋ก ์ด๋ cd user_configs # ์ ๊ตฌ์ฑ ํ์ผ ์์ฑ (์: my_config.toml) touch my_config.toml # ๊ตฌ์ฑ ์ค์ ์ผ๋ก ํ์ผ ํธ์ง nano my_config.toml
-
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์ ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ ํ:
- ์ค์น ํ์ธ: http://localhost:7272/v3/health์์ R2R API์ ์ ์ํ์ฌ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์คํ๋๋์ง ํ์ธํ์ญ์์ค.
- ๋น ๋ฅธ ์์: R2R ๋น ๋ฅธ ์์ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ RAG ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ํ์ญ์์ค.
- ์ฌ์ธต ํํ ๋ฆฌ์ผ: ๋ ํฌ๊ด์ ์ธ ์ดํด๋ฅผ ์ํด R2R ์ํฌ์ค๋ฃจ๋ฅผ ์งํํ์ญ์์ค.
- ์ค์ ์ฌ์ฉ์ ์ ์: R2R ์์คํ ์ ๊ตฌ์ฑํ์ญ์์ค.
์ค์น ๋๋ ์ค์ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด, Discord ์ปค๋ฎค๋ํฐ ๋๋ GitHub ์ ์ฅ์๋ฅผ ํตํด ๋์์ ์์ฒญํ์ญ์์ค.