DEV/AI

Open WebUI 설치와 운영 : AI 모델 활용을 위한 오픈소스 웹 인터페이스

오리야호 2024. 9. 15. 00:37
반응형

 

 

 

Open WebUI란?

Open-WebUI는 로컬에서 구동 가능한 LLM 모델을 웹 인터페이스로 제공하여 다수의 사용자가 동시에 접근하고 상호작용할 수 있는 환경을 제공합니다. 단일 사용자의 경우에도 편리하지만, 여러 사용자와의 협업이나 서비스 형태로 모델을 활용하고자 하는 경우 매우 괜찮은 솔루션입니다.

  • 웹 기반 상호작용: Open-WebUI는 웹 브라우저만 있으면 어디서든 접근할 수 있는 인터페이스를 제공합니다. 이를 통해 사용자는 설치 없이도 로컬에 설치된 LLM과 상호작용할 수 있습니다.
  • 다수 사용자 환경: 웹 인터페이스를 통해 다수의 사용자가 동시에 LLM을 사용할 수 있기 때문에, 기업 내 혹은 연구소 등에서 LLM을 협업 도구로 활용하기에 적합합니다.

그런데.. 우리 모두가 LLM을 구동할 만큼 괜찮은 사양의 PC나 서버를 갖고 있진 않을거에요. 로컬환경에서 LLM을 구동하지 않더라도 API만을 이용해서 저렴하게 가장 진보된 AI들을 활용할 수 있습니다. 설치 설명 이후에 API 연결부분을 참고 해주세요.

 

 

Open-WebUI의 주요 기능 및 장점

Open-WebUI는 여러 면에서 로컬 LLM 모델을 웹 인터페이스로 쉽게 제공할 수 있도록 설계되었습니다.

  • 간편한 설치와 실행: Python, Docker와 같은 환경에서 쉽게 설치할 수 있으며, 별도의 복잡한 설정 과정 없이 웹 인터페이스를 띄울 수 있습니다.
  • 다양한 모델 지원: 다양한 LLM 모델과의 호환성을 지원하며, 새로운 모델 추가도 용이합니다.
  • 확장성: 웹 기반 솔루션이기 때문에 다수의 사용자가 접속하거나, 여러 대의 서버로 확장하는 것도 상대적으로 수월합니다.
  • 실시간 상호작용: 브라우저를 통해 모델과 실시간으로 대화하며, 결과를 바로 확인할 수 있는 점은 사용자 경험을 향상시키는 데 큰 역할을 합니다.

 

Open WebUI 설치

여러가지 설치 방식 제공하고 있습니다.

 

 

https://docs.openwebui.com/getting-started/

 

🚀 Getting Started | Open WebUI

How to Install 🚀

docs.openwebui.com

 

  • docker
  • docker-compose
  • potman
  • pip
  • manual (직접 빌드)

 

이 중 pip로 설치를 진행하였습니다. 요구사항에 따라 설치 장단점이 다르니 판단 하시면 되는데 제 경우는 아래와 같은 이유로 pip 방식으로 설치 하였습니다.

  • 회사에서 망분리 된 환경에서도 세팅하여 활용 중이므로 동일한 환경을 세팅함.
  • 오프라인 환경에서 설치할 때 docker 이미지를 반입하는게 속편하지만.. docker를 사용할 수 없는 개발환경.
  • pip 라이브러리를 다운로드 하여 반입시켜서 설치

 

pip 방식 설치 참고

 

# 가상환경 설치 (3.11 버전으로 생성)
python -m venv venv

# 가상환경으로 진입(윈도우)
.\\venv\\Scripts\\activate.bat

# 설치
pip install open-webui

# 서비스 구동
open-webui serve

# 업데이트 시
pip install --upgrade open-webui

# 재설치 시
pip install --upgrade --force-reinstall open-webui

 

# conda로 설정할 경우
conda create --name open-webui python=3.11
conda activate open-webui

pip install open-webui

 

 

 

우분투 환경에서 .env 파일 생성

 

환경변수로 설정할 값을 미리 파일로 정의 해두고 서비스 등록 시 호출하도록 처리 합니다. 업데이트 시 설정이 날아가지 않도록 유지됩니다.

 

