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.