ChatBot na WordPressie

W tej lekcji zaczniemy budować bota, który będzie mógł odpowiadać na pytania merytoryczne. Jeśli prowadzisz kurs i chcesz oferować wsparcie merytoryczne bez konieczności samodzielnego odpowiadania na pytania, ten bot może Ci w tym pomóc. nBot będzie wytrenowany na Twoich danych. Nie będzie odpowiadał na pytania na podstawie przypadkowych informacji, lecz na podstawie danych, które mu przekażesz.

Instalacja wtyczki

Instalacja wtyczki jest prosta, jak każdej innej wtyczki na WordPressie. Konfiguracja natomiast może wydawać się nieco skomplikowana, ale po to są te materiały, żeby Ci to ułatwić 🙂

Please login for access. Login

Wybrałam tę wtyczkę, bo… jest darmowa. A poza tym jest też stale aktualizowana. Pozostałe rzeczy, których potrzebujemy do zbudowania bota, czyli baza wektorowa i dostęp do GPT to są minimalne koszty. Ta wtyczka pozwala też na spore dopasowanie jej działania do naszych potrzeb.

Podłączanie OpenAI do Chatbota

W tym filmie pokażę Ci krok po kroku, jak podłączyć silnik OpenAI do naszego chatbota. To właśnie dzięki temu nasz chatbot będzie trochę przypominał w działaniu ChatGPT.

Please login for access. Login

Różnica między GPT a ChatGPT

ChatGPT to cała aplikacja, która zawiera nie tylko AI pracujące w tle, ale także interfejs pozwalający na interakcję z modelem. Logujesz się do aplikacji, masz okienko czatu, możesz rozmawiać z chatbotem. My jednak potrzebujemy jedynie silnika, który odpowiada za generowanie odpowiedzi, ponieważ budujemy własną aplikację.

Konto na OpenAI

Aby skorzystać z API OpenAI, potrzebujesz konta na platformie OpenAI. Konto założysz tutaj. Założenie konta jest darmowe, jednak korzystanie z API wiąże się z opłatami zależnymi od zużycia. Nie płacisz tu miesięcznej stawki, jak w przypadku ChatGPT, ale za ilość zużytych tokenów.

Cennik OpenAI

Cennik użycia API opiera się na liczbie zużytych tokenów. 100 tokenów odpowiada około 75 słowom. Przelicznik ten może się różnić w zależności od modelu i konkretnego zastosowania. W naszym przypadku najlepszym wyborem będzie najnowszy model GPT-4o, który jest szybki i tani.

Generowanie Klucza API

Po założeniu konta, możesz wygenerować klucz API, który jest niezbędny do integracji modelu z Twoim botem. Klucz ten podaj w ustawieniach wtyczki. Wybierz model GPT-4o.

Chatbot na WordPressie

Implementacja bota oparta na GPT we wtyczce AI Power może być zrealizowana na dwa sposoby: używając shortcode’u lub widżetu. W tym filmie pokażę Ci, czym te metody się różnią oraz jak jak odpalić bota w każdej z nich.

Please login for access. Login

Shortcode

Aby stworzyć naszego bota, musimy przejść do sekcji „ChatGPT”. Są dwie metody implementacji: shortcode i widżet. Shortcode pozwala na wbudowanie czatu bezpośrednio na stronie, natomiast widżet to mała ikonka z boku strony, którą trzeba kliknąć, aby otworzyć czat.

Kiedy skonfigurujemy model używany przez bota (np. GPT-4o), warto pamiętać, że ustawienia te dotyczą jedynie shortcode’u. Widżet ma swoje oddzielne ustawienia. Po zapisaniu konfiguracji shortcode’u możemy skopiować kod shortcode’u i wkleić go na stronę, którą stworzymy na potrzeby naszego bota. Po opublikowaniu tej strony bot będzie dostępny.

Widżet

Widżet to inna metoda, dzięki której dostaniemy czat dostępny na calej stronie. Wystarczy kliknąć w ikonkę w dole ekranu by otworzyć czat.

Możemy zmieniać pozycję i wygląd ikonki widżetu, ustawiając ją np. po prawej stronie oraz zmieniając ikonkę na bardziej estetyczną. Możemy też ustawić czas opóźnienia wyświetlania się okienka czatu, nazwę bota, wiadomości powitalne i placeholdery w polach tekstowych.

Jeśli użytkownicy chcą zresetować konwersację, możemy dodać funkcję umożliwiającą wyczyszczenie historii czatu. Ważne jest też, aby bot był skonfigurowany do odpowiadania tylko na pytania związane z tematem, a w przypadku braku odpowiedzi, informował użytkownika o braku wiedzy na dany temat.

Jak zmusić bota do odpowiadania w określony sposób

Załóżmy, że chcemy skonfigurować bota do odpowiadania na pytania związane z nauką programowania w Javie i Selenium. Możemy wpisać prompt w języku polskim lub angielskim, wyjaśniając botowi, jakie pytania ma obsługiwać. Bot powinien odpowiadać konkretnymi przykładami kodu, gdy to ma sens, oraz używać polskiego języka w odpowiedziach.

Przykładowy prompt mógłby wyglądać tak:

Tutaj jest treść dostępna tylko dla Solonautów.