설정 가능한 다양한 환경변수가 있으니 살펴보고 필요한 내용을 설정해 줍니다.

 

Environment Variable Configuration | Open WebUI

 

Environment Variable Configuration | Open WebUI

Overview

docs.openwebui.com

 

####################
# General
####################

# https://docs.openwebui.com/getting-started/env-configuration/#env
ENV="prod"

# https://docs.openwebui.com/getting-started/env-configuration/#enable_signup
#ENABLE_SIGNUP="false"

####################
# Ollama
####################

# https://docs.openwebui.com/getting-started/env-configuration/#ollama_base_url
OLLAMA_BASE_URL="http://localhost:11434"


####################
# OpenAI
####################

# 키를 여러개 등록할 경우 ; 구분자로 처리

# https://docs.openwebui.com/getting-started/env-configuration/#openai_api_base_urls
OPENAI_API_BASE_URLS="https://api.openai.com/v1;https://api.groq.com/openai/v1;http://localhost:9099/v1"

# https://docs.openwebui.com/getting-started/env-configuration/#openai_api_keys
OPENAI_API_KEYS="key1;key2;key3"

# https://docs.openwebui.com/getting-started/env-configuration/#rag_embedding_model_auto_update
RAG_EMBEDDING_MODEL_AUTO_UPDATE="true"


####################
# LOG
####################

# https://docs.openwebui.com/getting-started/logging/#appbackend
GLOBAL_LOG_LEVEL="DEBUG"

 

 

서비스 등록 (우분투 22.04 기준)

  • /etc/systemd/system/open-webui.service 편집
[Unit]
Description=Open WebUI Service
After=network.target

[Service]
Type=simple
User=사용자계정
Group=사용자그룹
WorkingDirectory=/home/사용자계정/open-webui
# conda 환경에 따라 달라질 수 있음..
ExecStart=conda run -p /home/사용자계정/.conda/envs/open-webui open-webui serve
ExecStop=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s

# 환경변수 저장 파일
EnvironmentFile=/home/사용자계정/open-webui/.env

[Install]
WantedBy=multi-user.target

 

 

# 서비스 리로드
sudo systemctl daemon-reload
# 서비스 활성화
sudo systemctl enable open-webui
# 서비스 시작
sudo systemctl start open-webui
sudo systemctl stop open-webui
# 서비스 상태 확인
sudo systemctl status open-webui

# 로그 확인
sudo journalctl -f -u open-webui.service

 

 

Ollama 생성 모델 활용

 

원격 ollama가 설치된 서버의 url을 입력하여 외부의 모델을 사용할 수도 있습니다.

 

Ollama API 란에서 원격지의 URL을 작성할 경우 외부의 GPU 자원을 활용할 수 있습니다.

 

 

 

API를 이용해 AI 서비스 활용

 

ChatGPT나 Claude AI를 구독할 경우 매달 3만원 가까이 비용을 지불해야 합니다. 구독 대신 API를 이용할 경우 사용한 만큼만 과금이 되기 때문에 비용 측면에서 훨씬 유리할 수 있습니다.

 

 

관리자 패널에서 API 키를 입력하게되면 워크스페이스에 연결된 모델 목록이 보이게 됩니다.

 

 

이렇게 API 방식으로 연결된 모델은 클립 모양으로 표기 됩니다.

 

 

API로 연동된 모델과 로컬에 설치한 모델의 성능 비교를 진행할 수도 있고, 답변 병합도 가능합니다.

 

 

 

Anthropic Claude API 연동

Anthropic Claude API 설정은 관리자 패널이 아닌 아래 2가지 방식 중 하나를 선택해서 연동이 가능합니다.

 

pipelines 설치 후 추가 할 경우

 

Open WebUI —Adding Anthropic Models

 

Open WebUI —Adding Anthropic Models

Let’s start by ensuring we have openwebui setup properly. There are multiple ways to get started at https://docs.openwebui.com/. I’ll…

medium.com

 

 

functions 에서 기능 추가 시

 

Anthropic Function | OpenWebUI Community

 

Anthropic Function | OpenWebUI Community

 

openwebui.com

 

 

 

 

 

여기까지 기본적인 Open-WebUI 설치와 연동 방법을 살펴봤습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형