Ultimate AI Connector for WebLLM
Ultimate AI Connector for WebLLM porta l'inferenza AI nativa del browser alla tua rete multisite WordPress. Esegue i modelli linguistici di grandi dimensioni (LLM) interamente nel browser utilizzando WebLLM e il motore MLC: nessuna chiave API, nessuna chiamata esterna, nessun dato che lascia il dispositivo dell'utente.
Funzionalità Principali
- Inferenza lato browser: L'LLM viene eseguito localmente nel browser del visitatore tramite WebLLM/MLC — non è richiesta una GPU server
- Widget chat fluttuante: Gli utenti loggati possono inviare prompt all'LLM lato browser direttamente dal front-end
- Indicatore stato nella admin-bar: Lo stato in tempo reale del motore WebLLM è visibile nella admin-bar di WordPress
- SharedWorker runtime: Più schede del browser condividono una singola sessione GPU invece di competere per le risorse GPU
- apiFetch middleware: Le richieste WordPress REST che corrispondono al pattern AI Client SDK vengono reindirizzate in modo trasparente al broker locale WebLLM — nessun round-trip HTTP di loopback
- Interfaccia utente impostazioni widget: Pannello di impostazioni del Connector per attivare/disattivare il widget chat e configurare il comportamento dell'auto-prompt
- Cache IndexedDB: I download dei pesi del modello sopravvivono ai reindirizzamenti CDN che interrompono il percorso predefinito dell'API Cache
- Integrazione filtro wpai: Si aggancia al filtro
wpai_preferred_text_modelsin modo che la funzione AI Experiments venga reindirizzata al motore browser quando configurata
Requisiti
- WordPress 5.3 o superiore
- PHP 7.4 o superiore
- Plugin Ultimate Multisite (attivo)
- Un browser con supporto WebGPU (Chrome 113+, Edge 113+, o Firefox Nightly con WebGPU abilitato)
Installazione
- Carica i file dell'addon nella directory
/wp-content/plugins/ - Attiva il plugin dal menu 'Plugin' di WordPress
- Vai su Ultimate Multisite → AI Connector per configurare l'addon
Widget Chat Fluttuante
Il widget chat fluttuante consente a qualsiasi utente loggato di interagire con l'LLM lato browser direttamente dal tuo front-end, senza lasciare la pagina su cui si trova.
Cosa Fa
Quando abilitato, un'icona di chat appare nell'angolo di ogni pagina front-end per gli utenti loggati. Cliccare sull'icona apre un pannello di chat dove l'utente può digitare prompt e ricevere risposte dal modello WebLLM eseguito localmente. Poiché il modello viene eseguito interamente nel browser, le risposte sono private e non coinvolgono alcun elaborazione lato server.
Indicatore Stato nella Admin-Bar
La admin-bar di WordPress include un indicatore di stato che mostra lo stato attuale del motore WebLLM:
| Stato | Significato |
|---|---|
| Loading | Il motore MLC sta inizializzando o scaricando i pesi del modello |
| Ready | Il modello è caricato e disponibile per l'inferenza |
| Idle | Il motore è caricato, ma la SharedWorker tab non è attiva |
| Error | Il motore non è riuscito ad inizializzarsi — controlla la console del browser per i dettagli |
L'indicatore si aggiorna in tempo reale senza richiedere un ricaricamento della pagina.
Come Abilitare o Disabilitare il Widget
- Vai su Ultimate Multisite → AI Connector nell'admin della rete
- Trova il pannello Connector
- Attiva o disattiva Enable floating chat widget
- Salva le impostazioni
Il widget può anche essere abilitato o disabilitato per sito specifico dall'admin del sito stesso, se l'amministratore di rete ha concesso tale capacità.
Impostazioni Widget
Il pannello Connector in Ultimate Multisite → AI Connector contiene le seguenti impostazioni per il widget chat fluttuante:
Enable Floating Chat Widget
Attiva o disattiva il widget chat per l'intera rete. Quando disabilitato, il widget non appare su nessuna pagina front-end, indipendentemente dal ruolo dell'utente.
Predefinito: Disattivato
Auto-Prompt Behaviour
Controlla se il widget chat invia automaticamente un prompt quando un utente lo apre.
| Opzione | Comportamento |
|---|---|
| Disabled | Il widget si apre con una chat vuota — l'utente digita il proprio prompt |
| Page context | Il widget si apre con un prompt precompilato basato sul titolo e sul contenuto della pagina corrente |
| Custom prompt | Il widget si apre con un prompt personalizzato che definisci nel campo sottostante |
Impostato su Custom prompt, appare un campo di testo aggiuntivo dove puoi inserire il testo del prompt predefinito. Supporta variabili di template di base:
{site_name}— il nome del sito corrente{page_title}— il titolo della pagina corrente{user_display_name}— il nome visualizzato dell'utente loggato
Predefinito: Disattivato
SharedWorker Runtime
La versione 1.1.0 introduce un runtime SharedWorker per il motore MLC. In precedenza, ogni scheda del browser che utilizzava WebLLM caricava la propria istanza del modello, competendo per la memoria GPU e causando problemi di prestazioni su dispositivi con VRAM limitata.
Con il runtime SharedWorker, una scheda funge da host del motore. Tutte le altre schede comunicano con questa singola istanza tramite il canale messaggio del worker. Il risultato è:
- Una singola sessione GPU condivisa tra tutte le schede aperte
- Risposte più veloci una volta caricato il modello (nessuna inizializzazione ripetuta)
- Un utilizzo di memoria di picco inferiore sul dispositivo
Il SharedWorker è trasparente per gli utenti. L'indicatore di stato nella admin-bar riflette sempre lo stato del motore condiviso, non quello della singola scheda.
apiFetch Middleware
L'addon installa un middleware apiFetch che intercetta le richieste WordPress REST API corrispondenti al pattern AI Client SDK. Invece di effettuare una richiesta HTTP di loopback al server, queste richieste vengono reindirizzate direttamente al broker locale WebLLM che gira nel SharedWorker.
Ciò significa che plugin e temi che utilizzano l'API standard apiFetch di WordPress per chiamare endpoint AI beneficeranno automaticamente del modello lato browser quando sarà disponibile, senza che sia necessario modificare alcun codice.
Hooks e Filtri
Filtri
wpai_preferred_text_models— Registra il motore browser WebLLM come modello di testo preferito. L'addon si aggancia a questo filtro automaticamente quando il motore è configurato e disponibile.ultimate_webllm_widget_enabled— Sovrascrive lo stato di abilitazione del widget per un utente o un contesto specifico. Restituiscitrueofalse.ultimate_webllm_auto_prompt— Modifica il testo dell'auto-prompt prima che venga inviato al widget. Riceve la stringa del prompt e l'oggettoWP_Postcorrente.
Risoluzione dei Problemi
Il widget chat non appare
- Conferma che l'utente è loggato — il widget è mostrato solo agli utenti autenticati
- Controlla che Enable floating chat widget sia attivato nel pannello Connector
- Verifica che il browser dell'utente supporti WebGPU (vedi Requisiti sopra)
L'indicatore nella admin-bar mostra "Error"
Apri la console degli sviluppatori del browser (F12) e cerca errori relativi a WebLLM. Cause comuni:
- Il browser non supporta WebGPU
- Il download dei pesi del modello è fallito — controlla la connettività di rete e prova a cancellare la cache IndexedDB negli strumenti per sviluppatori del browser (Application → IndexedDB)
- Un'estensione del browser sta bloccando il SharedWorker
I pesi del modello vengono scaricati ogni volta
L'addon utilizza IndexedDB come backend di cache per garantire che i pesi del modello sopravvivano ai reindirizzamenti CDN. Se i pesi vengono scaricati nuovamente ad ogni visita, verifica che IndexedDB non venga cancellato da una impostazione di privacy del browser o da un'estensione.
Changelog
Consulta Changelog per la cronologia completa delle versioni.