Local AI

Gelişmiş Open WebUI Yapılandırması: Güçlü Kullanıcılar İçin Temalar, Eklentiler ve API Entegrasyonlarını Özelleştirme

Open WebUI, yerel büyük dil modelleri için standart arayüz olarak hızla yükseldi ve ham terminal komutları ile sezgisel sohbet deneyimleri arasındaki boşluğu dolduruyor. Varsayılan kurulum temel kullanım için yeterli olsa da, güçlü kullanıcılar genellikle daha derin özelleştirme arzusu duyar. Bu kılavuzda, Open WebUI'yi kişiselleştirilmiş bir verimlilik motoruna dönüştürmek için kalıcı tema, eklenti mimarisi ve API entegrasyonuna odaklanarak gelişmiş yapılandırma stratejilerini keşfedeceğiz.

Ortam Değişkenleri ile Kalıcı Yapılandırma

Gelişmiş Open WebUI dağıtımının en kritik yönlerinden biri, yapılandırmalarınızın konteyner yeniden başlatmaları boyunca kalıcı olmasını sağlamaktır. Web arayüzü kullanıcı arayüzü değişikliklerine izin verse de, bunlar açıkça kaydedilmediği sürece genellikle geçicidir. Bunu elemanın sağlam yolu Docker ortam değişkenleri aracılığıyla yapılır.

OAUTH_ROLE_CLAIM ayarlayarak veya ENABLE_OAUTH_SIGNUP etkinleştirerek örneğinizi güvence altına alabilirsiniz. Ancak saf özelleştirme için WEBUI_SECRET_KEY ve model tanımlarına odaklanın. Aşağıda, özel bir yapılandırma dizininin nasıl bağlanacağı ve kalıcı ortam değişkenlerinin nasıl ayarlanacağı gösteren sağlam bir docker-compose.yml parçacığı bulunmaktadır.

version: '3.8'
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    restart: unless-stopped
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://host.docker.internal:11434
      - WEBUI_SECRET_KEY=your_super_secure_random_key_here
      - ENABLE_OAUTH_SIGNUP=false
    volumes:
      - ./ollama:/root/.ollama # Kalıcı model depolama
      - ./data/open-webui:/app/backend/data # Kalıcı kullanıcı verileri ve yapılandırmaları

Derin Özelleştirme: CSS ve Tema Enjeksiyonu

Görünümü ve hissi standart koyu/açık modların ötesinde değiştirmek isteyen geliştiriciler için Open WebUI CSS enjeksiyonunu destekler. Bunu, özel stilleri bağlanmış /app/backend/data dizinine yerleştirerek gerçekleştirebilirsiniz. Bu, markalı iç araçlar oluşturmak veya belirli renk paletleriyle göz yorgunluğunu azaltmak için özellikle kullanışlıdır.

Özel bir tema uygulamak için, bağlanmış veri hacminizde custom.css adında bir dosya oluşturun. Open WebUI bu konumu geçersiz kılmalar için otomatik olarak tarar. Örneğin, kenar çubuğu arka planını özelleştirmek için:

/* custom.css */
.sidebar {
    background-color: #1a1b26;
    border-right: 1px solid #24283b;
}

.chat-message {
    font-family: 'Inter', sans-serif;
    line-height: 1.6;
}

Bu yöntem, projenin açık kaynak doğasından yararlanarak, gerekirse ön uç bileşenlerini çatallamanıza veya genişletmenize olanak tanır. Yalnızca ayarlar menüsüne güvenmek yerine, her piksel üzerinde granüler kontrol sunan güçlü bir alternatiftir.

Fonksiyonelliği Genişletme: Eklenti Mimarisi

Open WebUI'nin eklenti sistemi, temel kod tabanını şişirmeden işlevselliği genişletmek üzere tasarlanmıştır. Eklentiler, aslında istek yaşam döngüsüne bağlanan Python betikleridir. Gelişmiş kullanıcılar için yaygın bir kullanım durumu, harici bilgi tabanlarıyla entegrasyon sağlamak veya webhook'ları tetiklemektir.

Özel bir eklenti geliştirmek için genellikle /app/backend/data/plugins altında bir dizin oluşturursunuz. Yapı genellikle bir __init__.py ve bir yapılandırma dosyası gerektirir. Örneğin, tüm sohbet istemlerini harici bir SIEM (Güvenlik Bilgisi ve Olay Yönetimi) sistemine loglayan bir eklenti, ChatCompletion olaylarını engelleyerek oluşturulabilir.

# plugin_example.py
from open_webui.plugins import register_plugin
import requests

def register():
    register_plugin(
        name="Security Logger",
        description="Logs all prompts to a remote endpoint",
        version="1.0.0"
    )

def on_chat_completion(request, response):
    # Verileri harici bir API'ye göndermek için özel mantık
    requests.post("https://your-logging-endpoint.com/log", json={
        "prompt": request.get('prompt'),
        "timestamp": "now"
    })

API Entegrasyonu ve Başlıksız Kullanım

Son olarak, Open WebUI sadece bir sohbet istemcisi değildir; tam özellikli bir API sunucusudur. Güçlü kullanıcılar, Open WebUI'yi daha büyük otomasyon iş akışlarına entegre etmek için /api/v1 uç noktalarından yararlanabilir. İster özel bir React ön ucu oluşturuyor olun, ister n8n ile entegre olun, API Authorization başlığı aracılığıyla kimlik doğrulamayı destekler.

API'yi kullanırken, API anahtarlarını Open WebUI yönetici panelinden oluşturduğunuzdan emin olun. Bu, ana UI kullanıcılarını etkilemeden kimlik bilgilerini döndürmenize olanak tanır. Ayrıca, ön ucu ve arka ucu ayrı ayrı barındırıyorsanız, CORS ayarlarını ortam değişkenleri aracılığıyla yapılandırabilirsiniz.

Sonuç

Open WebUI'yi ustalaşmak, basit model seçiminden öteye gider. Kalıcı yapılandırma, özel CSS enjeksiyonu ve sağlam eklenti mimarisinden yararlanarak arayüzü özel iş akışlarına uygun hale getirebilirsiniz. Erişimi güvence altına almayı, UI'yi markalamayı veya harici veri kaynaklarıyla entegre etmeyi ister olun, bu gelişmiş teknikler yerel AI altyapınızdan en iyi şekilde yararlanmanızı sağlar.

Share: