Open WebUI ์๊ฐ
Open WebUI๋ ์ฌ์ฉ์๊ฐ ์์ ํ ์คํ๋ผ์ธ ์ํ์์๋ AI ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ ํ์ฉํ ์ ์๋๋ก ์ค๊ณ๋ ํ์ฅ ๊ฐ๋ฅํ ์คํ์์ค AI ํ๋ซํผ์ ๋๋ค. ์ด ํ๋ซํผ์ Ollama ๋ฐ OpenAI API์ ํธํ๋๋ ๋ชจ๋ธ ์คํ ํ๊ฒฝ์ ์ ๊ณตํ๋ฉฐ, RAG(Retrieval-Augmented Generation) ๊ธฐ๋ฅ์ ํตํด ๋ฌธ์์์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํนํ Docker์ Kubernetes๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ์ค์น ๋ฐ ์คํํ ์ ์๊ณ , Markdown๊ณผ LaTeX ์ง์์ ํตํด ๋์ฑ ์ง๊ด์ ์ธ LLM ์ํธ์์ฉ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ์น ๊ธฐ๋ฐ์ด์ง๋ง PWA(Progressive Web App)๋ฅผ ์ง์ํ์ฌ ๋ชจ๋ฐ์ผ์์๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ฒ๋ผ ์๋ํฉ๋๋ค. ์คํ์์ค ํ๋ก์ ํธ๋ก, GitHub์์ ์ฝ๋ ๋ฐ ์์ธ ๋ฌธ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
Open WebUI์ ์ฃผ์ ๊ธฐ๋ฅ
-
์์ฌ์ด ์ค์น: Docker ๋๋ Kubernetes(kubectl, kustomize, helm)๋ฅผ ์ฌ์ฉํ์ฌ ์์ฝ๊ฒ ์ค์นํ ์ ์์ต๋๋ค. :ollama ๋ฐ :cuda ํ๊ทธ๊ฐ ์ง์ ๋ ์ด๋ฏธ์ง๋ฅผ ๋ชจ๋ ์ง์ํ์ฌ ๋ฒ๊ฑฐ๋ก์ ์๋ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
-
Ollama/OpenAI API ํตํฉ: Ollama ๋ชจ๋ธ๊ณผ ํจ๊ป OpenAI ํธํ API๋ฅผ ์์ฝ๊ฒ ํตํฉํ์ฌ ๋ค์ํ ๋ํ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. OpenAI API URL์ LMStudio, GroqCloud, Mistral, OpenRouter ๋ฑ๊ณผ ์ฐ๊ฒฐํ ์ ์๋๋ก ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค.
-
์ธ๋ถ์ ์ธ ๊ถํ ์ค์ ๋ฐ ์ฌ์ฉ์ ๊ทธ๋ฃน ๊ด๋ฆฌ: ๊ด๋ฆฌ์๊ฐ ์ธ๋ถ์ ์ธ ์ฌ์ฉ์ ์ญํ ๋ฐ ๊ถํ์ ์์ฑํ ์ ์์ด ์์ ํ ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ณด์ฅํฉ๋๋ค. ์ด๋ฌํ ์ธ๋ถํ๋ ๋ณด์์ ๊ฐํํ ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง์ถคํํ์ฌ ์ฌ์ฉ์ ์์๊ฐ๊ณผ ์ฑ ์๊ฐ์ ์ฆ์งํฉ๋๋ค.
-
๋ฐ์ํ ๋์์ธ: ๋ฐ์คํฌํฑ PC, ๋ ธํธ๋ถ ๋ฐ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์ ๋งค๋๋ฌ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
-
๋ชจ๋ฐ์ผ์ฉ PWA(Progressive WebApp): ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์ ๋ค์ดํฐ๋ธ ์ฑ๊ณผ ๊ฐ์ ๊ฒฝํ์ ์ ๊ณตํ๋ PWA๋ฅผ ํตํด ๋ก์ปฌํธ์คํธ์์ ์คํ๋ผ์ธ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ํํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
-
Markdown ๋ฐ LaTeX ์์ ์ง์: ํ๋ถํ ์ํธ์์ฉ์ ์ํ ์ข ํฉ์ ์ธ Markdown ๋ฐ LaTeX ๊ธฐ๋ฅ์ผ๋ก LLM(๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ) ๊ฒฝํ์ ํฅ์ํฉ๋๋ค.
-
ํธ์ฆํ๋ฆฌ ์์ฑ/์์ ํตํ: ํธ์ฆํ๋ฆฌ ์์ฑ ๋ฐ ์์ ํตํ ๊ธฐ๋ฅ์ ํตํฉํ์ฌ ๋ ์ญ๋์ ์ด๊ณ ์ํธ์์ฉ์ ์ธ ์ฑํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
-
๋ชจ๋ธ ๋น๋: ์น UI๋ฅผ ํตํด Ollama ๋ชจ๋ธ์ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ์ง์ ์บ๋ฆญํฐ/์์ด์ ํธ๋ฅผ ์์ฑํ๊ณ ์ฑํ ์์๋ฅผ ๋ง์ถคํํ๋ฉฐ, Open WebUI ์ปค๋ฎค๋ํฐ ํตํฉ์ ํตํด ๋ชจ๋ธ์ ๊ฐ๋จํ ๊ฐ์ ธ์ค๊ณ ์ถ๊ฐํ ์ ์์ต๋๋ค.
-
๋ค์ดํฐ๋ธ Python ํจ์ ํธ์ถ ๋๊ตฌ: ํด ์์ ๊ณต๊ฐ ๋ด ์ฝ๋ ํธ์ง๊ธฐ ์ง์์ ํตํด LLM ๊ธฐ๋ฅ์ ๊ฐํํฉ๋๋ค. ์์ Python ํจ์๋ฅผ ๊ฐ๋จํ ์ถ๊ฐํ์ฌ ์ฌ์ฉ์์ Python ํจ์(BYOF, Bring Your Own Function)๋ฅผ ์ํํ๊ฒ ํตํฉํ ์ ์์ต๋๋ค.
-
๋ก์ปฌ RAG ํตํฉ: ํ๊ธฐ์ ์ธ RAG(๊ฒ์ ์ฆ๊ฐ ์์ฑ) ์ง์์ ํตํด ์ฑํ ์ํธ์์ฉ์ ๋ฏธ๋๋ฅผ ํํํด ๋ณด์ธ์. ๋ฌธ์๋ฅผ ์ฑํ ์ ์ง์ ๋ก๋ํ๊ฑฐ๋ ๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์ผ์ ์ถ๊ฐํ ๋ค, ์ฟผ๋ฆฌ ์ ์ # ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐํธํ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
-
RAG์ฉ ์น ๊ฒ์: SearXNG, Google PSE, Brave Search, serpstack, serper, Serply, DuckDuckGo, TavilySearch, SearchApi, Bing๊ณผ ๊ฐ์ ์ ๊ณต์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์น ๊ฒ์์ ์ํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฑํ ๊ฒฝํ์ ์ง์ ์ฃผ์ ํ ์ ์์ต๋๋ค.
-
์น ๋ธ๋ผ์ฐ์ง ๊ธฐ๋ฅ: ๋ช ๋ น์ด ๋ค์ URL์ ์ ๋ ฅํ์ฌ ์น์ฌ์ดํธ๋ฅผ ์ฑํ ๊ฒฝํ์ ํตํฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ๋ถํ๊ณ ๊น์ด ์๋ ์ํธ์์ฉ์ ์ํด ์น ์ฝํ ์ธ ๋ฅผ ๋ํ์ ๋ฐ๋ก ํฌํจํ ์ ์์ต๋๋ค.
-
์ด๋ฏธ์ง ์์ฑ ํตํฉ: AUTOMATIC1111 API, ComfyUI(๋ก์ปฌ), OpenAI์ DALL-E(์ธ๋ถ)์ ๊ฐ์ ์ต์ ์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ์์ฑ ๊ธฐ๋ฅ์ ๋งค๋๋ฝ๊ฒ ํตํฉํ๋ฉฐ, ์ญ๋์ ์ธ ๋น์ฃผ์ผ ์ฝํ ์ธ ๋ก ์ฑํ ๊ฒฝํ์ ํ๋ถํ๊ฒ ๋ง๋ญ๋๋ค.
-
๋ค์ค ๋ชจ๋ธ ๋ํ: ๋ค์ํ ๋ชจ๋ธ์ ๋์์ ํ์ฉํ์ฌ ๊ฐ ๋ชจ๋ธ์ ๊ณ ์ ํ ๊ฐ์ ์ ํ์ฉํ๊ณ ์ต์ ์ ์๋ต์ ์ ๊ณตํฉ๋๋ค. ๋ค์ํ ๋ชจ๋ธ์ ๋ณ๋ ฌ๋ก ์ฌ์ฉํ์ฌ ๊ฒฝํ์ ํฅ์ํฉ๋๋ค.
-
์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด(RBAC): ์ ํ๋ ๊ถํ์ผ๋ก ๋ณด์์ ๋ณด์ฅํฉ๋๋ค. Ollama์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๊ถํ์ด ๋ถ์ฌ๋ ์ฌ์ฉ์๋ก ์ ํ๋๋ฉฐ, ๋ชจ๋ธ ์์ฑ/๊ฐ์ ธ์ค๊ธฐ ๊ถํ์ ๊ด๋ฆฌ์์๊ฒ๋ง ๋ถ์ฌ๋ฉ๋๋ค.
-
๋ค๊ตญ์ด ์ง์: ๊ตญ์ ํ(i18n) ์ง์์ ํตํด ์ ํธํ๋ ์ธ์ด๋ก Open WebUI๋ฅผ ๊ฒฝํํ ์ ์์ต๋๋ค. ์ง์ ์ธ์ด๋ฅผ ํ์ฅํ๋ ๋ฐ ํจ๊ป ์ฐธ์ฌํด ์ฃผ์ธ์! ํ์ฌ๋ ์ ๊ทน์ ์ผ๋ก ๊ธฐ์ฌ์๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค.
-
ํ์ดํ๋ผ์ธ ๋ฐ Open WebUI ํ๋ฌ๊ทธ์ธ ์ง์: ํ์ดํ๋ผ์ธ ํ๋ฌ๊ทธ์ธ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ Open WebUI์ ์ฌ์ฉ์ ์ง์ ๋ก์ง ๋ฐ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํํ ํตํฉํฉ๋๋ค. ํ์ดํ๋ผ์ธ ์ธ์คํด์ค๋ฅผ ์คํํ๊ณ OpenAI URL์ ํ์ดํ๋ผ์ธ URL๋ก ์ค์ ํ ๋ค, ๋ฌดํํ ๊ฐ๋ฅ์ฑ์ ํ๊ตฌํด ๋ณด์ธ์. ์๋ก๋ ํจ์ ํธ์ถ, ์ฌ์ฉ์ ์ฌ์ฉ๋ฅ ์ ํ, Langfuse ๊ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํ ์ฌ์ฉ ๋ชจ๋ํฐ๋ง, LibreTranslate๋ฅผ ํตํ ์ค์๊ฐ ๋ฒ์ญ ๋ค๊ตญ์ด ์ง์, ์ ํด ๋ฉ์์ง ํํฐ๋ง ๋ฑ์ด ์์ต๋๋ค.
-
์ง์์ ์ธ ์ ๋ฐ์ดํธ: Open WebUI์ ๊ฐ์ ๊ณผ ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ, ๋ฌธ์ ํด๊ฒฐ์ ์ํด ์ ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ผ์ด์ ์ค
Open WebUI ํ๋ก์ ํธ๋ BSD-3ํญ ๋ผ์ด์ ์ค๋ก ๊ณต๊ฐ๋ ์คํ์์ค ํ๋ก์ ํธ์ ๋๋ค.
OpenWebUI ํํ์ด์ง
OpenWebUI ๊ณต์ ๋ฌธ์
OpenWebUI GitHub ์ ์ฅ์
https://github.com/open-webui/open-webui
์ด ๊ธ์ GPT ๋ชจ๋ธ๋ก ์ ๋ฆฌํ ๊ธ์ ๋ฐํ์ผ๋ก ํ ๊ฒ์ผ๋ก, ์๋ฌธ์ ๋ด์ฉ ๋๋ ์๋์ ๋ค๋ฅด๊ฒ ์ ๋ฆฌ๋ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค. ๊ด์ฌ์๋ ๋ด์ฉ์ด์๋ผ๋ฉด ์๋ฌธ๋ ํจ๊ป ์ฐธ๊ณ ํด์ฃผ์ธ์! ์ฝ์ผ์๋ฉด์ ์ด์ํ๊ฑฐ๋ ์๋ชป๋ ๋ด์ฉ์ ๋ฐ๊ฒฌํ์๋ฉด ๋ง๊ธ๋ก ์๋ ค์ฃผ์๊ธฐ๋ฅผ ๋ถํ๋๋ฆฝ๋๋ค.
ํ์ดํ ์น ํ๊ตญ ์ฌ์ฉ์ ๋ชจ์์ด ์ ๋ฆฌํ ์ด ๊ธ์ด ์ ์ฉํ์ จ๋์? ํ์์ผ๋ก ๊ฐ์ ํ์๋ฉด ์ฃผ์ ๊ธ๋ค์ ์ด๋ฉ์ผ๋ก ๋ณด๋ด๋๋ฆฝ๋๋ค! (๊ธฐ๋ณธ์ Weekly์ง๋ง Daily๋ก ๋ณ๊ฒฝ๋ ๊ฐ๋ฅํฉ๋๋ค.)
์๋์ชฝ์ ์ข์์๋ฅผ ๋๋ฌ์ฃผ์๋ฉด ์๋ก์ด ์์๋ค์ ์ ๋ฆฌํ๊ณ ๊ณต์ ํ๋๋ฐ ํ์ด ๋ฉ๋๋ค~