Ultimate AI Connector for WebLLM
Ultimate AI Connector for WebLLM آپ کے WordPress multisite network میں براؤزر کی مقامی AI inference کی سہولت لاتا ہے۔ یہ WebLLM اور MLC engine کا استعمال کرتے ہوئے بڑے زبان کے ماڈلز (large language models) کو مکمل طور پر براؤزر میں چلاتا ہے — اس کے لیے کسی API key، بیرونی کال، یا صارف کے ڈیوائس سے ڈیٹا باہر بھیجنے کی ضرورت نہیں ہے۔
اہم خصوصیات (Key Features)
- براؤزر پر inference: LLM WebLLM/MLC کے ذریعے براہ راست وزٹر کے براؤزر میں چلتا ہے — کسی سرور GPU کی ضرورت نہیں
- فلٹنگ چیٹ وِجٹ (Floating chat widget): لاگ ان صارفین فرنٹ اینڈ سے براہ راست براؤزر-سائیڈ LLM کو پرامپٹ دے سکتے ہیں
- ایڈمن-بار اسٹیٹس انڈیکیٹر (Admin-bar status indicator): ورڈپریس ایڈمن بار میں WebLLM engine کی حقیقی وقت کی حیثیت نظر آتی ہے
- SharedWorker runtime: متعدد براؤزر ٹیب GPU وسائل کے لیے مقابلہ کرنے کے بجائے ایک ہی GPU سیشن شیئر کرتے ہیں
- apiFetch middleware: WordPress REST کی وہ درخواستیں جو AI Client SDK کے پیٹرن سے ملتی ہیں، انہیں شفاف طریقے سے مقامی WebLLM broker تک بھیجا جاتا ہے — کوئی لوپ بیک HTTP راؤنڈ ٹرپ نہیں
- Widget settings UI: چیٹ وِجٹ کو آن یا آف کرنے اور auto-prompt کے رویے کو ترتیب دینے کے لیے Connector panel کی سیٹنگز
- IndexedDB cache: ماڈل ویٹ ڈاؤن لوڈ CDN ریڈائریکٹس سے بچ جاتے ہیں جو ڈیفالٹ Cache API پاتھ کو توڑ دیتے ہیں
- wpai filter integration:
wpai_preferred_text_modelsfilter میں hook ہوتا ہے تاکہ AI Experiments فیچر، جب ترتیب دیا جائے تو براؤزر engine پر بھیج دیا جائے۔
ضروریات (Requirements)
- WordPress 5.3 یا اس سے زیادہ
- PHP 7.4 یا اس سے زیادہ
- Ultimate Multisite plugin (active)
- WebGPU سپورٹ والا براؤزر (Chrome 113+, Edge 113+, یا WebGPU کے ساتھ فعال Firefox Nightly)
تنصیب (Installation)
- ایڈآن فائلوں کو اپنے
/wp-content/plugins/ڈائریکٹری میں اپ لوڈ کریں۔ - ورڈپریس میں 'Plugins' مینیو کے ذریعے پلگ ان کو فعال (Activate) کریں۔
- ایڈآن کو ترتیب دینے کے لیے Ultimate Multisite → AI Connector پر جائیں۔
فلوٹنگ چیٹ وِجٹ (Floating Chat Widget)
یہ فلوٹنگ چیٹ وِجٹ کسی بھی لاگ ان صارف کو اس کے فرنٹ اینڈ سے براہ راست براؤزر-سائیڈ LLM کے ساتھ بات چیت کرنے کی اجازت دیتا ہے، بغیر اس صفحے کو چھوڑے جہاں وہ موجود ہے۔
یہ کیا کرتا ہے (What It Does)
جب اسے فعال کیا جاتا ہے، تو لاگ ان صارفین کے لیے ہر فرنٹ-اینڈ صفحے کے کونے میں ایک چیٹ آئیکن ظاہر ہوتا ہے۔ آئیکن پر کلک کرنے سے ایک چیٹ پینل کھل جاتا ہے جہاں صارف پرامپٹ ٹائپ کر سکتا ہے اور مقامی طور پر چلنے والے WebLLM ماڈل سے جوابات حاصل کر سکتا ہے۔ چونکہ ماڈل مکمل طور پر براؤزر میں چلتا ہے، اس لیے جوابات نجی ہوتے ہیں اور کسی سرور سائیڈ پروسیسنگ کا تقاضا نہیں کرتے۔
ایڈمن-بار اسٹیٹس انڈیکیٹر (Admin-Bar Status Indicator)
ورڈپریس ایڈمن بار میں ایک اسٹیٹس انڈیکیٹر شامل ہے جو WebLLM engine کی موجودہ حالت دکھاتا ہے:
| Status | Meaning |
|---|---|
| Loading | MLC engine شروع ہو رہا ہے یا ماڈل ویٹ ڈاؤن لوڈ کر رہا ہے |
| Ready | ماڈل لوڈ ہو چکا ہے اور inference کے لیے دستیاب ہے |
| Idle | engine لوڈ ہے لیکن SharedWorker ٹیب فعال نہیں ہے |
| Error | engine شروع ہونے میں ناکام رہا — تفصیلات کے لیے براؤزر کنسول چیک کریں |
یہ انڈیکیٹر پیج کو دوبارہ لوڈ کیے بغیر حقیقی وقت میں اپ ڈیٹ ہوتا ہے۔
وِجٹ کو فعال یا غیر فعال کیسے کریں (How to Enable or Disable the Widget)
- نیٹ ورک ایڈمن میں Ultimate Multisite → AI Connector پر جائیں۔
- Connector پینل تلاش کریں۔
- Enable floating chat widget کو آن یا آف کریں۔
- سیٹنگز محفوظ (Save) کریں۔
اگر نیٹ ورک ایڈمنسٹریٹر نے یہ صلاحیت دی ہے، تو وِجٹ کو سائٹ کے اپنے ایڈمن سے بھی سائٹ بہ بہ فعال یا غیر فعال کیا جا سکتا ہے۔
وِجٹ سیٹنگز (Widget Settings)
Ultimate Multisite → AI Connector میں موجود Connector پینل میں فلوٹنگ چیٹ وِجٹ کے لیے درج ذیل سیٹنگز موجود ہیں:
Enable Floating Chat Widget
یہ پورے نیٹ ورک کے لیے چیٹ وِجٹ کو آن یا آف کرتا ہے۔ جب اسے غیر فعال کیا جاتا ہے، تو وِجٹ کسی بھی فرنٹ-اینڈ صفحے پر ظاہر نہیں ہوتا، چاہے صارف کا کردار کچھ بھی ہو۔
Default: Off
Auto-Prompt Behaviour
یہ کنٹرول کرتا ہے کہ کیا چیٹ وِجٹ صارف کے اسے کھولنے پر خود بخود کوئی پرامپٹ بھیجتا ہے۔
| Option | Behaviour |
|---|---|
| Disabled | وِجٹ ایک خالی چیٹ کے ساتھ کھلتا ہے — صارف اپنا پرامپٹ ٹائپ کرتا ہے |
| Page context | وِجٹ موجودہ صفحے کے عنوان اور مواد کی بنیاد پر پہلے سے بھرے ہوئے پرامپٹ کے ساتھ کھلتا ہے |
| Custom prompt | وِجٹ ایک کسٹم پرامپٹ کے ساتھ کھلتا ہے جو آپ نیچے دیے گئے فیلڈ میں طے کرتے ہیں |
جب اسے Custom prompt پر سیٹ کیا جاتا ہے، تو ایک اضافی ٹیکسٹ فیلڈ ظاہر ہوتا ہے جہاں آپ ڈیفالٹ پرامپٹ ٹیکسٹ درج کر سکتے ہیں۔ یہ بنیادی ٹیمپلیٹ ویری ایبلز کو سپورٹ کرتا ہے:
{site_name}— موجودہ سائٹ کا نام{page_title}— موجودہ صفحے کا عنوان{user_display_name}— لاگ ان صارف کا ڈسپلے نام
Default: Disabled
SharedWorker Runtime
Version 1.1.0 نے MLC engine کے لیے ایک SharedWorker runtime متعارف کرایا ہے۔ پہلے، ہر براؤزر ٹیب جو WebLLM استعمال کرتا تھا، ماڈل کی اپنی انسٹنس لوڈ کرتا تھا، جس سے GPU میموری کے لیے مقابلہ ہوتا تھا اور محدود VRAM والے ڈیوائسز پر کارکردگی کے مسائل پیدا ہوتے تھے۔
SharedWorker runtime کے ساتھ، ایک ٹیب engine host کے طور پر کام کرتا ہے۔ دیگر تمام ٹیبز اس سنگل انسٹنس کے ساتھ ورکر کے میسج چینل کے ذریعے بات چیت کرتے ہیں۔ نتیجہ یہ ہے:
- تمام کھلے ٹیبز میں شیئر کردہ ایک GPU سیشن
- ماڈل لوڈ ہونے کے بعد تیز جوابات (کوئی دہرائی گئی شروع کیساٹ نہیں)
- ڈیوائس پر کم ترین پی크 میموری استعمال
SharedWorker صارفین کے لیے نظر نہیں آتا۔ ایڈمن-بار اسٹیٹس انڈیکیٹر ہمیشہ شیئر کردہ engine کی حالت کو ظاہر کرتا ہے، نہ کہ انفرادی ٹیب کو۔
apiFetch Middleware
یہ ایڈآن ایک apiFetch middleware انسٹال کرتا ہے جو WordPress REST API کی ان درخواستوں کو روکتا ہے جو AI Client SDK کے پیٹرن سے ملتی ہیں۔ سرور کو لوپ بیک HTTP درخواست بھیجنے کے بجائے، ان درخواستوں کو براہ راست SharedWorker میں چلنے والے مقامی WebLLM broker تک بھیج دیا جاتا ہے۔
اس کا مطلب ہے کہ وہ پلگ انز اور تھیمز جو AI endpoints کو کال کرنے کے لیے معیاری WordPress apiFetch API استعمال کرتے ہیں، جب یہ دستیاب ہوتا ہے تو خود بخود براؤزر-سائیڈ ماڈل سے فائدہ اٹھائیں گے، جس کے لیے کسی کوڈ میں تبدیلی کی ضرورت نہیں ہے۔
Hooks and Filters
Filters
wpai_preferred_text_models— WebLLM براؤزر engine کو ایک ترجیحی ٹیکسٹ ماڈل کے طور پر رجسٹر کریں۔ ایڈآن جب engine کو ترتیب دیا جاتا ہے اور دستیاب ہوتا ہے تو خود بخود اس فلٹر میں hook ہوتا ہے۔ultimate_webllm_widget_enabled— کسی مخصوص صارف یا سیاق و سباق کے لیے وِجٹ کے فعال اسٹیٹ کو اووررائڈ کریں۔trueیاfalseواپس کریں۔ultimate_webllm_auto_prompt— وِجٹ کو بھیجنے سے پہلے auto-prompt ٹیکسٹ کو تبدیل کریں۔ یہ پرامپٹ سٹرنگ اور موجودہWP_Postآبجیکٹ وصول کرتا ہے۔
ٹرابل شوٹنگ (Troubleshooting)
چیٹ وِجٹ نظر نہیں آتا
- تصدیق کریں کہ صارف لاگ ان ہے — وِجٹ صرف تصدیق شدہ صارفین کو دکھایا جاتا ہے
- چیک کریں کہ Connector panel میں Enable floating chat widget آن کیا گیا ہے
- تصدیق کریں کہ صارف کا براؤزر WebGPU کو سپورٹ کرتا ہے (اوپر ضروریات دیکھیں)
ایڈمن-بار انڈیکیٹر "Error" دکھاتا ہے
براؤزر ڈویلپر کنسول (F12) کھولیں اور WebLLM سے متعلق غلطیوں کی تلاش کریں۔ عام وجوہات:
- براؤزر WebGPU کو سپورٹ نہیں کرتا
- ماڈل ویٹ ڈاؤن لوڈ ناکام رہا — نیٹ ورک کنیکٹیویٹی چیک کریں اور براؤزر ڈویلپر ٹولز (Application → IndexedDB) میں IndexedDB کی کیش کو صاف کرنے کی کوشش کریں۔
- کوئی براؤزر ایکسٹینشن SharedWorker کو بلاک کر رہا ہے
ماڈل ویٹ ہر بار ڈاؤن لوڈ ہوتا ہے
ایڈآن ماڈل ویٹ کو محفوظ رکھنے کے لیے IndexedDB کو کیش بیک اینڈ کے طور پر استعمال کرتا ہے تاکہ CDN ریڈائریکٹس سے بچا جا سکے۔ اگر ویٹ ہر وزٹ پر دوبارہ ڈاؤن لوڈ ہو رہے ہیں، تو چیک کریں کہ آیا IndexedDB کو براؤزر کی پرائیویسی سیٹنگ یا ایکسٹینشن کے ذریعے صاف کیا جا رہا ہے۔
Changelog
مکمل ورژن ہسٹری کے لیے Changelog دیکھیں۔