Ultimate AI Connector for WebLLM
Ultimate AI Connector for WebLLM bringer browser-native AI-inferens til dit WordPress multisite-netværk. Den kører store sprogmodeller udelukkende i browseren ved hjælp af WebLLM og MLC-motoren — ingen API-nøgler, ingen eksterne kald, ingen data forlader brugerens enhed.
Nøglefunktioner
- Browser-side inferens: LLM kører lokalt i besøgendes browser via WebLLM/MLC — ingen server-GPU påkrævet
- Flydende chat-widget: Indloggede brugere kan prompte den browser-side LLM direkte fra frontenden
- Statusindikator i admin-linjen: Realtidsstatus for WebLLM-motoren synlig i WordPress admin-linjen
- SharedWorker-runtime: Flere browserfaner deler én GPU-session i stedet for at kæmpe om GPU-ressourcer
- apiFetch-middleware: WordPress REST-anmodninger, der matcher AI Client SDK-mønsteret, routes transparent til den lokale WebLLM-broker — ingen loopback HTTP-returrejse
- Widget-indstillings-UI: Connector-panelindstillinger til at slå chat-widgetten til/fra og konfigurere auto-prompt-adfærd
- IndexedDB-cache: Downloads af modelvægte overlever CDN-omdirigeringer, der bryder den standardmæssige Cache API-sti
- wpai-filterintegration: Kobler sig på filteret
wpai_preferred_text_models, så AI Experiments-funktionen routes til browsermotoren, når den er konfigureret
Krav
- WordPress 5.3 eller nyere
- PHP 7.4 eller nyere
- Ultimate Multisite plugin (aktivt)
- En browser med WebGPU-understøttelse (Chrome 113+, Edge 113+ eller Firefox Nightly med WebGPU aktiveret)
Installation
- Upload addon-filerne til din
/wp-content/plugins/mappe - Aktivér pluginet via menuen 'Plugins' i WordPress
- Gå til Ultimate Multisite → AI Connector for at konfigurere addon'et
Flydende chat-widget
Den flydende chat-widget giver enhver indlogget bruger mulighed for at interagere med den browser-side LLM direkte fra din frontend uden at forlade den side, de er på.
Hvad den gør
Når den er aktiveret, vises et chat-ikon i hjørnet af hver frontend-side for indloggede brugere. Ved klik på ikonet åbnes et chatpanel, hvor brugeren kan skrive prompts og modtage svar fra den lokalt kørende WebLLM-model. Fordi modellen kører udelukkende i browseren, er svar private og involverer ingen server-side behandling.
Statusindikator i admin-linjen
WordPress admin-linjen indeholder en statusindikator, der viser den aktuelle tilstand for WebLLM-motoren:
| Status | Betydning |
|---|---|
| Indlæser | MLC-motoren initialiserer eller downloader modelvægte |
| Klar | Modellen er indlæst og tilgængelig for inferens |
| Inaktiv | Motoren er indlæst, men SharedWorker-fanen er ikke aktiv |
| Fejl | Motoren kunne ikke initialiseres — tjek browserkonsollen for detaljer |
Indikatoren opdateres i realtid uden at kræve en genindlæsning af siden.
Sådan aktiverer eller deaktiverer du widgetten
- Gå til Ultimate Multisite → AI Connector i netværksadministrationen
- Find Connector-panelet
- Slå Aktivér flydende chat-widget til eller fra
- Gem indstillinger
Widgetten kan også aktiveres eller deaktiveres pr. site fra sitets egen administration, hvis netværksadministratoren har givet den mulighed.
Widget-indstillinger
Connector-panelet i Ultimate Multisite → AI Connector indeholder følgende indstillinger for den flydende chat-widget:
Aktivér flydende chat-widget
Slår chat-widgetten til eller fra for hele netværket. Når den er deaktiveret, vises widgetten ikke på nogen frontend-side, uanset brugerrolle.
Standard: Fra
Auto-Prompt-adfærd
Styrer, om chat-widgetten automatisk sender en prompt, når en bruger åbner den.
| Indstilling | Adfærd |
|---|---|
| Deaktiveret | Widgetten åbner til en tom chat — brugeren skriver sin egen prompt |
| Sidekontekst | Widgetten åbner med en prompt, der er forudfyldt baseret på den aktuelle sides titel og indhold |
| Brugerdefineret prompt | Widgetten åbner med en brugerdefineret prompt, som du angiver i feltet nedenfor |
Når den er sat til Brugerdefineret prompt, vises et ekstra tekstfelt, hvor du kan indtaste standardpromptteksten. Understøtter grundlæggende skabelonvariabler:
{site_name}— navnet på det aktuelle site{page_title}— titlen på den aktuelle side{user_display_name}— den indloggede brugers viste navn
Standard: Deaktiveret
SharedWorker-runtime
Version 1.1.0 introducerer en SharedWorker-runtime til MLC-motoren. Tidligere indlæste hver browserfane, der brugte WebLLM, sin egen instans af modellen, konkurrerede om GPU-hukommelse og forårsagede ydelsesproblemer på enheder med begrænset VRAM.
Med SharedWorker-runtime fungerer én fane som motorvært. Alle andre faner kommunikerer med denne ene instans via workerens meddelelseskanal. Resultatet:
- Én GPU-session delt på tværs af alle åbne faner
- Hurtigere svar, når modellen er indlæst (ingen gentagen initialisering)
- Lavere maksimal hukommelsesbrug på enheden
SharedWorker er transparent for brugere. Statusindikatoren i admin-linjen afspejler altid tilstanden for den delte motor, ikke den enkelte fane.
apiFetch-middleware
Addon'et installerer en apiFetch middleware, der opsnapper WordPress REST API-anmodninger, som matcher AI Client SDK-mønsteret. I stedet for at lave en loopback HTTP-anmodning til serveren routes disse anmodninger direkte til den lokale WebLLM-broker, der kører i SharedWorker.
Det betyder, at plugins og temaer, der bruger den standardmæssige WordPress apiFetch API til at kalde AI-endpoints, automatisk vil få fordel af den browser-side model, når den er tilgængelig, uden at kodeændringer er nødvendige.
Hooks og filtre
Filtre
wpai_preferred_text_models— Registrer WebLLM-browsermotoren som en foretrukken tekstmodel. Tilføjelsen kobler sig automatisk på dette filter, når motoren er konfigureret og tilgængelig.ultimate_webllm_widget_enabled— Tilsidesæt widgettens aktiverede tilstand for en bestemt bruger eller kontekst. Returnértrueellerfalse.ultimate_webllm_auto_prompt— Rediger auto-prompt-teksten, før den sendes til widgetten. Modtager prompt-strengen og det aktuelleWP_Post-objekt.
Fejlfinding
Chat-widgetten vises ikke
- Bekræft, at brugeren er logget ind — widgetten vises kun for godkendte brugere
- Tjek, at Aktivér flydende chat-widget er slået til i Connector-panelet
- Kontrollér, at brugerens browser understøtter WebGPU (se Krav ovenfor)
Admin-bar-indikatoren viser "Fejl"
Åbn browserens udviklerkonsol (F12), og se efter WebLLM-relaterede fejl. Almindelige årsager:
- Browseren understøtter ikke WebGPU
- Download af modelvægte mislykkedes — tjek netværksforbindelsen, og prøv at rydde IndexedDB-cachen i browserens udviklerværktøjer (Applikation → IndexedDB)
- En browserudvidelse blokerer SharedWorker
Modelvægte downloades hver gang
Tilføjelsen bruger IndexedDB som cache-backend for at sikre, at modelvægte overlever CDN-omdirigeringer. Hvis vægte downloades igen ved hvert besøg, skal du tjekke, at IndexedDB ikke bliver ryddet af en privatlivsindstilling i browseren eller en udvidelse.
Changelog
Se Changelog for den fulde versionshistorik.