본문으로 건너뛰기
Paid AddonPurchase Ultimate AI Connector for WebLLM | Install via your site's addon page or download from your account

Ultimate AI Connector for WebLLM

Ultimate AI Connector for WebLLM을 사용하면 WordPress 멀티사이트 네트워크에 브라우저 네이티브 AI 추론 기능을 도입할 수 있습니다. 이 플러그인은 WebLLM과 MLC 엔진을 사용하여 대규모 언어 모델(LLM)을 브라우저 내에서 완전히 실행합니다. 따라서 API 키가 필요 없고, 외부 호출이 없으며, 사용자 장비를 벗어나는 데이터가 전혀 없습니다.

주요 기능

  • 브라우저 측 추론: LLM이 WebLLM/MLC를 통해 방문자의 브라우저에서 로컬로 실행됩니다. 서버 GPU가 필요하지 않습니다.
  • 플로팅 채팅 위젯: 로그인한 사용자는 프런트 엔드에서 브라우저 측 LLM에 직접 프롬프트를 입력할 수 있습니다.
  • 관리자 바 상태 표시기: WordPress 관리자 바에서 WebLLM 엔진의 실시간 상태를 확인할 수 있습니다.
  • SharedWorker 런타임: 여러 브라우저 탭이 GPU 리소스를 두고 경쟁하는 대신, 하나의 GPU 세션을 공유합니다.
  • apiFetch 미들웨어: AI Client SDK 패턴과 일치하는 WordPress REST 요청은 로컬 WebLLM 브로커로 투명하게 라우팅됩니다. 루프백 HTTP 왕복 과정이 필요 없습니다.
  • 위젯 설정 UI: 채팅 위젯을 켜고 끄거나 자동 프롬프트 동작을 구성할 수 있는 커넥터 패널 설정입니다.
  • IndexedDB 캐시: 모델 가중치 다운로드가 기본 Cache API 경로가 깨지는 CDN 리디렉션에서도 유지됩니다.
  • wpai 필터 통합: wpai_preferred_text_models 필터에 연결되어, AI Experiments 기능이 구성된 경우 브라우저 엔진으로 라우팅됩니다.

요구 사항

  • WordPress 5.3 이상
  • PHP 7.4 이상
  • Ultimate Multisite 플러그인 (활성화)
  • WebGPU를 지원하는 브라우저 (Chrome 113+, Edge 113+, 또는 WebGPU가 활성화된 Firefox Nightly)

설치

  1. 애드온 파일을 /wp-content/plugins/ 디렉토리에 업로드합니다.
  2. WordPress의 '플러그인' 메뉴를 통해 플러그인을 활성화합니다.
  3. Ultimate Multisite → AI Connector로 이동하여 애드온을 구성합니다.

플로팅 채팅 위젯

플로팅 채팅 위젯을 사용하면 로그인한 모든 사용자가 페이지를 떠나지 않고도 프런트 엔드에서 브라우저 측 LLM과 직접 상호 작용할 수 있습니다.

작동 방식

활성화하면 로그인한 사용자의 모든 프런트 엔드 페이지 모서리에 채팅 아이콘이 나타납니다. 이 아이콘을 클릭하면 채팅 패널이 열리고, 사용자는 여기에 프롬프트를 입력하고 로컬에서 실행되는 WebLLM 모델로부터 응답을 받을 수 있습니다. 모델이 브라우저 내에서 완전히 실행되기 때문에, 응답은 개인 정보가 보호되며 서버 측 처리가 전혀 필요 없습니다.

관리자 바 상태 표시기

WordPress 관리자 바에는 WebLLM 엔진의 현재 상태를 보여주는 상태 표시기가 포함되어 있습니다.

상태의미
LoadingMLC 엔진이 초기화되거나 모델 가중치를 다운로드하는 중입니다.
Ready모델이 로드되어 추론에 사용할 준비가 되었습니다.
Idle엔진은 로드되었지만 SharedWorker 탭이 활성화되지 않았습니다.
Error엔진 초기화에 실패했습니다. 자세한 내용은 브라우저 콘솔을 확인하세요.

이 표시기는 페이지를 새로고침할 필요 없이 실시간으로 업데이트됩니다.

위젯 활성화 또는 비활성화 방법

  1. 네트워크 관리자에서 Ultimate Multisite → AI Connector로 이동합니다.
  2. Connector 패널을 찾습니다.
  3. Enable floating chat widget를 켜거나 끕니다.
  4. 설정을 저장합니다.

네트워크 관리자가 해당 권한을 부여한 경우, 사이트 자체의 관리자에서도 사이트별로 위젯을 활성화하거나 비활성화할 수 있습니다.

위젯 설정

Ultimate Multisite → AI Connector의 Connector 패널에는 플로팅 채팅 위젯에 대한 다음 설정이 포함되어 있습니다.

플로팅 채팅 위젯 활성화

