Połącz możliwości GPT-3 i automatyzacji
2 godz. 3 min · OpenAI · Biznes i Automatyzacje
Adam GospodarczykWykorzystanie API OpenAI nie różni się w żaden sposób od innych. Przesyłając dane i parametry na wskazany endpoint, otrzymujemy odpowiedź wygenerowaną przez model (np. text-da-vinci-003). Na tym jednak możliwości tego API się nie kończą. Przykładem z którego skorzystamy będzie zamiana danych na tzw. embedding (listę wektorów). Dane zapisane w takiej formie będą wstępem do "pamięci" bota i tym samym pierwszym punktem procesu nauki.
Prompt Engineering to rozwijająca się dziedzina skupiona na projektowaniu systemów zdolnych do skutecznego reagowania na dane wprowadzone przez użytkownika. W przypadku tworzonego przez nas bota, wykorzystamy pewne elementy tego procesu aby zmodyfikować jego domyślne zachowanie oraz przygotowywanie odpowiedzi na podstawie wyłącznie wcześniejszych danych. W przypadku braku wiedzy na jakiś temat, bot będzie nas o tym informował w sarkastyczny sposób lub nawet zwracał informacje w podanym przez nas formacie.
Wysyłając zapytanie do API OpenAI, jesteśmy ograniczeni liczbą znaków. Tworząc bota chcemy uwzględniać nie tylko to aby odpowiadał na nasze pytania ale także uwzględniał przekazany przez nas kontekst, składający się z informacji jakie zapamiętał bot. Problemem jest tutaj wybór, które dane ma brać pod uwagę. Rozwiązanie po które sięgamy w tym warsztacie polega na wykorzystaniu bazy wektorowej (Pinecone), która pełni rolę pamięci oraz bazy lokalnej w której przechowujemy faktyczne informacje. Ich połączenie pozwala na wybranie najbardziej istotnych danych i uwzględnienie ich w kontekście, który pozwoli GPT-3 przygotować odpowiedź.
Temat wykorzystania AI w codziennym życiu nie jest nowy ale nabrał szczególnego znaczenia po pojawieniu się ChatGPT. Wiele osób zaczęło wykorzystywać AI do rozwiązywania bieżących problemów i ułatwiania sobie różnych zadań. W tym warsztacie znajdziesz kilka inspiracji, które nakierują Cię na to jak możesz rozwijać swojego własnego, inteligentnego i uczącego się bota.
Warsztat został stworzony z myślą o osobach znających JavaScript i Node.js, chcących postawić pierwsze kroki w praktycznym wykorzystaniu GPT-3 oraz API OpenAI. Poza znajomością JavaScript, konieczne będzie minimum doświadczenia w pracy z API oraz bazami danych (SQL). Po ukończeniu tego warsztatu zyskasz ogólne zrozumienie możliwości GPT-3 oraz umiejętności umożliwiające wpływ na jego zachowanie i generowane odpowiedzi.
W tej lekcji pokażę Ci kilka możliwości i
ścieżek, które możesz obrać projektując swój własny avatar AI.
W przypadku naszego projektu skupimy się
wyłącznie na tym, aby nasz avatar był w stanie odpowiadać na pytania
na podstawie danych zawartych w airtable wewnątrz kolumny Content.
Dodatkowo w związku z tym, że zapisujemy tutaj historię konwersacji, zależy mi
także na tym, aby był w stanie odnosić się do niej, a także rozróżniać informacje
zawarte w kontekście, jak i w bieżącej rozmowie.
To wszystko będziemy musieli uwzględnić na etapie projektowania tego avatara.
Nic jednak nie stoi na przeszkodzie, aby uwzględnić tutaj jakieś dodatkowe
scenariusze, bądź w ogóle zmienić rolę tego avatara na jakąś inną.
Przykładowo, zamiast pracować na konkretnych danych, które wcześniej
dostarczymy, możemy jedynie zarysować pewnego rodzaju kontekst, w ramach którego
musi się poruszać, a następnie pracować z nim wyłącznie na podstawie naszych rozmów.
W takim przypadku nie będzie potrzeby
dostarczania mu danych wcześniej, tylko będzie się uczył nowych rzeczy za każdym
razem, gdy będzie wchodził z nami w jakąś interakcję.
Zatem jeden avatar AI może pracować na
Twoich prywatnych notatkach, inny może posługiwać się dokumentacją Twojego
projektu, a jeszcze inny odpowiadać na pytania klientów.
Oczywiście pamiętaj proszę o tym, że
jeżeli udostępniasz swojego avatara innym osobom, to za każdym razem, gdy będą
zadawać jakieś pytanie, to Ty będziesz ponosić koszty tej odpowiedzi.
Wówczas warto nadać różnego rodzaju
ograniczenia, które po prostu nie doprowadzą do sytuacji, gdy ktoś będzie
bawił się naszym botem i wykorzysta wszystkie dostępne limity poza tym
mechanizm, który zastosujemy sobie w naszym kursie, będzie opierać się na generowaniu
prostych odpowiedzi na podstawie wcześniej dostarczonych treści.
Jednak zwróć uwagę, że nie bez powodu umieściłem tutaj dodatkową kolumnę source.
Wewnątrz której można umieścić np.
odnośnik, który jest powiązany z daną notatką.
Istnieje możliwość zaprojektowania bota w
ten sposób, że nie tylko będzie odpowiadał na pytania, ale także będzie uwzględniał
odnośniki do źródeł kierujących do miejsca pochodzenia danej notatki.
Co prawda w naszym kursie nie będziemy się tym zajmować, natomiast dążę w tym
momencie do tego, aby pokazać Ci pełnie możliwości tego avatara.
Zatem pierwszym krokiem, który możesz podjąć jest odpowiedź na pytanie po co Ci
avatar i w jakim celu będziesz go wykorzystywać?
Oczywiście możesz podążać krokami, które będę pokazywał w kolejnych lekcjach,
aczkolwiek możesz je modyfikować do swoich potrzeb i stworzyć takiego avatara, który
rzeczywiście będzie pomagał Ci w codziennej pracy.
Pamiętaj jednak, proszę o tym, że treści, które tutaj uwzględniasz przesyłane są do OpenAI
i ich polityka prywatności nie jest w pełni transparentna i w związku z tym ja
osobiście unikam przesyłania jakiś wrażliwych informacji, w tym danych osobowych.
Oczywiście istnieją sposoby na to, aby ukrywać prywatne informacje.
Jeden z nich opisałem w moim e-booku.
W skrócie polega on na wykorzystaniu
zmiennych, które avatar wykorzystuje w swoich wypowiedziach, które to następnie
tuż przed przesłaniem do użytkownika końcowego zamieniamy na prawdziwe dane.
W ten sposób OpenAI nie ma dostępu do prywatnych danych, a
jednocześnie wykorzystujemy jego pełen potencjał.
Wszystko to, o czym teraz mówię, wpływa
bezpośrednio na to, jak będziemy projektować nasz avatar.
Samo projektowanie avatara sprowadza się w
dużym stopniu do tego, aby po prostu opisać jego cechy oraz zachowania.
W przypadku mojego avatara chodzi tak naprawdę o kilka zdań, które mamy tutaj.
Jeżeli chodzi o szczegóły projektowania
tego promptu, o nich będziemy sobie jeszcze rozmawiać.
Natomiast chciałem zwrócić tutaj uwagę na kilka rzeczy.
Przykładowo już w tym momencie mój prompt zawiera 1184 tokeny.
Jest to całkiem dużo, tym bardziej, że
jeszcze musimy uwzględnić, generowaną odpowiedź.
Tutaj bezpośrednio w Playground możemy
określić jej maksymalną długość, przy czym musimy pamiętać o tym, że jak
mówi instrukcja, zapytania nie mogą być dłuższe niż 2048 tokenów.
W połączeniu z odpowiedzią nie mogą być dłuższe niż 4 tysiące tokenów.
Oznacza to, że musimy być tutaj naprawdę
precyzyjni oraz zwięźle w określaniu cech i zachowania avatara.
To samo dotyczy się kontekstu.
Zatem tutaj muszą być uwzględnione wyłącznie te najważniejsze dane.
No i oczywiście, jeżeli chodzi o podsumowanie rozmowy, również musimy tutaj
pamiętać o tym, aby było możliwie najbardziej treściwe.
I tutaj jeszcze kolejną techniką, na którą chciałbym zwrócić uwagę jest samo
przygotowanie promptu tak, aby GPT3 po prostu go uzupełniło.
Po prostu zobacz na całość tego promptu.
Po pierwsze mamy instrukcję, następnie datę ze względu na to, że tak jak już
prawdopodobnie wiesz, GPT3 nie wie dokładnie kiedy jest dziś.
Poza tym mamy tutaj dynamicznie generowany
kontekst, który w tym przypadku jest oczywiście wpisany ręcznie.
Natomiast normalnie nasza automatyzacja będzie generować go w trakcie
udzielania odpowiedzi.
Następnie mamy wyraźne oddzielenia pomiędzy sekcjami i tutaj znajduje się
wspomniane podsumowanie, a następnie bieżąca konwersacja.
Czyli Overment wypowiedział zdanie,
które mamy tutaj, a następnie mamy nie uzupełnioną odpowiedź M.O.N.D.A.Y
i w momencie uruchomienia tego promptu zostanie wygenerowana odpowiedź.
Jeżeli chodzi o sam palyground, to mam nadzieję, że jesteś już po warsztacie
Grzegorza i potrafisz się nim posługiwać przy tworzeniu avatara,
jest to niezwykle użyteczne ze względu na to, że przykładowo mogę przejść sobie do
historii wykonania, a następnie skopiować prompt, który został tutaj przesłany.
Dzięki temu, bez konieczności uruchamiania
po raz kolejny całego scenariusza, mogę po prostu wkleić ten prompt, a następnie
wprowadzić modyfikacje, które ulepszą bądź poprawią działanie naszego avatara.
Po wprowadzeniu tych zmian po prostu je
zaznaczam, a następnie przenoszę do naszego scenariusza, pamiętając
ewentualnie o zmiennych bądź dynamicznych polach, które są tutaj wpisane.
Zatem podsumowując tę lekcję, w pierwszej
kolejności odpowiedz sobie na pytanie co chcesz, aby robił Twój avatar?
Oczywiście jeżeli dopiero poznajesz mechaniki GPT3 czy narzędzi No-code, z
których korzystamy, to sugeruję Ci podążać za moimi wskazówkami.
Jeżeli jednak bez problemu poradzisz sobie z zaprojektowaniem własnego avatara, to po
prostu moją wiedzę wykorzystać wyłącznie do tego, aby zaprojektować scenariusz,
który pozwoli łączyć się z OpenAI oraz bazą Pinecone, no i oczywiście GPT3.
No i w tym momencie doszliśmy już do końca
tej lekcji, zatem zapraszam Cię do kolejnej.