Skip to Content

Chatbot Pilot

Chatbot Pilot to chatbot wsparcia klienta AI dla WordPressa. Dostarczany jest jako pływający widget czatu na froncie oraz pełen panel administracyjny w Ustawienia → Chatbot Pilot. Wtyczka oferuje dwa tryby działania:

  • Tryb n8n — widget przekazuje każdą wiadomość odwiedzającego do zewnętrznego workflow n8n  przez webhook. Stosuj, kiedy już prowadzisz automatyzacje, własną logikę albo integracje zewnętrzne poza WordPressem.
  • Natywny tryb RAG — wtyczka indeksuje Twoje własne treści (wpisy, strony, własne typy treści) w kawałkach trzymanych w lokalnej bazie SQLite, w momencie pytania wyciąga najtrafniejsze pasaże i generuje odpowiedź wybranym dostawcą LLM (OpenAI, Anthropic Claude, Google Gemini, DeepSeek albo self-hosted Ollama).

Oba tryby dzielą ten sam widget, ten sam log konwersacji i te same narzędzia feedbacku/eksportu, więc backend możesz zmienić w dowolnym momencie bez utraty doświadczenia po stronie odwiedzającego.

Widget czatu
Widget czatu wyrenderowany na froncie.

Wyróżniki

  • Podwójny backend: webhook n8n albo w pełni natywne Retrieval-Augmented Generation.
  • Wsparcie wielu dostawców LLM: OpenAI, Anthropic Claude, Google Gemini, DeepSeek, Ollama (lokalnie).
  • Natywny silnik RAG z magazynem SQLite, konfigurowalnym rozmiarem chunka i retrieval top-K.
  • Indeksowanie w tle przez WordPress cron, dzięki czemu reindeks nigdy nie blokuje UI panelu.
  • Konfigurowalny widget: pozycja, kolor główny/tła/tekstu, kolory bańek użytkownika i bota, wymiary, border radius, typografia.
  • Edytowalne teksty: powitanie, subtitle, placeholder pola wpisu, stan ładowania i komunikat błędu.
  • Log konwersacji z feedbackiem per wiadomość (kciuk w górę / kciuk w dół) i eksportem CSV.
  • Wbudowany health check, który weryfikuje łączność z dostawcą, status indeksu i osiągalność webhooka.
  • Gotowe na wielojęzyczność przez Polyglota — teksty widgetu i bazę wiedzy można serwować per język.

Wymagania

Wtyczka jest samodzielna i w trybie Natywny RAG nie wymaga żadnej zewnętrznej usługi poza wybranym API LLM. Wbudowany vector store używa SQLite, które jest dostępne w każdym standardowym buildzie PHP.

KomponentZalecane
WordPress6.2 lub nowszy (testowane do 7.0)
PHP7.4 lub nowszy (zalecane 8.x)
BazaMySQL/MariaDB dla danych WordPressa, SQLite dla vector indexu
HTTPSWymagane dla wywołań webhooka i dostawcy
Sieć wychodzącaWymagana, by dotrzeć do wybranego dostawcy LLM