전체 네트워크에 대해 채팅 위젯을 켜거나 끕니다. 비활성화하면 사용자 역할에 관계없이 어떤 프런트 엔드 페이지에서도 위젯이 나타나지 않습니다.

기본값: 비활성화됨

자동 프롬프트 동작

사용자가 위젯을 열 때 자동으로 프롬프트를 전송할지 여부를 제어합니다.

옵션동작 방식
Disabled위젯이 빈 채팅창으로 열립니다. 사용자가 직접 프롬프트를 입력해야 합니다.
Page context현재 페이지의 제목과 내용을 기반으로 프롬프트가 미리 채워진 상태로 위젯이 열립니다.
Custom prompt아래 필드에 정의한 사용자 지정 프롬프트가 포함된 상태로 위젯이 열립니다.

Custom prompt로 설정하면, 기본 프롬프트 텍스트를 입력할 수 있는 추가 텍스트 필드가 나타납니다. 다음 기본 템플릿 변수를 지원합니다.

  • {site_name} — 현재 사이트의 이름
  • {page_title} — 현재 페이지의 제목
  • {user_display_name} — 로그인한 사용자의 표시 이름

기본값: 비활성화됨

SharedWorker 런타임

버전 1.1.0에서는 MLC 엔진을 위한 SharedWorker 런타임이 도입되었습니다. 이전에는 WebLLM을 사용하는 각 브라우저 탭이 모델의 자체 인스턴스를 로드하여 GPU 메모리를 두고 경쟁했고, 이는 VRAM이 제한적인 장치에서 성능 문제를 일으켰습니다.

SharedWorker 런타임을 사용하면, 하나의 탭이 엔진 호스트 역할을 합니다. 다른 모든 탭은 워커의 메시지 채널을 통해 이 단일 인스턴스와 통신합니다. 그 결과는 다음과 같습니다.

  • 모든 열린 탭이 공유하는 하나의 GPU 세션
  • 모델 로드 후 더 빠른 응답 속도 (반복적인 초기화 없음)
  • 장치에서 낮은 최대 메모리 사용량

SharedWorker는 사용자에게 투명합니다. 관리자 바 상태 표시기는 항상 개별 탭이 아닌 공유된 엔진의 상태를 반영합니다.

apiFetch 미들웨어

이 애드온은 AI Client SDK 패턴과 일치하는 WordPress REST API 요청을 가로채는 apiFetch 미들웨어를 설치합니다. 이러한 요청은 서버로 루프백 HTTP 요청을 보내는 대신, SharedWorker에서 실행되는 로컬 WebLLM 브로커로 직접 라우팅됩니다.

이는 표준 WordPress apiFetch API를 사용하여 AI 엔드포인트를 호출하는 플러그인과 테마가 코드를 변경할 필요 없이, 사용 가능한 경우 브라우저 측 모델의 이점을 자동으로 누릴 수 있다는 의미입니다.

Hooks 및 Filters

필터 (Filters)

  • wpai_preferred_text_models — WebLLM 브라우저 엔진을 선호하는 텍스트 모델로 등록합니다. 애드온은 엔진이 구성되고 사용 가능할 때 이 필터에 자동으로 연결됩니다.
  • ultimate_webllm_widget_enabled — 특정 사용자 또는 컨텍스트에 대해 위젯 활성화 상태를 재정의합니다. true 또는 false를 반환합니다.
  • ultimate_webllm_auto_prompt — 위젯으로 전송되기 전에 자동 프롬프트 텍스트를 수정합니다. 프롬프트 문자열과 현재 WP_Post 객체를 받습니다.

문제 해결

채팅 위젯이 나타나지 않음

  • 사용자가 로그인했는지 확인하세요. 위젯은 인증된 사용자에게만 표시됩니다.
  • Connector 패널에서 Enable floating chat widget가 켜져 있는지 확인하세요.
  • 사용자의 브라우저가 WebGPU를 지원하는지 확인하세요 (위 요구 사항 참조).

관리자 바 표시기에 "Error"가 표시됨

브라우저 개발자 콘솔(F12)을 열고 WebLLM 관련 오류를 확인하세요. 일반적인 원인:

  • 브라우저가 WebGPU를 지원하지 않음
  • 모델 가중치 다운로드 실패 — 네트워크 연결을 확인하고 브라우저 개발자 도구(Application → IndexedDB)에서 IndexedDB 캐시를 지워보세요.
  • 브라우저 확장 프로그램이 SharedWorker를 차단하고 있음

모델 가중치가 매번 다운로드됨

애드온은 IndexedDB를 캐시 백엔드로 사용하여 모델 가중치가 CDN 리디렉션에서도 유지되도록 합니다. 방문할 때마다 가중치가 다시 다운로드된다면, 브라우저 개인 정보 보호 설정이나 확장 프로그램이 IndexedDB를 지우고 있지 않은지 확인하세요.

변경 로그

전체 버전 기록은 Changelog를 참조하세요.