Generative AI
Moduł Generative AI umożliwia połączenie dużego modelu językowego (LLM) z dowolnym źródłem danych, aby bot mógł samodzielnie generować odpowiedzi na zadane mu pytania, z uwzględnieniem kontekstu użytkownika czy oferowanych produktów.
Moduł Generative AI składa się z trzech elementów:
- bazy wiedzy,
- funkcji,
- promptów.
Baza wiedzy
Baza wiedzy to panel umożliwiający dodanie różnych źródeł danych, które następnie są brane pod uwagę przy generowaniu zapytania do LLM.
Baza wiedzy może opierać się na:
- dokumentach tekstowych (np. PDF lub .docx),
- stronach internetowych.
Plik tekstowy nie powinien zawierać obrazków.
Dodawanie źródła danych
Aby dodać źródło danych do bazy wiedzy, kliknij w niebieski przycisk “Stwórz” znajdujący się tuż obok nagłówka. Pojawi się panel umożliwiający import treści z dokumentu tekstowego lub ze strony.
Pamiętaj, aby po zaimportowaniu treści opublikować zmiany na produkcji, aby dokument został zapisany w bazie wiedzy.
Nazwa źródła
Nazwa źródła danych powinna jasno je opisywać i być zrozumiała dla innych użytkowników platformy. Może mieć maksymalnie 120 znaków.
Import treści z pliku PDF
Import treści z pliku PDF wymaga załadowania odpowiedniego dokumentu, z którego mają być pobrane treści. Maksymalny rozmiar pliku to 10 MB.
Import treści ze strony
Import treści ze strony wymaga podania adresu URL oraz selektora HTML, z którego mają być pobrane treści. Jeśli wpisany selektor to body
, to pobrana zostanie cała treść z podanego adresu URL.
Podczas podawania adresu URL upewnij się, że zaczyna się od http:// lub https:// .
Zaimportowanie treści ze strony zostaną podzielone na fragmenty (tzw. chunki) zawierające do 1000 znaków. Ma to za zadanie ułatwić wyszukiwanie odpowiednich fragmentów w treści, tak aby odpowiedź była generowana tylko na ich podstawie, co przełoży się na większą jej precyzyjność. Jeśli chcesz zmienić ten podział, skorzystaj z ustawień zaawansowanych lub opcji “Podziel dokument” znajdującej się nad lewym górnym rogiem zaimportowanych treści.
Ustawienia zaawansowane pozwalają na wybór, w jaki sposób dokument powinien być podzielony. Dostępne opcje to:
- “Pobierz całą treść i podziel” – pobiera treść ze strony i dzieli na fragmenty o zadanej wielkości,
- “Każdy element DOM to osobny fragment” – pobiera treść ze strony i dzieli ją na fragmenty wg elementów DOM; takie fragmenty nie mają ograniczenia w postaci ilości znaków.
Podział na fragmenty (chunki)
Minimalny dopuszczalny rozmiar fragmentu to 500 znaków, maksymalny – 1500.
Maksymalny rozmiar fragmentu przekłada się na ilość fragmentów pobranych z dokumentu. Jeżeli będziemy chcieli otrzymać fragmenty zawierające 1000 znaków, a sam dokument ma 3000 znaków – przy podziale otrzymamy zatem 3 fragmenty. Jeśli zaś ten sam dokument będziemy chcieli podzielić na fragmenty zawierające po 500 znaków, otrzymamy tych fragmentów 6. Mniejszy rozmiar fragmentu zapewnia:
- węższy kontekst odpowiedzi,
- szybszą odpowiedź,
- mniej zużytych tokenów,
- mniejsze ryzyko mniej dokładnych odpowiedzi.
Metadane
Po zaimportowaniu treści opisz plik używając metadanych. Metadane składają się z klucza i przypisanej do niego wartości. Następnie są wykorzystywane do szukania odpowiednich treści w bazie wiedzy – na podstawie przypisanego klucza system będzie rozpoznawał dokumenty, do których może zaglądać w poszukiwaniu odpowiedzi na zadane przez użytkownika pytanie. Im więcej metadanych, tym dokładniejszy wybór pliku do dalszej analizy.
Przykład wykorzystania metadanych:
- klucz: “Kategoria artykułu”, wartość: “Ogólne pytania”,
- klucz: “Ubezpieczenia”, wartość: “PZU”,
- klucz: “Model komputera”, wartość: “Macbook Pro”.
Limit metadanych per dokument to 40kB (około 40 000 znaków).
Testowanie bazy wiedzy
Działanie bazy wiedzy możesz przetestować klikając w przycisk “Testuj” znajdujący się po prawej stronie nagłówka.
Podczas testów możesz podać słowo kluczowe, dla którego chcesz znaleźć odpowiedni fragment. Możesz zmodyfikować ilość zwracanych wyników – minimalna wartość to 1, maksymalna 30. Dodatkowo możesz zawęzić wyszukiwanie poprzez określenie warunków opartych o metadane.
Funkcje
Funkcje służą do określenia konkretnej akcji, działania modelu LLM. Przykładem takiego działania jest dokładne przeszukanie bazy wiedzy lub pobranie odpowiednich wartości z bazy danych.
Funkcje działają obecnie tylko dla poniższych modeli językowych:
- OpenAI
- Azure OpenAI
- Claude
Dodawanie funkcji
Aby dodać funkcję, kliknij w przycisk “Dodaj funkcję”.
Nazwa i opis funkcji
Nazwa funkcji powinna być krótka i prosta oraz zrozumiała dla innych użytkowników platformy. Szczegółowe informacje na temat działania funkcji możesz zawrzeć w jej opisie.
Funkcja aktywna i funkcja fallback
Funkcja aktywna to przydatne ustawienie umożliwiające zachowanie konfiguracji funkcji, ale wyłączenie jej w zależności od potrzeb czy wyników testów bota.
Funkcja fallback to ustawienie odpowiadające za wywołanie modelu, gdy zapytanie w bocie jest spoza zakresu bazy wiedzy. Dodatkowo w zdarzeniu statystycznym “Zapytanie do LLM” zostaje dodany parametr out_of_scope, aby takie zapytanie można było w prosty sposób znaleźć i wykorzystać do trenowania bota lub poszerzania jego bazy wiedzy.
Parametry
Aby zachować kontekst poprzednich konwersacji i danych użytkownika, zdefiniuj w funkcji odpowiednie parametry.
Nazwa parametru będzie jednocześnie nazwą zmiennej, więc staraj się użyć krótkiej, konkretnej nazwy. Więcej szczegółów możesz podać w opisie parametru.
Parametr może przyjąć jeden z określonych typów:
- tekst,
- liczba,
- tak/nie,
- tablica.
W polu “Dozwolone wartości” możesz określić, jakie wartości może przyjąć dany parametr.
Możesz również określić, czy dany parametr jest wymagany czy nie.
Jeśli decydujesz się na użycie parametrów, które są wymagane, pamiętaj zawrzeć o tym informację w prompcie. Wspomnianie modele językowe mają tendencję do wykonywania funkcji niezależnie od tego, czy wszystkie wymagane parametry zostały podane, czy nie.
Źródła
Do wiadomości wygenerowanej przez LLM możesz dodać źródła danych. Wtedy końcowy użytkownik zobaczy, na podstawie jakich informacji została przygotowana odpowiedź na jego pytanie. Źródła mogą działać w dwóch trybach: statycznym i opartym o zmienne użytkownika.
W trybie statycznym źródła – nagłówek, adres URL oraz opis – dodaje się na sztywno. To znaczy, że każdy użytkownik zobaczy dla danej funkcji te same treści. W trybie zmiennej użytkownika natomiast można ustawić wszystkie te parametry jako zmienne, wraz z dodatkową zmienną użytkownika będącą listą obiektów.
Wykonanie funkcji w toku
Czasami wykonanie niektórych funkcji zajmuje więcej czasu. Aby zadbać o doświadczenie użytkownika, możesz pokazać mu postęp wykonywania funkcji. Wystarczy włączyć odpowiednią opcję podczas konfiguracji funkcji i dodać odpowiednie treści opisujące, jaka akcja jest właśnie wykonywana. Ta opcja jest szczególnie przydatna, gdy wygenerowanie dobrej, konteksowej odpowiedzi wymaga użycia kilku funkcji pod rząd.
Jeśli Twój bot działa w różnych językach, możesz dodać odpowiednie wersje językowe dla każdego opisu postępu wykonywania funkcji.
Działanie po wywołaniu funkcji
W sekcji “Gdy model wywoła funkcję” możesz określić, co ma się wydarzyć po wywołaniu funkcji przez model. Może to być dodanie odpowiedniej treści do promptu, zawierającej dodatkowe instrukcje lub obiekt JSON wygenerowany przez model językowy, ale również może to być wykonanie określonej akcji, takiej jak:
- zapisanie danych użytkownikowi,
- wykonanie zapytania do bazy wiedzy,
- pobranie zewnętrznych danych z wykorzystaniem zapytania API,
- wysłanie maila,
- zapis zdarzenia statystycznego.
Możliwe jest również ustawienie przekierowania do wskazanego bloku w strukturze bota.
Prompty
Moduł Prompty umożliwia użytkownikom stworzenie bazy promptów, które później mogą być wykorzystane w Ticket Automation bez konieczności pisania ich na nowo lub przeklejania z innej reguły.
Dodawanie promptów
Aby utworzyć prompt, kliknij w przycisk “Dodaj prompt”. Po kliknięciu wyświetli się ekran z ustawieniami prompta.
Nazwa promptu
Nazwa promptu powinna skrótowo opisywać, w jakim celu został utworzony dany prompt. Powinna być również prosta i zrozumiała dla innych użytkowników platformy.
Prompt
W tym miejscu wpisz swój prompt, czyli instrukcję dla LLM. Oto kilka wskazówek, jak przygotować prompt w taki sposób, aby osiągnąć jak najlepsze rezultaty:
- Rozpocznij od krótkiej i prostej instrukcji. To dobra baza do dalszych iteracji.
- Dokładnie opisz zadanie do wykonania oraz pożądany wynik.
- Unikaj dwuznacznych opisów i instrukcji.
- Przy tworzeniu instrukcji skup się na tym, co model powinien zrobić, zamiast na tym, czego nie powinien.
- Sprawdzaj rezultat i modyfikuj prompt w zależności od potrzeb.
Model językowy
Wybierz, który z dużych modeli językowych ma być użyty do wygenerowania odpowiedzi. Im nowsza wersja danego modelu językowego, tym lepsze efekty uzyskasz.
Dostępne modele językowe to:
- OpenAI – GPT,
- Google Gemini,
- Claude.
Maksymalna liczba tokenów
Token jest podstawową jednostką tekstu, którą model przetwarza. Tokeny mogą reprezentować różne fragmenty tekstu, takie jak:
- całe słowa – w językach, gdzie słowa są krótkie i nie posiadają wielu znaków specjalnych, jeden token może reprezentować całe słowo,
- części słów – w językach, gdzie słowa są długie lub złożone, jedno słowo może być podzielone na kilka tokenów,
- znaki interpunkcyjne – znaki interpunkcyjne (np. przecinki, kropki) mogą być reprezentowane jako oddzielne tokeny.
- symbole – symbole i znaki specjalne (np. $, #) również mogą być oddzielnymi tokenami.
Maksymalna liczba tokenów określa długość odpowiedzi, jaka ma być wygenerowana przez LLM. Może przyjąć wartość nie większą niż 1000.
Temperatura
Temperatura wpływa na stopień różnorodności odpowiedzi generowanych w modelach OpenAI. Wyższa temperatura (np. 0.8) powoduje, że odpowiedzi są bardziej kreatywne i mniej przewidywalne, podczas gdy niższa temperatura (np. 0.2) prowadzi do bardziej przewidywalnych odpowiedzi.
Zakres temperatury to 0-2.
Aby jak najbardziej zmniejszyć możliwość “halucynacji” modelu i zapewnić odpowiedzi zgodne ze stanem faktycznym, rekomendujemy użycie temperatury równej 0.
Zarządzanie promptami
Aby edytować prompt, kliknij w jego nazwę na liście promptów.
Aby usunąć prompt, kliknij w ikonkę ustawień i wybierz odpowiednią pozycję z menu. Możesz usunąć tylko prompt, który nie jest używany w żadnym miejscu konfiguracji bota lub automatyzacji zgłoszeń.