Open WebUI ve RAG ile Kendi Özel Yapay Zeka Asistanınızı Kurmak

Ollama ile modelleri arka planda bir servis olarak çalıştırmaya başladıktan sonra, bu gücü günlük kullanımda tam verimle değerlendirebilmek için modern bir web arayüzüne ihtiyaç duyarız. Open WebUI (eski adıyla Ollama WebUI); ChatGPT benzeri zengin kullanıcı deneyimini, çoklu model karşılaştırmasını ve en önemlisi RAG (Retrieval-Augmented Generation) yeteneğini yerel ortamınıza getiren en popüler açık kaynak platformdur.

Bu rehberde; Docker kullanarak Open WebUI kurulumunu, Ollama ile haberleşmesini ve kişisel teknik dokümanlarınızı/PDF’lerinizi modele tanıtarak güvenli bir şekilde sorgulama (RAG) adımlarını inceliyoruz.


1. RAG (Retrieval-Augmented Generation) Nedir ve Neden Önemlidir?

Standart bir büyük dil modeli yalnızca eğitim aldığı tarihe kadar olan bilgileri bilir. Kendi özel proje kodlarınızı, şirket içi dokümantasyonunuzu veya kişisel notlarınızı modele tanıtmak istediğinizde iki seçenek vardır:

  1. İnce Ayar (Fine-Tuning): Yüksek donanım kaynağı, zaman ve veri seti hazırlığı gerektirir. Model güncellendiğinde tüm sürecin tekrarlanması gerekir.
  2. RAG (Erişim Destekli Üretim): Belgeleriniz vektörleştirilir (Embedding). Sorduğunuz soruyla ilgili paragraflar anında yerel vektör veri tabanından taranıp bulunur ve modelin bağlam penceresine eklenerek modele “Yalnızca bu belgedeki bilgilere dayanarak yanıt ver” denir.

Open WebUI, bu karmaşık RAG altyapısını hiçbir ek kod yazmaya gerek kalmadan yerleşik olarak sunar.


2. Docker ile Open WebUI Kurulumu

En temiz ve izole kurulum yöntemi resmi Docker konteynerini kullanmaktır.

Eğer Ollama aynı Linux makinesi üzerinde yerel olarak çalışıyorsa:

docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

Docker Compose ile Kurulum (Önerilen)

Kalıcı ve yönetilebilir bir yapı için docker-compose.yml:

version: '3.8'

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: always
    ports:
      - "3000:8080"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - OLLAMA_BASE_URL=http://host.docker.internal:11434
      - WEBUI_AUTH=true
    volumes:
      - open-webui_data:/app/backend/data

volumes:
  open-webui_data:

Konteyneri başlatmak için:

docker compose up -d

3. İlk Giriş ve Ollama Bağlantısı

  1. Tarayıcınızdan http://localhost:3000 (veya sunucu IP’niz) adresine gidin.
  2. İlk kaydolan kullanıcı otomatik olarak Yönetici (Admin) yetkisine sahip olur.
  3. Sağ üstteki ayarlar simgesinden Admin Settings -> Connections sekmesine girin.
  4. Ollama API bağlantısının yeşil yandığını ve sisteminizdeki modellerin (llama3.1, qwen2.5 vb.) otomatik olarak listelendiğini doğrulayın.

4. Yerel RAG: Belgeleri Yükleme ve Sorgulama

RAG özelliğini verimli kullanabilmek için metinleri vektör koordinatlarına dönüştürecek hafif bir gömme (Embedding) modeline ihtiyaç vardır.

Ollama üzerinden yüksek performanslı yerel bir embedding modeli çekelim:

ollama pull nomic-embed-text

Open WebUI arayüzünde:

  1. Admin Settings -> Documents sekmesine gidin.
  2. Embedding motoru olarak Ollama‘yı ve model olarak nomic-embed-text‘i seçin.
  3. Sol menüdeki Documents (Belgeler) alanına tıklayarak teknik PDF’lerinizi, Markdown dosyalarınızı veya C++ kaynak kodlarınızı sürükleyip bırakın.
  4. Sistem belgeleri otomatik olarak parçalara (chunks) böler ve yerel ChromaDB vektör veri tabanına indeksler.

Sohbette Belgeyi Kullanmak

Yeni bir sohbet açtığınızda mesaj yazma alanına # işareti koyarak yüklediğiniz dokümanı seçebilirsiniz:

#esp32_datasheet.pdf
Bu mikrodenetleyicinin deep sleep modundaki tipik akım tüketimi kaç mikroamperdir?

Model, sorunun cevabını internetten veya kendi genel hafızasından uydurmak yerine, doğrudan yüklediğiniz PDF’in ilgili sayfasından referans vererek çıkarır.


5. Güvenlik ve Çoklu Kullanıcı Yönetimi

Open WebUI; aile bireyleriniz, ekibiniz veya çalışma arkadaşlarınız için kullanıcı hesapları tanımlamanıza olanak tanır.

  • Rol Yönetimi: Kullanıcıların hangi modellere erişebileceğini sınırlayabilirsiniz.
  • API Anahtarları: Dilerseniz Open WebUI üzerinden harici geliştiricilere kendi OpenAI uyumlu API anahtarlarınızı dağıtabilirsiniz.

6. Sonuç

Ollama ve Open WebUI ikilisi; tek bir satır veri sızdırmadan şirket içi dokümanları sorgulayabileceğiniz, kod yazarken danışabileceğiniz kurumsal seviyede bir yerel yapay zeka istasyonudur. Ancak bireysel kullanımdan çıkıp onlarca eşzamanlı kullanıcının aynı anda istek attığı yüksek verimli bir sunucu ortamı hedefliyorsanız, serinin son bölümünde inceleyeceğimiz vLLM motoru devreye girmektedir.