최근 로컬 환경에서 오픈소스 대형 언어 모델(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), 사용자 관리 등을 지원하는 웹 프론트엔드.
[웹브라우저(사용자)]──(HTTP3000)──>[Open-WebUI]──(REST11434)──>[Ollama엔진(NVIDIAGPU)]

2. 사전 준비사항

  1. Docker & Docker Compose 설치 완료
  2. 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 접속 및 설정

  1. 웹 브라우저를 열고 http://localhost:3000 (또는 서버 IP)로 접속합니다.
  2. 첫 접속 시 관리자(Admin) 계정 회원가입을 진행합니다.
  3. 상단 모델 선택 드롭다운에서 다운로드한 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 인프라를 손쉽게 구축할 수 있는 최상의 솔루션입니다.