๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿ”  LibreTranslate Integration

๊ฒฝ๊ณ 

์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ๋กœ ์ œ๊ณต๋˜๋ฉฐ Open WebUI ํŒ€์—์„œ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž์˜ ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋งž์ถฐ Open WebUI๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ์˜ˆ์‹œ๋กœ์„œ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ๊ธฐ์—ฌ ํŠœํ† ๋ฆฌ์–ผ์„ ํ™•์ธํ•ด๋ณด์„ธ์š”.

๊ฐœ์š”โ€‹

LibreTranslate๋Š” ํญ๋„“์€ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๊ณ„ ๋ฒˆ์—ญ API์ž…๋‹ˆ๋‹ค. LibreTranslate๋Š” ์ž์ฒด ํ˜ธ์ŠคํŒ…๋˜๊ณ , ์˜คํ”„๋ผ์ธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์„ค์ •์ด ์‰ฌ์šฐ๋ฉฐ, ๋‹ค๋ฅธ API์™€ ๋‹ฌ๋ฆฌ Google์ด๋‚˜ Azure ๊ฐ™์€ ๋…์  ์ œ๊ณต์—…์ฒด์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋ฒˆ์—ญ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹ , ๋ฒˆ์—ญ ์—”์ง„์€ ์˜คํ”ˆ ์†Œ์Šค Argos Translate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. LibreTranslate๋ฅผ Open WebUI์™€ ํ†ตํ•ฉํ•˜์—ฌ ๊ธฐ๊ณ„ ๋ฒˆ์—ญ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” Docker์—์„œ LibreTranslate๋ฅผ ์„ค์ •ํ•˜๊ณ  Open WebUI ๋‚ด์—์„œ ํ†ตํ•ฉ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Docker์—์„œ LibreTranslate ์„ค์ •ํ•˜๊ธฐโ€‹

LibreTranslate๋ฅผ Docker์— ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”:

1๋‹จ๊ณ„: Docker Compose ํŒŒ์ผ ์ƒ์„ฑโ€‹

์„ ํƒํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— docker-compose.yml์ด๋ผ๋Š” ์ƒˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์„ธ์š”. ํŒŒ์ผ์— ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

services:
libretranslate:
container_name: libretranslate
image: libretranslate/libretranslate:v1.6.0
restart: unless-stopped
ports:
- "5000:5000"
env_file:
- stack.env
volumes:
- libretranslate_api_keys:/app/db
- libretranslate_models:/home/libretranslate/.local:rw
tty: true
stdin_open: true
healthcheck:
test: [CMD-SHELL, ./venv/bin/python scripts/healthcheck.py]

volumes:
libretranslate_models:
libretranslate_api_keys:

2๋‹จ๊ณ„: stack.env ํŒŒ์ผ ์ƒ์„ฑโ€‹

docker-compose.yml ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ„ฐ๋ฆฌ์— stack.env๋ผ๋Š” ์ƒˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์„ธ์š”. ํŒŒ์ผ์— ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

# LibreTranslate
LT_DEBUG="false"
LT_UPDATE_MODELS="true"
LT_SSL="false"
LT_SUGGESTIONS="false"
LT_METRICS="false"
LT_HOST="0.0.0.0"

LT_API_KEYS="false"

LT_THREADS="12"
LT_FRONTEND_TIMEOUT="2000"

3๋‹จ๊ณ„: Docker Compose ํŒŒ์ผ ์‹คํ–‰โ€‹

LibreTranslate ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”:

docker-compose up -d

์ด ๋ช…๋ น์œผ๋กœ LibreTranslate ์„œ๋น„์Šค๊ฐ€ ๋ถ„๋ฆฌ ๋ชจ๋“œ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

Open WebUI์—์„œ ํ†ตํ•ฉ ๊ตฌ์„ฑํ•˜๊ธฐโ€‹

Docker์—์„œ LibreTranslate๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ, Open WebUI ๋‚ด์—์„œ ํ†ตํ•ฉ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ํ†ตํ•ฉ์ž…๋‹ˆ๋‹ค:

ํ•„์š”์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํ†ตํ•ฉ์„ ์„ ํƒํ•˜๊ณ  ์ด๋ฅผ Open WebUI์— ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”.

LibreTranslate ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ๊ธฐ๋Šฅ์ด ์ง€์›ํ•˜๋Š” ์–ธ์–ด: LibreTranslate ๋‚ด์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์–ธ์–ด๋ฅผ ์—ฌ๊ธฐ์— ๋‚˜์—ดํ–ˆ์Šต๋‹ˆ๋‹ค:

