Open WebUI به سرعت به رابط استاندارد برای مدلهای زبانی بزرگ محلی تبدیل شده است، شکاف بین دستورات خام ترمینال و تجربههای چت شهودی را پر میکند. اگرچه نصب پیشفرض برای استفادههای پایه کافی است، کاربران حرفهای اغلب به سفارشیسازی عمیقتری نیاز دارند. در این راهنما، استراتژیهای پیکربندی پیشرفته را بررسی خواهیم کرد و بر تمهای پایدار، معماری افزونه و یکپارچهسازی API تمرکز میکنیم تا Open WebUI را به یک موتور بهرهوری سفارشی تبدیل کنیم.
پیکربندی پایدار از طریق متغیرهای محیطی
یکی از مهمترین جنبههای استقرار پیشرفته Open WebUI، اطمینان از پایداری پیکربندیها در طول راهاندازی مجدد کانتینرها است. اگرچه رابط وب اجازه تغییرات رابط کاربری را میدهد، اما این تغییرات اغلب موقتی هستند مگر اینکه صراحتاً ذخیره شوند. روش قدرتمند برای مدیریت این موضوع، استفاده از متغیرهای محیطی Docker است.
با تنظیم OAUTH_ROLE_CLAIM یا فعال کردن ENABLE_OAUTH_SIGNUP، میتوانید نمونه خود را ایمن کنید. با این حال، برای سفارشیسازی خالص، بر روی WEBUI_SECRET_KEY و تعاریف مدل تمرکز کنید. در زیر یک قطعه کد docker-compose.yml قدرتمند وجود دارد که نشان میدهد چگونه یک دایرکتوری پیکربندی سفارشی را متصل کنید و متغیرهای محیطی پایدار را تنظیم نمایید.
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 # Persistent model storage
- ./data/open-webui:/app/backend/data # Persistent user data and configs
سفارشیسازی عمیق: تزریق CSS و تم
برای توسعهدهندگانی که میخواهند ظاهر و حس را فراتر از حالتهای تاریک/روشن استاندارد تغییر دهند، Open WebUI از تزریق CSS پشتیبانی میکند. شما میتوانید این کار را با قرار دادن سبکهای سفارشی در دایرکتوری متصل /app/backend/data انجام دهید. این روش به ویژه برای ایجاد ابزارهای داخلی با برند خاص یا کاهش خستگی چشم با پالتهای رنگی مشخص مفید است.
برای اعمال یک تم سفارشی، فایلی به نام custom.css در حجم داده متصل خود ایجاد کنید. Open WebUI به طور خودکار این مکان را برای تغییرات اسکن میکند. به عنوان مثال، برای سفارشیسازی پسزمینه نوار کناری:
/* custom.css */
.sidebar {
background-color: #1a1b26;
border-right: 1px solid #24283b;
}
.chat-message {
font-family: 'Inter', sans-serif;
line-height: 1.6;
}
این روش از ماهیت متنباز پروژه بهره میبرد و به شما اجازه میدهد اگر لازم باشد، اجزای فرانتاند را فورک یا گسترش دهید. این یک جایگزین قدرتمند برای تکیه صرف بر منوی تنظیمات است و کنترل دقیق بر هر پیکسل را ارائه میدهد.
گسترش عملکرد: معماری افزونه
سیستم افزونه Open WebUI برای گسترش عملکرد بدون بزرگ کردن کد پایه اصلی طراحی شده است. افزونهها اساساً اسکریپتهای پایونی هستند که به چرخه درخواست متصل میشوند. یک مورد استفاده رایج برای کاربران پیشرفته، یکپارچهسازی با پایگاههای دانش خارجی یا فعالسازی وبهوکها است.
برای توسعه یک افزونه سفارشی، معمولاً باید یک دایرکتوری زیر /app/backend/data/plugins ایجاد کنید. ساختار معمولاً به یک __init__.py و یک فایل پیکربندی نیاز دارد. به عنوان مثال، افزونهای که تمام پرامپتهای چت را به یک سیستم SIEM (مدیریت اطلاعات و رویدادهای امنیتی) خارجی لاگ میکند، میتواند با دستکاری رویدادهای ChatCompletion ساخته شود.
# 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):
# Custom logic to send data to an external API
requests.post("https://your-logging-endpoint.com/log", json={
"prompt": request.get('prompt'),
"timestamp": "now"
})
یکپارچهسازی API و استفاده بدون رابط کاربری (Headless)
در نهایت، Open WebUI فقط یک کلاینت چت نیست؛ بلکه یک سرور API کامل با امکانات زیاد است. کاربران حرفهای میتوانند از نقاط پایانی /api/v1 برای یکپارچهسازی Open WebUI در گردش کارهای خودکار بزرگتر استفاده کنند. چه در حال ساخت یک فرانتاند React سفارشی باشید و چه در حال یکپارچهسازی با n8n، API از طریق هدر Authorization احراز هویت را پشتیبانی میکند.
هنگام استفاده از API، مطمئن شوید که کلیدهای API را از پنل مدیریت Open WebUI ایجاد میکنید. این به شما امکان میدهد اعتبارنامهها را بدون تأثیر بر کاربران اصلی رابط کاربری تغییر دهید. علاوه بر این، میتوانید تنظیمات CORS را از طریق متغیرهای محیطی پیکربندی کنید اگر فرانتاند و بکاند را به صورت جداگانه میزبانی میکنید.
نتیجهگیری
تسلط بر Open WebUI فراتر از انتخاب ساده مدل است. با بهرهگیری از پیکربندی پایدار، تزریق CSS سفارشی و معماری افزونه قدرتمند، میتوانید رابط را برای تناسب با گردش کارهای تخصصی سفارشی کنید. چه به دنبال ایمنسازی دسترسی باشید، چه برندینگ رابط کاربری را انجام دهید و چه با منابع داده خارجی یکپارچه شوید، این تکنیکهای پیشرفته به شما امکان میدهند بیشترین بهره را از زیرساخت هوش مصنوعی محلی خود ببرید.