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.

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.
| Komponent | Zalecane |
|---|---|
| WordPress | 6.2 lub nowszy (testowane do 7.0) |
| PHP | 7.4 lub nowszy (zalecane 8.x) |
| Baza | MySQL/MariaDB dla danych WordPressa, SQLite dla vector indexu |
| HTTPS | Wymagane dla wywołań webhooka i dostawcy |
| Sieć wychodząca | Wymagana, 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
- Otwórz Wtyczki → Dodaj nową → Wyślij wtyczkę w panelu WordPressa i wgraj plik ZIP Chatbot Pilota.
- Aktywuj Chatbot Pilot.
- Otwórz Ustawienia → Chatbot Pilot. Wtyczka przy pierwszym ładowaniu tworzy własne tabele bazy i opcje domyślne.
- Wybierz tryb backendu (n8n lub Natywny RAG) i uzupełnij konfigurację dostawcy poniżej.
- W trybie Natywny RAG kliknij Reindeks co najmniej raz, by zasiać bazę wiedzy, zanim wystawisz widget odwiedzającym.
- 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

Zakładka Ogólne ma trzy karty:
- Licencja — wklej klucz
PILOT-XXXX-XXXX-XXXX-XXXXi 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:
/loginukrywa też/login/). - Powiadomienie-balonik — wyskakuje obok bańki czatu po skonfigurowanym opóźnieniu (
Pokaż pow 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.

Wybierz jednego dostawcę i wypełnij odpowiednie pola:
| Dostawca | Uwagi |
|---|---|
| OpenAI | Najlepsza ogólna jakość z rodziną GPT-4. Wymaga klucza API z platform.openai.com. |
| Anthropic Claude | Mocny reasoning i kontrola tonu. Wymaga klucza API z console.anthropic.com. |
| Google Gemini | Szybkie odpowiedzi w konkurencyjnej cenie. Wymaga klucza z Google AI Studio. |
| DeepSeek | Opcja przyjazna budżetowi z mocną wydajnością na treściach technicznych. |
| Ollama | Dział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.

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

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

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_conversationsdo 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
OPTIONSna 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.

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

Konfiguracja dostawcy AI

Edytor wyglądu widgetu

Log konwersacji i eksport 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.phpzwykle 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.