Ultimate AI Connector for WebLLM
Ultimate AI Connector for WebLLM aduce inferența AI nativă în browser pe întreaga ta rețea multisite WordPress. Rulează modele lingvistice mari (LLM) integral în browser, folosind WebLLM și motorul MLC — fără chei API, fără apeluri externe și fără date care să părăsească dispozitivul utilizatorului.
Funcționalități Cheie
- Inferență pe partea de browser: LLM rulează local în browser-ul vizitatorului prin WebLLM/MLC — nu este necesară o GPU de server
- Widget de chat plutitor: Utilizatorii logați pot solicita direct LLM-ul pe partea de browser, de pe front-end
- Indicator de stare în admin-bar: Starea în timp real a motorului WebLLM este vizibilă în admin-bara WordPress
- SharedWorker runtime: Multiple tab-uri de browser își partajează o singură sesiune GPU, în loc să concureze pentru resursele GPU
- apiFetch middleware: Cererile WordPress REST care se potrivesc cu pattern-ul AI Client SDK sunt direcționate transparent către broker-ul local WebLLM — fără întoarcere HTTP de tip loopback
- UI setări widget: Panoul Connector conține setările pentru a activa/dezactiva widget-ul de chat și pentru a configura comportamentul auto-prompt
- Cache IndexedDB: Descărcările greutăților modelelor supraviețuiesc redirecționărilor CDN care își rup calea implicită a Cache API
- Integrare wpai filter: Se integrează în filtrul
wpai_preferred_text_modelsastfel încât funcționalitatea AI Experiments să folosească motorul browser-ului, când este configurată
Cerințe
- WordPress 5.3 sau mai nou
- PHP 7.4 sau mai nou
- Plugin-ul Ultimate Multisite (activ)
- Un browser cu suport WebGPU (Chrome 113+, Edge 113+, sau Firefox Nightly cu WebGPU activat)
Instalare
- Uploadează fișierele addon-ului în directorul tău
/wp-content/plugins/ - Activează plugin-ul prin meniul 'Plugins' din WordPress
- Navighează la Ultimate Multisite → AI Connector pentru a configura addon-ul
Widget-ul de Chat Plutitor
Widget-ul de chat plutitor permite oricărui utilizator logat să interacționeze cu LLM-ul pe partea de browser direct de pe front-end, fără a părăsi pagina pe care se află.
Ce face
Când este activat, apare o pictogramă de chat în colțul fiecărei pagini de pe front-end pentru utilizatorii logați. Clicul pe pictogramă deschide un panou de chat unde utilizatorul poate introduce prompturi și primește răspunsuri de la modelul WebLLM care rulează local. Deoarece modelul rulează integral în browser, răspunsurile sunt private și nu implică nicio procesare pe partea de server.
Indicatorul de Stare în Admin-Bar
Admin-bara WordPress include un indicator de stare care arată starea curentă a motorului WebLLM:
| Status | Semnificație |
|---|---|
| Loading | Motorul MLC inițializează sau descărcă greutățile modelelor |
| Ready | Modelul este încărcat și disponibil pentru inferență |
| Idle | Motorul este încărcat, dar tab-ul SharedWorker nu este activ |
| Error | Motorul nu a reușit să se inițializeze — verifică consola browser-ului pentru detalii |
Indicatorul se actualizează în timp real, fără a necesita reîncărcarea paginii.
Cum să activezi sau să dezactivezi Widget-ul
- Mergi la Ultimate Multisite → AI Connector în admin-ul rețelei
- Găsește panoul Connector
- Activează sau dezactivează Enable floating chat widget
- Salvează setările
Widget-ul poate fi de asemenea activat sau dezactivat pe site individual, de către adminul site-ului, dacă administratorul rețelei i-a acordat această capacitate.
Setările Widget-ului
Panoul Connector din Ultimate Multisite → AI Connector conține următoarele setări pentru widget-ul de chat plutitor:
Enable Floating Chat Widget
Activează sau dezactivează widget-ul de chat pentru întreaga rețea. Când este dezactivat, widget-ul nu apare pe nicio pagină de pe front-end, indiferent de rolul utilizatorului.
Implicit: Dezactivat
Auto-Prompt Behaviour
Controlează dacă widget-ul de chat trimite automat un prompt atunci când un utilizator îl deschide.
| Opțiune | Comportament |
|---|---|
| Disabled | Widget-ul se deschide cu un chat gol — utilizatorul își tastează propriul prompt |
| Page context | Widget-ul se deschide cu un prompt preumplut, bazat pe titlul și conținutul paginii curente |
| Custom prompt | Widget-ul se deschide cu un prompt personalizat pe care îl definești în câmpul de mai jos |
Când este setat pe Custom prompt, apare un câmp de text suplimentar unde poți introduce textul promptului implicit. Suportă variabile de tip șablon de bază:
{site_name}— numele site-ului curent{page_title}— titlul paginii curente{user_display_name}— numele de afișare al utilizatorului logat
Implicit: Dezactivat
SharedWorker Runtime
Versiunea 1.1.0 introduce un SharedWorker runtime pentru motorul MLC. Anterior, fiecare tab de browser care folosea WebLLM încărca propria sa instanță a modelului, concurențind pentru memoria GPU și cauzând probleme de performanță pe dispozitive cu VRAM limitat.
Cu SharedWorker runtime, o singură tab acționează ca gazdă a motorului. Toate celelalte tab-uri comunică cu acea singură instanță prin canalul de mesaje al worker-ului. Rezultatul este:
- O singură sesiune GPU partajată între toate tab-urile deschise
- Răspunsuri mai rapide odată ce modelul este încărcat (fără inițializări repetate)
- Utilizare de memorie de vârf mai mică pe dispozitiv
SharedWorker-ul este transparent pentru utilizatori. Indicatorul de stare din admin-bar reflectă întotdeauna starea motorului partajat, nu a tab-ului individual.
apiFetch Middleware
Addon-ul instalează un middleware apiFetch care interceptează cererile WordPress REST API care se potrivesc cu pattern-ul AI Client SDK. În loc să facă o cerere HTTP de tip loopback către server, aceste cereri sunt direcționate direct către broker-ul local WebLLM care rulează în SharedWorker.
Acest lucru înseamnă că plugin-urile și temele care folosesc API-ul standard WordPress apiFetch pentru a apela endpoint-uri AI vor beneficia automat de modelul pe partea de browser, când acesta este disponibil, fără a fi necesare modificări de cod.
Hooks și Filtre
Filtre
wpai_preferred_text_models— Înregistrează motorul browser WebLLM ca model text preferat. Addon-ul se integrează automat în acest filtru atunci când motorul este configurat și disponibil.ultimate_webllm_widget_enabled— Overridează starea de activare a widget-ului pentru un utilizator sau un context specific. Returneazătruesaufalse.ultimate_webllm_auto_prompt— Modifică textul auto-prompt înainte ca acesta să fie trimis către widget. Primește șirul de prompt și obiectul curentWP_Post.
Depanare
Widget-ul de chat nu apare
- Confirmă că utilizatorul este logat — widget-ul este arătat doar utilizatorilor autentificați
- Verifică dacă Enable floating chat widget este activat în panoul Connector
- Verifică dacă browser-ul utilizatorului suportă WebGPU (vezi Cerințe de mai sus)
Indicatorul admin-bar arată "Error"
Deschide consola dezvoltatorului browser-ului (F12) și caută erorile legate de WebLLM. Cauze comune:
- Browser-ul nu suportă WebGPU
- Descărcarea greutăților modelului a eșuat — verifică conectivitatea rețelei și încearcă să ștergi cache-ul IndexedDB în instrumentele dezvoltatorului browser-ului (Application → IndexedDB)
- O extensie de browser blochează SharedWorker-ul
Greutățile modelelor se descărcă în fiecare ocazie
Addon-ul folosește IndexedDB ca backend de cache pentru a asigura că greutățile modelelor supraviețuiesc redirecționărilor CDN. Dacă greutățile se descărcă din nou la fiecare vizită, verifică dacă IndexedDB nu este șters de o setare de confidențialitate a browser-ului sau de o extensie.
Changelog
Vezi Changelog pentru istoricul complet al versiunilor.