Ultimate AI Connector for WebLLM
يُقدم Ultimate AI Connector for WebLLM إمكانية تشغيل نماذج الذكاء الاصطناعي (AI inference) مباشرةً في متصفح المستخدم لشبكة WordPress Multisite الخاصة بك. فهو يشغّل نماذج اللغة الكبيرة (LLMs) بالكامل داخل المتصفح باستخدام WebLLM ومحرك MLC — لا يتطلب مفاتيح API، ولا يتطلب استدعاءات خارجية، ولا تغادر البيانات جهاز المستخدم.
الميزات الرئيسية
- الاستدلال من جانب المتصفح (Browser-side inference): يعمل نموذج اللغة الكبير محليًا في متصفح الزائر عبر WebLLM/MLC — لا يتطلب وحدة معالجة رسوميات (GPU) على الخادم.
- أداة الدردشة العائمة (Floating chat widget): يمكن للمستخدمين المسجلين الدخول مطالبة نموذج اللغة الكبير من جانب المتصفح مباشرةً من الواجهة الأمامية للموقع.
- مؤشر الحالة في شريط الإدارة (Admin-bar status indicator): حالة WebLLM في الوقت الفعلي مرئية في شريط إدارة WordPress.
- بيئة تشغيل SharedWorker: تشارك علامات التبويب المتعددة في المتصفح جلسة GPU واحدة بدلاً من التنافس على موارد GPU.
- طبقة apiFetch middleware: يتم توجيه طلبات WordPress REST التي تطابق نمط AI Client SDK بشفافية إلى وسيط WebLLM المحلي — لا حاجة لرحلة ذهاب وعودة HTTP (loopback).
- واجهة إعدادات الأداة (Widget settings UI): لوحة إعدادات الموصل (Connector) للتحكم في أداة الدردشة وتكوين سلوك المطالبة التلقائية.
- ذاكرة التخزين المؤقت IndexedDB: تنجو عمليات تنزيل أوزان النموذج من إعادة توجيهات CDN التي تكسر مسار واجهة برمجة التطبيقات (Cache API) الافتراضي.
- تكامل فلتر wpai: يتصل بفلتر
wpai_preferred_text_modelsبحيث يتم توجيه ميزة تجارب الذكاء الاصطناعي (AI Experiments) إلى محرك المتصفح عن د التكوين.
المتطلبات
- WordPress 5.3 أو أعلى
- PHP 7.4 أو أعلى
- إضافة Ultimate Multisite (نشطة)
- متصفح يدعم WebGPU (Chrome 113+، Edge 113+، أو Firefox Nightly مع تفعيل WebGPU)
التثبيت
- قم بتحميل ملفات الإضافة إلى دليل
/wp-content/plugins/الخاص بك. - قم بتفعيل الإضافة عبر قائمة 'Plugins' في WordPress.
- انتقل إلى Ultimate Multisite → AI Connector لتكوين الإضافة.
أداة الدردشة العائمة (Floating Chat Widget)
تسمح أداة الدردشة العائمة لأي مستخدم مسجل الدخول بالتفاعل مع نموذج اللغة الكبير من جانب المتصفح مباشرةً من الواجهة الأمامية لموقعك، دون مغادرة الصفحة التي يتواجد فيها.
ماذا تفعل؟
عند تفعيلها، يظهر رمز دردشة في زاوية كل صفحة أمامية للمستخدمين المسجلين. يؤدي النقر على الرمز إلى فتح لوحة دردشة حيث يمكن للمستخدم كتابة المطالبات وتلقي الردود من نموذج WebLLM الذي يعمل محليًا. نظرًا لأن النموذج يعمل بالكامل داخل المتصفح، فإن الردود تكون خاصة ولا تتضمن أي معالجة من جانب الخادم.
مؤشر الحالة في شريط الإدارة (Admin-Bar Status Indicator)
يتضمن شريط إدارة WordPress مؤشر حالة يوضح الحالة الحالية لمحرك WebLLM:
| الحالة | المعنى |
|---|---|
| Loading | يقوم محرك MLC بالتهيئة أو تنزيل أوزان النموذج. |
| Ready | تم تحميل النموذج وهو جاهز للاستدلال. |
| Idle | تم تحميل المحرك، لكن علامة التبويب SharedWorker غير نشطة. |
| Error | فشل المحرك في التهيئة — تحقق من وحدة تحكم المتصفح (browser console) للحصول على التفاصيل. |
يتم تحديث المؤشر في الوقت الفعلي دون الحاجة إلى إعادة تحميل الصفحة.
كيفية تفعيل أو إلغاء تفعيل الأداة
- اذهب إلى Ultimate Multisite → AI Connector في لوحة تحكم الشبكة (network admin).
- ابحث عن لوحة Connector.
- قم بتبديل Enable floating chat widget (تفعيل أداة الدردشة العائمة) على أو إيقاف.
- احفظ الإعدادات.
يمكن أيضًا تفعيل أو إلغاء تفعيل الأداة لكل موقع على حدة من لوحة تحكم الموقع نفسه إذا منح مسؤول الشبكة هذه الصلاحية.
إعدادات الأداة (Widget Settings)
تحتوي لوحة Connector في Ultimate Multisite → AI Connector على الإعدادات التالية لأداة الدردشة العائمة:
تفعيل أداة الدردشة العائمة (Enable Floating Chat Widget)
يقوم بتبديل أداة الدردشة على أو إيقاف لجميع الشبكة. عند تعطيلها، لا تظهر الأداة على أي صفحة أمامية، بغض النظر عن دور المستخدم.
الافتراضي: إيقاف (Off)
سلوك المطالبة التلقائية (Auto-Prompt Behaviour)
يتحكم فيما إذا كانت أداة الدردشة ترسل مطالبة تلقائيًا عندما يفتحها المستخدم.
| الخيار | السلوك |
|---|---|
| Disabled | تفتح الأداة على دردشة فارغة — يكتب المستخدم مطالبته الخاصة. |
| Page context | تفتح الأداة بمطالبة مسبقة التعبئة بناءً على عنوان ومحتوى الصفحة الحالية. |
| Custom prompt | تفتح الأداة بمطالبة مخصصة تحددها في الحقل أدناه. |
عند تعيينها على Custom prompt، يظهر حقل نصي إضافي حيث يمكنك إدخال نص المطالبة الاف تراضية. يدعم متغيرات القالب الأساسية:
{site_name}— اسم الموقع الحالي.{page_title}— عنوان الصفحة الحالية.{user_display_name}— اسم المستخدم المعروض للمستخدم المسجل الدخول.
الافتراضي: إيقاف (Disabled)
بيئة تشغيل SharedWorker (SharedWorker Runtime)
يقدم الإصدار 1.1.0 بيئة تشغيل SharedWorker لمحرك MLC. في السابق، كانت كل علامة تبويب متصفح تستخدم WebLLM تقوم بتحميل نسختها الخاصة من النموذج، مما يتنافس على ذاكرة GPU ويسبب مشاكل في الأداء على الأجهزة ذات ذاكرة الوصول العشوائي (VRAM) المحدودة.
باستخدام بيئة تشغيل SharedWorker، تعمل علامة تبويب واحدة كمضيف للمحرك. تتواصل جميع علامات التبويب الأخرى مع هذه النسخة الواحدة عبر قناة رسائل العامل (worker's message channel). والنتيجة هي:
- جلسة GPU واحدة مشتركة بين جميع علامات التبويب المفتوحة.
- استجابات أسرع بمجرد تحميل النموذج (لا يوجد تهيئة متكررة).
- استخدام أقل للذاكرة القصوى على الجهاز.
تكون SharedWorker شفافة للمستخدمين. يعكس مؤشر حالة شريط الإدارة دائمًا حالة المحرك المشترك، وليس حالة علامة التبويب الفردية.
طبقة apiFetch Middleware
تقوم الإضافة بتثبيت طبقة apiFetch middleware التي تمنع طلبات واجهة برمجة تطبيقات WordPress REST التي تطابق نمط AI Client SDK. فبدلاً من إجراء طلب HTTP ذهاب وعودة إلى الخادم، يتم توجيه هذه الطلبات مباشرةً إلى وسيط WebLLM المحلي الذي يعمل في SharedWorker.
هذا يعني أن الإضافات والقوالب التي تستخدم واجهة برمجة تطبيقات apiFetch القياسية في WordPress لاستدعاء نقاط نهاية الذكاء الاصطناعي ستستفيد تلقائيًا من النموذج الموجود في المتصفح عند توفره، دون الحاجة إلى تغيير أي كود.
الخطافات والفلاتر (Hooks and Filters)
الفلاتر (Filters)
wpai_preferred_text_models— تسجيل محرك المتصفح WebLLM كنموذج نصي مفضل. تقوم الإضافة بالاتصال بهذا الفلتر تلقائيًا عند تكوين المحرك وتوفره.ultimate_webllm_widget_enabled— تجاوز حالة تفعيل الأداة لمستخدم أو سياق معين. يجب أن تعيد القيمةtrueأوfalse.ultimate_webllm_auto_prompt— تعديل نص المطالبة التلقائية قبل إرسالها إلى الأداة. يستقبل سلسلة المطالبة وكائنWP_Postالحالي.
استكشاف الأخطاء وإصلاحها (Troubleshooting)
لا تظهر أداة الدردشة
- تأكد من أن المستخدم مسجل الدخول — تظهر الأداة للمستخدمين المصادق عليهم فقط.
- تحقق من أن Enable floating chat widget (تفعيل أداة الدردشة العائمة) مُفعّل في لوحة Connector.
- تحقق من أن متصفح المستخدم يدعم WebGPU (انظر المتطلبات أعلاه).
مؤشر شريط الإدارة يعرض "Error"
افتح وحدة تحكم المطور في المتصفح (F12) وابحث عن أخطاء متعلقة بـ WebLLM. الأسباب الشائعة:
- المتصفح لا يدعم WebGPU.
- فشل تنزيل أوزان النموذج — تحقق من اتصال الشبكة وحاول مسح ذاكرة التخزين المؤقت IndexedDB في أدوات مطور المتصفح (Application → IndexedDB).
- يمنع أحد إضافات المتصفح عمل SharedWorker.
تنزيل أوزان النموذج في كل مرة
تستخدم الإضافة IndexedDB كخلفية للتخزين المؤقت لضمان بقاء أوزان النموذج عبر إعادة توجيهات CDN. إذا كانت الأوزان تُعاد تنزيلها في كل زيارة، فتحقق من أن إعدادات الخصوصية أو الإضافات في المتصفح لا تقوم بمسح IndexedDB.
سجل التغييرات (Changelog)
راجع Changelog لمعرفة سجل الإصدار الكامل.