أصبح Open WebUI بسرعة الواجهة القياسية للنماذج اللغوية الكبيرة المحلية، مما يسد الفجوة بين أوامر الطرفية الخام وتجارب الدردشة البديهية. بينما يكفي التثبيت الافتراضي للاستخدام الأساسي، غالباً ما يتوق المستخدمون المحترفون إلى تخصيص أعمق. في هذا الدليل، سنستكشف استراتيجيات التكوين المتقدمة، مع التركيز على السمات الدائمة، وهندسة الإضافات، وتكامل واجهة برمجة التطبيقات لتحويل 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 لتوسيع الوظائف دون إرباك قاعدة الشفرة الأساسية. الإضافات هي في الأساس نصوص Python ترتبط بدورة طلب البيانات. حالة استخدام شائعة للمستخدمين المتقدمين هي التكامل مع قواعد المعرفة الخارجية أو تشغيل الإشارات المرجعية (webhooks).
لتطوير إضافة مخصصة، عادةً ما تقوم بإنشاء دليل تحت /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"
})
تكامل واجهة برمجة التطبيقات والاستخدام بدون واجهة
أخيراً، Open WebUI ليس مجرد عميل دردشة؛ إنه خادم واجهة برمجة تطبيقات كامل الميزات. يمكن للمستخدمين المحترفين الاستفادة من نقاط النهاية /api/v1 لتكامل Open WebUI في سير عمل أتمتة أكبر. سواء كنت تبني واجهة أمامية React مخصصة أو تدمج مع n8n، فإن واجهة برمجة التطبيقات تدعم المصادقة عبر رأس Authorization.
عند استخدام واجهة برمجة التطبيقات، تأكد من إنشاء مفاتيح API من لوحة تحكم إدارة Open WebUI. يتيح لك ذلك تدوير بيانات الاعتماد دون التأثير على مستخدمي الواجهة الرئيسية. بالإضافة إلى ذلك، يمكنك تكوين إعدادات CORS عبر متغيرات البيئة إذا كنت تستضيف الواجهة الأمامية والخلفية بشكل منفصل.
الخاتمة
إتقان Open WebUI يتجاوز مجرد اختيار النموذج. من خلال الاستفادة من التكوين الدائم، وحقن CSS المخصص، وهندسة الإضافات القوية، يمكنك تخصيص الواجهة لتناسب سير العمل المتخصص. سواء كنت تقوم بتأمين الوصول، أو وضع علامة تجارية على الواجهة، أو التكامل مع مصادر البيانات الخارجية، فإن هذه التقنيات المتقدمة تمكّنك من الاستفادة القصوى من بنية الذكاء الاصطناعي المحلية الخاصة بك.