์•Œ๋ฐ”๋‹ˆ์•„์–ด, ์•„๋ž์–ด, ์•„์ œ๋ฅด๋ฐ”์ด์ž”์–ด, ๋ฒต๊ณจ์–ด, ๋ถˆ๊ฐ€๋ฆฌ์•„์–ด, ์นดํƒˆ๋กœ๋‹ˆ์•„์–ด, ๋ฐœ๋ Œ์‹œ์•„์–ด, ์ค‘๊ตญ์–ด, ์ฒด์ฝ”์–ด, ๋ด๋งˆํฌ์–ด, ๋„ค๋œ๋ž€๋“œ์–ด, ์˜์–ด, ํ”Œ๋ ˆ๋ฏธ์‰ฌ์–ด, ์—์ŠคํŽ˜๋ž€ํ† ์–ด, ์—์Šคํ† ๋‹ˆ์•„์–ด, ํ•€๋ž€๋“œ์–ด, ํ”„๋ž‘์Šค์–ด, ๋…์ผ์–ด, ๊ทธ๋ฆฌ์Šค์–ด, ํžˆ๋ธŒ๋ฆฌ์–ด, ํžŒ๋””์–ด, ํ—๊ฐ€๋ฆฌ์–ด, ์ธ๋„๋„ค์‹œ์•„์–ด, ์•„์ผ๋žœ๋“œ์–ด, ์ดํƒˆ๋ฆฌ์•„์–ด, ์ผ๋ณธ์–ด, ํ•œ๊ตญ์–ด, ๋ผํŠธ๋น„์•„์–ด, ๋ฆฌํˆฌ์•„๋‹ˆ์•„์–ด, ๋ง๋ ˆ์ด์–ด, ํŽ˜๋ฅด์‹œ์•„์–ด, ํด๋ž€๋“œ์–ด, ํฌ๋ฅดํˆฌ๊ฐˆ์–ด, ๋ฃจ๋งˆ๋‹ˆ์•„์–ด, ๋ชฐ๋‹ค๋น„์•„์–ด, ๋ชฐ๋„๋ฐ”์–ด, ๋Ÿฌ์‹œ์•„์–ด, ์Šฌ๋กœ๋ฐ”ํ‚ค์•„์–ด, ์Šฌ๋กœ๋ฒ ๋‹ˆ์•„์–ด, ์ŠคํŽ˜์ธ์–ด, ์นด์Šคํ‹ฐ์•ผ์–ด, ์Šค์›จ๋ด์–ด, ํƒ€๊ฐˆ๋กœ๊ทธ์–ด, ํƒœ๊ตญ์–ด, ํ„ฐํ‚ค์–ด, ์šฐํฌ๋ผ์ด๋‚˜์–ด, ์šฐ๋ฅด๋‘์–ด

๋ฌธ์ œ ํ•ด๊ฒฐโ€‹

  • LibreTranslate ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜์„ธ์š”.
  • Docker ๊ตฌ์„ฑ์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜์„ธ์š”.
  • LibreTranslate ๋กœ๊ทธ์—์„œ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

ํ†ตํ•ฉ์˜ ์ด์ โ€‹

Open WebUI์™€ LibreTranslate๋ฅผ ํ†ตํ•ฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ๋‹ค์ˆ˜์˜ ์–ธ์–ด์— ๋Œ€ํ•œ ๊ธฐ๊ณ„ ๋ฒˆ์—ญ ๊ธฐ๋Šฅ.
  • ํ…์ŠคํŠธ ๋ถ„์„ ๋ฐ ์ฒ˜๋ฆฌ ๊ฐœ์„ .
  • ์–ธ์–ด ๊ด€๋ จ ์ž‘์—…์„ ์œ„ํ•œ ๊ธฐ๋Šฅ ํ–ฅ์ƒ.

๊ฒฐ๋ก โ€‹

Open WebUI์™€ LibreTranslate๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•œ ๊ณผ์ •์œผ๋กœ Open WebUI ์ธ์Šคํ„ด์Šค์˜ ๊ธฐ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์— ์„ค๋ช…๋œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ Docker์—์„œ LibreTranslate๋ฅผ ์„ค์ •ํ•˜๊ณ  Open WebUI ๋‚ด์—์„œ ํ†ตํ•ฉ์„ ๊ตฌ์„ฑํ•˜์„ธ์š”.