W trybie n8n potrzebujesz dodatkowo osiągalnej instancji n8n z węzłem Webhook skonfigurowanym do przyjmowania żądań POST. Dla Ollamy potrzebujesz uruchomionego serwera Ollama dostępnego z hosta WordPressa (zwykle http://localhost:11434).

Instalacja

  1. Otwórz Wtyczki → Dodaj nową → Wyślij wtyczkę w panelu WordPressa i wgraj plik ZIP Chatbot Pilota.
  2. Aktywuj Chatbot Pilot.
  3. Otwórz Ustawienia → Chatbot Pilot. Wtyczka przy pierwszym ładowaniu tworzy własne tabele bazy i opcje domyślne.
  4. Wybierz tryb backendu (n8n lub Natywny RAG) i uzupełnij konfigurację dostawcy poniżej.
  5. W trybie Natywny RAG kliknij Reindeks co najmniej raz, by zasiać bazę wiedzy, zanim wystawisz widget odwiedzającym.
  6. Odwiedź dowolną publiczną stronę na froncie, by potwierdzić, że widget pojawia się w skonfigurowanej pozycji.

Widget jest kolejkowany automatycznie na każdej stronie, gdy tylko wtyczka jest skonfigurowana; shortcode ani edycja motywu nie są potrzebne.

Konfiguracja

Ekran ustawień leży pod Ustawienia → Chatbot Pilot i jest podzielony na sześć zakładek — Ogólne, AI / RAG, Wygląd, Ikony, Teksty i Feedback. Wszystkie wartości są zapisywane per witryna (lub per witryna w sieci na multisite) i można je zmieniać bez reindeksowania, poza samymi parametrami indeksowania.

Ogólne

Chatbot Pilot — Ustawienia, zakładka Ogólne
Zakładka Ogólne — Licencja, główny przełącznik Włącz chatbot, lista Widoczność per URL i karta Powiadomienie-balonik z jego opóźnieniem.

Zakładka Ogólne ma trzy karty:

  • Licencja — wklej klucz PILOT-XXXX-XXXX-XXXX-XXXX i wciśnij Zweryfikuj i zapisz, by włączyć automatyczne aktualizacje wtyczki.
  • Ogólne → Włącz chatbot — główny przełącznik pokazywania widgetu na stronie.
  • Widoczność → Ukryty na tych URL-ach — lista ścieżek rozdzielona przecinkami lub nowymi liniami, na których widget ma pozostać ukryty (dopasowanie po prefiksie: /login ukrywa też /login/).
  • Powiadomienie-balonik — wyskakuje obok bańki czatu po skonfigurowanym opóźnieniu (Pokaż po w sekundach, 0 = od razu), by przyciągnąć uwagę.

Tryb backendu

Wybierz dokładnie jeden backend. Wybór decyduje, które kolejne pola będą widoczne.

  • Webhook n8n — widget POST-uje wiadomość odwiedzającego, ID konwersacji i URL bieżącej strony na webhook, który podasz. Oczekiwana odpowiedź to payload JSON ze stringiem reply, który renderuje się z powrotem użytkownikowi.
  • Natywny RAG — żądanie jest obsługiwane in-process. Wtyczka wyciąga z lokalnego indeksu top-K najtrafniejszych chunków, buduje prompt i woła skonfigurowanego dostawcę LLM.

Ustawienia n8n

Widoczne tylko, gdy tryb backendu jest ustawiony na Webhook n8n.

  • URL webhooka — pełny URL HTTPS Twojego węzła Webhook w n8n.
  • Nagłówek uwierzytelniający (opcjonalny) — nazwa i wartość nagłówka wysyłanego z każdym żądaniem, przydatne dla webhooków chronionych shared secretem.
  • Timeout — maksymalny czas (w sekundach) oczekiwania na odpowiedź, zanim użytkownikowi pokaże się komunikat błędu.

Dostawca AI (Natywny RAG)

Widoczne tylko, gdy tryb backendu jest ustawiony na Natywny RAG.

Ustawienia dostawcy AI
Ustawienia dostawcy AI

Wybierz jednego dostawcę i wypełnij odpowiednie pola:

DostawcaUwagi
OpenAINajlepsza ogólna jakość z rodziną GPT-4. Wymaga klucza API z platform.openai.com.
Anthropic ClaudeMocny reasoning i kontrola tonu. Wymaga klucza API z console.anthropic.com.
Google GeminiSzybkie odpowiedzi w konkurencyjnej cenie. Wymaga klucza z Google AI Studio.
DeepSeekOpcja przyjazna budżetowi z mocną wydajnością na treściach technicznych.
OllamaDziała lokalnie. Skonfiguruj base URL (domyślnie http://localhost:11434) i nazwę modelu. Klucz API nie jest potrzebny.

Każdy dostawca wystawia te same trzy pola:

  • Klucz API (albo base URL dla Ollamy) — trzymany w tabeli opcji WordPressa; nigdy nie ujawniany frontowi.
  • Model — konkretny identyfikator modelu do wywołania (na przykład gpt-4o-mini, claude-3-5-sonnet, gemini-1.5-flash, deepseek-chat, llama3.1:8b).
  • Testuj połączenie — wysyła minimalnego pinga do dostawcy i raportuje sukces albo dosłowny błąd zwrócony przez API. Zawsze uruchamiaj po zmianie klucza albo modelu.

Baza wiedzy

Kontroluje, jak budowany i odpytywany jest indeks Natywnego RAG. Zmiany parametrów chunkowania wchodzą w życie przy kolejnym reindeksie.

  • Ścieżka źródłowa — rozdzielona przecinkami lista typów wpisów (lub główny URL) do zaciągnięcia. Zostaw domyślne post,page, by indeksować całą witrynę, albo ogranicz do konkretnego CPT bazy wiedzy.
  • Rozmiar chunka — liczba tokenów każdego chunka zapisywanego do indeksu. Domyślnie 500. Mniejsze chunki poprawiają precyzję wyszukiwania; większe zachowują więcej otaczającego kontekstu.
  • Top-K — liczba chunków wyciąganych na każde pytanie odwiedzającego i przekazywanych do LLM-a jako kontekst. Domyślnie 5.
  • Reindeks — planuje pełne przebudowanie przez WP-Cron. Pasek postępu pokazuje liczbę dokumentów zakolejkowanych, przetworzonych i pominiętych. Podczas zadania istniejący indeks dalej obsługuje zapytania.
  • Wyczyść indeks — kasuje każdy wiersz z tabeli wektorowej. Użyj przed zmianą modelu embeddingów.

Wygląd

Każdy aspekt wizualny widgetu da się edytować z tej zakładki. Podgląd na żywo po prawej aktualizuje się od razu po zmianie wartości.

Ustawienia wyglądu
Ustawienia wyglądu

Pozycja

  • Prawy dolny (domyślnie)
  • Lewy dolny

Kolory

  • Kolor główny — tło nagłówka, przycisk wyślij, focus ringi.
  • Kolor tła — tło okna czatu.
  • Kolor tekstu — bazowy kolor tekstu wewnątrz okna.
  • Kolor wiadomości użytkownika — tło bańki odwiedzającego.
  • Kolor wiadomości bota — tło bańki asystenta.

Wymiary

  • Szerokość okna i wysokość okna — w pikselach.
  • Rozmiar przycisku launchera — średnica pływającego przycisku.
  • Border radius — stosowany do okna, bańek i launchera.

Typografia

  • Rodzina fontu — domyślnie dziedziczona z motywu; możesz nadpisać dowolnym stackiem fontów CSS.
  • Bazowy rozmiar fontu — stosowany do treści czatu.

Ikony

Chatbot Pilot — zakładka Ikony
Zakładka Ikony — wybierz ikonę launchera (bańka czatu, wiadomość, robot, wsparcie, sparkle), ikonę zamknięcia i ikonę wyślij, albo wgraj własny SVG/PNG.

Zakładka Ikony oddziela branding od zakładki Wygląd, dzięki czemu możesz wymienić ikony launchera, zamknięcia i wyślij bez ruszania kolorów ani rozmiarów. Dołączony zestaw pokrywa najpopularniejsze wzorce czatów; pole Custom URL akceptuje dowolny publicznie osiągalny SVG lub PNG.

Teksty

Chatbot Pilot — zakładka Teksty
Zakładka Teksty — każdy widoczny dla użytkownika tekst w jednym miejscu: tytuł i subtitle nagłówka, powitanie, placeholder pola wpisu, teksty ładowania i błędu, prompt feedbacku i tekst powiadomienia-balonika.

Każdy widoczny dla użytkownika tekst leży w zakładce Teksty, więc widget możesz przetłumaczyć albo przeformułować bez ruszania motywu wizualnego:

  • Powitanie — pierwsza wiadomość pokazywana, gdy odwiedzający otwiera widget.
  • Subtitle — drobny tekst pod tytułem w nagłówku.
  • Placeholder pola wpisu — tekst widoczny w pustym polu wpisu.
  • Tekst ładowania — pokazywany podczas oczekiwania na odpowiedź asystenta.
  • Komunikat błędu — pokazywany, gdy wywołanie backendu się nie powiedzie albo wpadnie w timeout.
  • Prompt feedbacku — tekst pokazywany nad kontrolkami kciuk w górę / kciuk w dół (gdy feedback jest włączony).
  • Tekst powiadomienia-balonika — treść pokazywana w baloniku.

Reguły widoczności

  • Pokaż na — wybierz spośród Wszystkie strony, Tylko na wybranych stronach albo Wszędzie poza wybranymi stronami. ID-y stron wpisuje się jako listę rozdzieloną przecinkami.
  • Ukryj dla zalogowanych użytkowników — wyłącza widget dla sesji uwierzytelnionych.
  • Breakpoint mobilny — szerokość viewportu, poniżej której widget zwija się do kompaktowego układu.

Feedback i analityka

  • Włącz przyciski feedbacku — dodaje pod każdą wiadomością asystenta kontrolki kciuk w górę / kciuk w dół.
  • Trzymaj konwersacje — zachowuje pełen transkrypt w tabeli wp_chatbotpilot_conversations do przeglądu i eksportu.
  • Okres retencji — liczba dni, po których zapisane konwersacje są kasowane przez codzienne zadanie cron. Ustaw 0, by trzymać bez końca.

Health check

Panel health-check jest zawsze widoczny na górze ekranu ustawień. Wykonuje trzy sondy i pokazuje kolorową pigułkę statusu dla każdej:

  • Osiągalność dostawcy — woła API LLM-a pingiem na jeden token.
  • Status indeksu — liczy chunki w magazynie SQLite i raportuje znacznik czasu ostatniego udanego reindeksu.
  • Osiągalność webhooka (tryb n8n) — wystawia żądanie OPTIONS na skonfigurowany URL webhooka.

Każdy status nie-zielony jest klikalny i rozwija się w dosłowny błąd zwrócony przez wywołanie pod spodem, co zwykle wystarcza do diagnostyki.

Użytkowanie

Dla odwiedzających

Widget pojawia się na każdej stronie, na której obowiązują reguły widoczności. Odwiedzający klika przycisk launchera, by otworzyć okno, czyta powitanie i wpisuje pytanie w pole wpisu. Wciśnięcie Enter albo przycisku wyślij wysyła wiadomość; widget pokazuje tekst ładowania, a potem renderuje odpowiedź asystenta z formatowaniem markdown (pogrubienie, linki, listy uporządkowane i nieuporządkowane, bloki kodu).

Jeśli przyciski feedbacku są włączone, odwiedzający może ocenić każdą wiadomość asystenta. Ocena jest zapisywana przy ID wiadomości, więc ta sama odpowiedź da się później przejrzeć w panelu admina.

Dla administratorów

Codzienna administracja dzieje się w dwóch miejscach:

  • Ustawienia → Chatbot Pilot dla konfiguracji i panelu health-check.
  • Chatbot Pilot → Konwersacje dla logu konwersacji i eksportu feedbacku.
Feedback i log konwersacji
Feedback i log konwersacji

Log konwersacji pokazuje każdą sesję z datą, stroną, z której pochodzi, liczbą wiadomości i zagregowanym feedbackiem. Każdy wiersz można rozwinąć, by zobaczyć pełen transkrypt, w tym wyciągnięte pasaże kontekstu w trybie Natywny RAG. Przycisk Eksport CSV u góry listy produkuje plik UTF-8 CSV z jednym wierszem per wiadomość; respektuje każdy aktywny filtr daty lub oceny.

Reindeksowanie po zmianach w treści

Natywny indeks nie aktualizuje się sam w czasie rzeczywistym. Uruchom reindeks, gdy:

  • Publikujesz albo istotnie edytujesz partię wpisów.
  • Zmieniasz rozmiar chunka, ścieżkę źródłową albo model embeddingów.
  • Panel health-check raportuje stary albo pusty status indeksu.

Do aktualizacji inkrementalnej wtyczka również reindeksuje pojedynczy wpis przy zapisie, gdy opcja Auto-reindeks przy zapisie jest włączona w zakładce Bazy wiedzy. Dodaje to drobny narzut przy każdym zapisie wpisu, ale utrzymuje bazę wiedzy w synchronizacji bez ręcznej interwencji.

Zmiana backendu

Pomiędzy n8n i Natywnym RAG możesz się przełączać w dowolnym momencie. Widget, log konwersacji i magazyn feedbacku są wspólne dla obu trybów. Gdy przełączasz się na Natywny RAG po raz pierwszy, pamiętaj, by przed odpowiadaniem na pytania uruchomić Reindeks.

Zrzuty ekranu

Zrzuty poniżej odpowiadają czterem głównym obszarom interfejsu admina oraz widgetowi frontowemu.

Widget czatu na froncie

Widget czatu wyrenderowany na stronie
Widget czatu wyrenderowany na stronie

Konfiguracja dostawcy AI

Wybór dostawcy, klucz API, model i test połączenia
Wybór dostawcy, klucz API, model i test połączenia

Edytor wyglądu widgetu

Podgląd na żywo z pozycją, kolorami, wymiarami i tekstami
Podgląd na żywo z pozycją, kolorami, wymiarami i tekstami

Log konwersacji i eksport feedbacku

Lista konwersacji ze wskaźnikami feedbacku
Lista konwersacji ze wskaźnikami feedbacku

FAQ

Który backend wybrać?

Wybierz Natywny RAG, jeśli chcesz odpowiadać na pytania o treści własnej witryny i potrzebujesz samodzielnego rozwiązania, które wymaga jedynie klucza API do LLM-a. Wybierz n8n, jeśli musisz połączyć chatbota z zewnętrznymi narzędziami (lookup CRM, ticketing, własny routing) albo gdy konwersacja ma wyzwalać akcje poza WordPressem.

Czy żeby używać wtyczki, muszę instalować n8n?

Nie. n8n jest potrzebne tylko wtedy, gdy wybierzesz n8n jako tryb backendu. Tryb Natywny RAG jest w pełni samodzielny.

Czy moje dane są wysyłane stronom trzecim?

W trybie Natywny RAG każdy prompt i wyciągnięty kontekst są wysyłane do wybranego dostawcy LLM. Jeśli to nie wchodzi w grę, uruchom wtyczkę na lokalnej instancji Ollama — wtedy żadne dane nie opuszczają serwera. W trybie n8n każda wiadomość jest wysyłana na Twój własny endpoint n8n; co dzieje się potem, zależy od workflow, który zbudujesz.

Gdzie trzymany jest indeks?

Vector index to plik SQLite w wp-content/uploads/chatbot-pilot/. Tabela opcji WordPressa trzyma konfigurację chatbota, a tabela wp_chatbotpilot_conversations trzyma log konwersacji.

Czy mogę używać na witrynie wielojęzycznej?

Tak. Z zainstalowanym Polyglotem indekser zaciąga przetłumaczone wersje każdego wpisu, a teksty widgetu są serwowane per język. Bez Polyglota też możesz prowadzić jeden widget per język, ograniczając ścieżkę źródłową do kategorii specyficznych dla danego języka.

Czy obsługuje własne typy treści?

Tak. Dodaj slugi CPT-ów do pola Ścieżka źródłowa, rozdzielone przecinkami, i zreindeksuj.

Czy mogę wyeksportować konwersacje?

Tak. Przycisk Eksport CSV na ekranie Konwersacje produkuje plik UTF-8 CSV z jednym wierszem per wiadomość, włącznie z oceną, znacznikiem czasu, stroną źródłową i pełną treścią wiadomości.

Jak usunąć dane konkretnego odwiedzającego?

Otwórz Chatbot Pilot → Konwersacje, filtruj po ID sesji albo IP i użyj akcji Usuń na dopasowanych wierszach. Konwersacja i jej wpisy feedbacku znikają natychmiast.

Czy widget działa bez JavaScriptu?

Nie. Widget to komponent JavaScript single-page; nie degraduje się gracjalnie do fallbacka noscript.

Rozwiązywanie problemów

Widget nie pojawia się na froncie

  • Sprawdź, że tryb backendu jest ustawiony i że odpowiednie dane uwierzytelniające (klucz API albo URL webhooka) są zapisane.
  • Sprawdź reguły widoczności — strona może być wykluczona.
  • Zajrzyj do konsoli przeglądarki: odpowiedź 4xx z admin-ajax.php zwykle wskazuje na problem z uprawnieniami albo nonce wywołany przez agresywną wtyczkę cache.

Asystent odpowiada komunikatem błędu

Otwórz panel health-check i kliknij czerwoną pigułkę statusu, by przeczytać błąd dostawcy dosłownie. Typowe przyczyny:

  • Wygasły albo unieważniony klucz API.
  • Wybrany model nie jest dostępny dla Twojego konta albo regionu.
  • Przekroczony limit rate — poczekaj albo zaktualizuj plan dostawcy.
  • URL webhooka zwraca status spoza 2xx.

Reindeksowanie wygląda na zacięte

WordPress cron odpala się dopiero, gdy witryna dostaje ruch. Albo wymuś ręczne wejście na stronę, albo wywołaj wp cron event run --due-now z WP-CLI. Pasek postępu odświeża się co kilka sekund, gdy zadanie działa.

Odpowiedzi są nie na temat albo halucynowane

  • Zreindeksuj po niedawnych edycjach treści.
  • Zwiększ Top-K, by dać modelowi więcej kontekstu.
  • Zmniejsz Rozmiar chunka, by uzyskać drobniejsze wyszukiwanie, a potem zreindeksuj.
  • Spróbuj mocniejszego modelu (na przykład przełącz się z GPT-4o-mini na GPT-4o albo z Gemini Flash na Gemini Pro).

Odpowiedzi Ollamy są bardzo wolne

Prędkość lokalnej inferencji zależy całkowicie od hosta. Użyj modelu kwantyzowanego (:q4_K_M albo podobny), upewnij się, że akceleracja GPU jest włączona, i trzymaj rozmiar chunka i top-K w rozsądnych granicach.

Konwersacje nie są zapisywane

Potwierdź, że Trzymaj konwersacje jest włączone w zakładce Feedback i analityka oraz że tabela wp_chatbotpilot_conversations istnieje. Dezaktywacja i ponowna aktywacja wtyczki tworzy brakujące tabele.

Last updated on