Wykup dostęp do wszystkich treści
As a highly proficient and empathetic education support assistant, your primary goal is to provide exceptional assistance, addressing student concerns and inquiries in a timely and effective manner. Harness your expertise to deliver outstanding service and create a positive student experience. 
Communicate in Polish, unless the student uses another language. Always provide code example if it makes sense. 
Your name is Ola and you are female. You answer questions ONLY about Java programming language or Selenium WebDriver in Java. In case of question not related to Java or Selenium WebDriver in Java answer: "Niestety, znam się tylko na Javie i Selenium w Javie. Twoje pytanie wydaje się dotyczyć czegoś innego." or similar. 
If you don't know the answer for the question, just say "Nie znam odpowiedzi na to pytanie". If they ask you how to contact Ela, say: "Jeżeli masz pytanie dotyczące lekcji z Twojego kursu, na które nie umiem odpowiedzieć, zadaj je na ela@testelka.pl. Pamiętaj jednak, że Ela odpowie na Twoje pytanie tylko jeżeli dotyczy kursu i jeżeli nie wygasło Twoje roczne wsparcie merytoryczne." Don’t justify your answers.

Baza wiedzy dla bota

Cała wiedza, którą nasz czat do tej pory posiadał, to w zasadzie informacje z internetu, na podstawie których model GPT został wytrenowany. Uzu[ełniliśmy to o instrukcje dotyczące tego, co ma robić, na jakie pytania odpowiadać, kim jest i do czego służy.

To podejście nie jest optymalne. Zwłaszcza gdy posiadamy dużą bazę wiedzy składającą się np. z 50 artykułów i chcemy, aby czat odpowiadał na ich podstawie. Niestety, nie możemy przekazać takiej ilości informacji bezpośrednio do modelu GPT ze względu na ograniczoną pojemność tych modeli. A dodatkowo im więcej tokenów wysyłamy do API, tym więcej płacimy.

Na szczęście nie wszystko stracone, bo mamy bazy wektorowe.

Please login for access. Login

Baza wektorowa

Baza wektorowa będzie miejscem, w którym przechowamy wiedzę dostępną dla naszego bota. Nasz bot, gdy dostanie pytanie wyszuka w bazie wektorowej najbardziej pasujące do pytania rekordy. Następnie wygeneruje odpowiedź tylko na podstawie tych rekordów a nie całej bazy wiedzy. To rozwiązuje problem przesyłania zbyt dużej ilości informacji do modelu.

Wtyczka AI Power pozwala na podpięcie swojej bazy wektorowej. Do wyboru mamy różne usługi, takie jak Pinecone, z której ja korzystam. Na początek wystarczy nam darmowy plan. Po zalogowaniu stwórz nowy indeks.

Indeks

Przy tworzeniu indeksu musimy określić liczbę wymiarów. Następnie klikamy „Create Index”. Po chwili indeks powinien być gotowy. Teraz potrzebujesz wygenerować klucz API i wprowadzić go w ustawieniach wtyczki.

„Ręczne” wprowadzanie nowych

Budowanie bazy wiedzy zaczniemy od metody najprostszej, czyli wprowadzania tych danych ręcznie. Po wprowadzeniu nowych informacji odpytamy o nie bota, żeby się upewnić, że rzeczywiście korzysta z przekazanej mu wiedzy.

Please login for access. Login

Posty jako źródło danych

Teraz pokażę Ci jak wykorzystać posty, jako źródło danych dla naszego bota. Zobaczysz też jak ustawić ilośc rekordów, które chcemy pobrać z bazy wektorowej do udzielenia odpowiedzi.

Please login for access. Login

Dodatkowe ustawienia

W tym filmie pokażę Ci dodatkowe ustawienia bota.

Please login for access. Login

Ustawienie pamięci bota

Pierwszą z nich jest opcja pamięci bota, tzw. memory. Obecnie jest ona ustawiona na „tak”, co oznacza, że bot pamięta całą konwersację. Dzięki temu, jeśli zadamy pytanie dodatkowe, bot zrozumie jego kontekst. Jeżeli natomiast wyłączymy memory, bot stanie się „jednostrzałowy”, czyli będzie rozumiał jedynie ostatnie pytanie bez kontekstu wcześniejszych rozmów.

Zaawansowane

W ustawieniach zaawansowanych mamy do czynienia z różnymi parametrami, które wpływają na zachowanie bota:

Temperatura (Temperature):
Temperatura waha się od 0 do 1 i określa, jak kreatywny będzie bot. Im wyższa wartość, tym większa swoboda w odpowiedziach.

Maksymalna liczba tokenów:
Jest to maksimum tokenów, jakie bot może wygenerować. Musisz pamiętać, że 100 tokenów to około 75 słów, co może pomóc w ustawieniu odpowiedniego limitu długości odpowiedzi.

TOP-P:
Niski TOP-P oznacza większą przewidywalność odpowiedzi. Ten parametr działa inaczej niż temperatura, ale jednym z zaleceń jest modyfikacja albo jednego, albo drugiego, nie obu jednocześnie.

Frequency penalty i presence penalty:
Te dwa parametry mają wpływ na powtarzalność tekstu w odpowiedziach bota.

Logi i moderacja

Możesz także włączyć logi czata, aby śledzić, jak użytkownicy korzystają z bota. Pamiętaj o konieczności informowania użytkowników, że rozmowy mogą być nagrywane.

Moderacja jest dostępna w planie płatnym i pozwala na weryfikowanie wiadomości przed ich przesłaniem do OpenAI, co może zapobiec zbanowaniu konta za niewłaściwe treści. Polecam tę opcję szczególnie jeżeli Twój bot nie będzie w żaden sposób ograniczony, czyli każdy będzie miał do niego dostęp.

Na koniec

Opisany plugin jest darmowy i dostępny w oficjalnym repozytorium WordPressa. Jest też na bieżąco aktualizowana. Dzięki niej powinno ci się udać stworzyć prostego bota wytrenowanego na twoich informacjach. W ten sposób możesz na przykład zbudować coś w rodzaju asystenta edukacji dla uczestników Twojego kursu.