최근 로컬 환경에서 오픈소스 대형 언어 모델(LLM)을 실행할 수 있는 Ollama와 ChatGPT 스타일의 웹 인터페이스를 제공하는 Open-WebUI를 조합하여 기업 내부나 로컬PC에 프라이빗 AI 챗봇 환경을 구축하는 사례가 늘고 있습니다.
이 가이드에서는 Docker Compose를 활용하여 GPU 가속이 지원되는 프라이빗 AI 챗봇 시스템을 손쉽게 구축하는 방법을 설명합니다.
1. 아키텍처 개요
- Ollama: Llama 3.1, Gemma 2, Mistral, Qwen 2.5 등 오픈소스 LLM 모델을 로컬에서 효율적으로 실행하고 REST API를 제공하는 백엔드 엔진.
- Open-WebUI: Ollama REST API와 연동하여 웹 브라우저에서 대화, 모델 변경, 문서 기반 RAG(Retrieval-Augmented Generation), 사용자 관리 등을 지원하는 웹 프론트엔드.
2. 사전 준비사항
- Docker & Docker Compose 설치 완료
- NVIDIA GPU 드라이버 및 NVIDIA Container Toolkit 설치 완료 (GPU 사용 시)
- GPU가 없더라도 CPU 모드로 실행 가능합니다.
3. Docker Compose 구성
docker-compose.yml 파일을 작성하여 Ollama와 Open-WebUI 서비스를 구성합니다.
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ollama_storage:/root/.ollama
# NVIDIA GPU 가속 사용 설정
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- WEBUI_SECRET_KEY=secret_key_change_me_in_production
volumes:
- open-webui_storage:/app/backend/data
depends_on:
- ollama
volumes:
ollama_storage:
open-webui_storage:
4. 서비스 실행 및 모델 다운로드
서비스 백그라운드 실행
docker compose up -d
컨테이너 상태 확인
docker compose ps
Ollama LLM 모델 다운로드 (Pull)
컨테이너 내부 접속 없이 명령어로 모델을 바로 수급할 수 있습니다.
# Llama 3.1 (8B) 모델 다운로드
docker exec -it ollama ollama pull llama3.1
# Qwen 2.5 (7B) 모델 다운로드
docker exec -it ollama ollama pull qwen2.5:7b
# 설치된 모델 목록 확인
docker exec -it ollama ollama list
5. Open-WebUI 접속 및 설정
- 웹 브라우저를 열고
http://localhost:3000(또는 서버 IP)로 접속합니다. - 첫 접속 시 관리자(Admin) 계정 회원가입을 진행합니다.
- 상단 모델 선택 드롭다운에서 다운로드한
llama3.1또는qwen2.5:7b모델을 선택하고 대화를 시작합니다.
6. 고급 기능 활용 (RAG & 파인튜닝)
- 문서 기반 질문 답변 (RAG):
Open-WebUI 채팅 입력창의
+버튼 또는 문서(Documents) 탭에서 PDF, TXT, DOCX 파일을 업로드하면 해당 문서 내용을 참조하여 답변을 생성합니다. - 웹 검색 연동 (Web Search): 설정(Settings) > Web Search에서 SearXNG 또는 DuckDuckGo API를 연동하면 실시간 웹 정보를 가져와 답변합니다.
- Custom System Prompt: 특정 페르소나나 응답 규칙(예: “항상 한국어로 간결하게 답해줘”)을 시스템 프롬프트로 지정 가능합니다.
마무리
Ollama와 Open-WebUI 조합은 외부 인터넷 연결이나 API 비용 지불 없이 조직 내부의 데이터 보안을 완벽히 유지하면서 고성능 LLM 인프라를 손쉽게 구축할 수 있는 최상의 솔루션입니다.