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 w jaki sposób
powstawała M.O.N.D.A.Y, czyli mój avatar AI wykorzystałem tutaj koncepcję, z której
korzystam już od kilku lat, tworząc kolejne avatary, które ze mną pracują.
Każdy z nich posiada swoje imię, specjalizację oraz zakres obowiązków.
Dodatkowo każdy też z nich w jakiś sposób
jest zwizualizować, w tym przypadku z pomocą takiego oto avatara.
Te, które tutaj widzisz kupiłem
bezpośrednio na Team Forest w zakładce Grafika wpisując avatar RPG, czyli avatary
związane z Role-Playing Game, czyli gatunkiem gier.
Otrzymałem mniej więcej takie oto wyniki.
Muszę przyznać, że pojawiły się tutaj nowe
zestawy, które są naprawdę ciekawe i zdecydowanie można coś wybrać.
I tutaj dokładniej jest zestaw, który ja wybrałem.
Teraz poszedłem jednak krok dalej ze względu na to, że mamy narzędzie o nazwie Midjourney,
z pomocą którego możemy zamienić tekst na obraz i wygenerować takie oto avatary.
Postanowiłem jednak połączyć jedno
podejście z drugim i wykorzystać jeden z moich avatarów po to, aby Midjourney
zmodyfikowało go dla mnie i wygenerowało taki oto obrazek.
Jeżeli na ten moment nie znasz jeszcze Midjourney, to w dniu nagrywania tego kursu
możemy generować grafiki korzystając z dedykowanych kanałów na Discordzie.
Wystarczy wpisać tutaj polecenie Imagine,
a następnie wpisać tutaj prompt opisujący naszą grafikę.
Oczywiście możemy tutaj zastosować nieco
bardziej zaawansowane ustawienia, które opisane są w dokumentacji.
Nie będziemy sobie jednak przez to przechodzić,
ponieważ jest to poza zakresem naszego kursu.
Chciałem CI jednak pokazać, że w płatnej wersji Midjourney,
mamy tutaj zakładkę Community Feed.
Wewnątrz niej możemy podejrzeć sobie poszczególne grafiki,
a następnie skopiować tutaj prompt, który został wykorzystany do jej przygotowania.
Możemy więc się zainspirować, a co więcej,
na początku promptu możemy umieścić link do grafiki referencyjnej, na podstawie
której zostanie wygenerowana nowa grafika pasująca do nowego opisu.
Dokładnie ten sposób wykorzystałem, gdy tworzyłem wizerunek M.O.N.D.A.Y.
Po kilku próbach doszedłem do rezultatów, które widzimy tutaj.
Jeżeli zdecydujesz się na wykorzystanie
Midjourney, polecam Ci jeszcze narzędzia, na które wpadłem kilka dni temu.
Mianowicie jest to dość proste narzędzie i momentami nieco nieaktualne ze względu na
to, że generuje polecenia, które już nie są wspierane przez Midjourney.
Natomiast zdecydowanie pomaga zbudować prompt, które nada naszej grafice
konkretnego stylu poprzez kolory, wybrane obiektyw czy np.
materiały, które chcemy uwzględnić na naszej grafice.
Ostatecznie otrzymujemy tutaj wygenerowany
prompt, który po prostu możemy wkleić do Midjourney, pomijając oczywiście te opcje,
które nie są już wspierane i dokładnie dowiemy się, które to są ze względu na to,
że Midjourney wprost nas o tym poinformuje.
Kolejną strategią w budowaniu promptów jest także wykorzystanie Chat GPT.
Który również może wygenerować dla nas taki prompt.
W tym przypadku Chat GPT zdecydował się na wykorzystanie języka angielskiego.
Nic nie stoi na przeszkodzie, aby
wyedytować ten prompt lub nawet w języku polskim poprosić o dopisanie kolejnych
szczegółów, które będą opisywały wizerunek naszego avatara.
I swoją drogą myślę, że możemy skopiować
tutaj tę wartość, a następnie przenieść ją do Midjourney i teraz
po chwili tutaj na dole powinna pojawić
się nasza grafika wygenerowana na podstawie dostarczonego opisu.
OK. Mamy tutaj zdecydowanie pierwszą wersję
grafiki, która absolutnie nie jest tym, o co nam chodziło.
Ze względu na to, że nie uwzględniliśmy faktu, że M.O.N.D.A.Y jest kobietą.
W związku z tym wracamy teraz do Chat GPT
i informujemy, że M.O.N.D.A.Y jest kobietą, a grafika ma być w stylu gry RPG.
Patrząc na opis tego promptu chciałbym jeszcze
uwzględnić, że M.O.N.D.A.Y istnieje w uniwersum Cyberpunk.
Ponownie teraz czekamy na odpowiedź i
zobaczymy za chwilę jaki będziemy mieć rezultat.
No i mamy teraz nasz prompt, więc ponownie przechodzę do Discorda, aby wygenerować
nową grafikę, przy czym jedna ze słów zostało uznane jako zbanowane.
W związku z tym zamienię cutting edge na awesome abilities i teraz powinno być w porządku.
Wygląda na to, że mamy już nasz rezultat.
W tym momencie możemy podjąć decyzję, którą grafikę licząc od lewej górnej
krawędzi chcemy zmodyfikować, czyli 1, 2, 3, 4.
I tutaj mamy upsceling, czyli powiększanie lub też generowanie alternatywnej wersji.
W moim przypadku chciałbym powiększyć
wersję drugą i wciśnięcie tylko tego jednego przycisku sprawiło, że uruchomiła
się tutaj nowa akcja, która za chwilę wygeneruje dla mnie nową grafikę.
No i mamy tutaj nasz rezultat końcowy, które możemy otworzyć w przeglądarce, a
następnie tą powiększoną wersję zapisać na naszym dysku.
Muszę przyznać, że mamy tutaj różnice
pomiędzy avatarami, które regenerowałem wcześniej.
Aczkolwiek biorąc pod uwagę fakt, że zaczynaliśmy od uniwersum Marvela, gry RPG
oraz uniwersum Cyberpunka, efekt końcowy jest tutaj całkiem w porządku.
Zanim zaczniesz pracować z Midjourney,
pamiętaj, że wersja trial jest dość ograniczone i pozwala na
wygenerowanie z tego co pamiętam kilku bądź kilkunastu grafik.
Teoretycznie powinno to wystarczyć na
Twoje potrzeby, ale po prostu miej na uwadze to ograniczenie.
Pomimo tego, że wygenerowany właśnie avatar jest całkiem w porządku, ja
zdecyduję się na wybór tego oto wizerunku, który zresztą w pewnym sensie częściowo
nawiązuje do wygenerowanego właśnie przez nas avatara.
Myślę, że element wizerunku mamy już w tym momencie za sobą.
Poza tym jeszcze krok wcześniej musiałem wymyślić dla niej imię.
I tutaj oczywiście inspiracją jest F.R.I.D.A.Y
pochodzący bezpośrednio z uniwersum Marvela oraz Tony'ego Starka.
Poza tym, że F.R.I.D.A.Y Jest akronimem,
pomyślałem, że tak samo akronimem będzie M.O.N.D.A.Y,
aby przyporządkować do poszczególnych liter konkretne słowa.
Wykorzystałem Chat GPT.
Po prostu napisałem, że imię mojego
avatara to akronim, do którego potrzebuję odnaleźć stosowne słowa, które
jednocześnie będą w jakiś sposób opisywały jego zachowanie.
No i efekt końcowy wygląda następująco.
M.O.N.D.A.Y powiązane jest z mistrzostwem,
intelektem, projektowaniem, automatyzacją i to wszystko w jednym.
Oczywiście w moim przypadku znałem już imię.
Nic jednak nie stoi na przeszkodzie, aby
wykorzystać Chat GPT również do tego, aby wygenerować przykładowe imiona.
No i oczywiście mamy tutaj powiązania z
J.A.R.V.I.S'em, Vision, Ultronem, Iron Man'em itd.
Nie do końca o to mi chodziło, dlatego
zadając kolejne pytania i prosząc o kolejne propozycje jesteśmy w stanie tak
kilka razy powtórzyć proces, by dojść do satysfakcjonującego nas rozwiązania.
Jeżeli chodzi o mnie, ten akronim oraz jego rozwinięcie bardzo mi się podobają,
ale trzeba tutaj podkreślić, że w moim przypadku miałem już imię.
Nic jednak nie stoi na przeszkodzie, aby
wykorzystać Chat GPT do tego, aby wymyślił także samo imię.
Oczywiście w tej chwili podaje nam imiona bohaterów, natomiast możemy zadawać mu
kolejne pytania i prosić o kolejne podawanie przykładów po to, aby w
konsekwencji dojść do satysfakcjonującego nas wyniku.
Dokładnie w ten sposób wyglądał mój proces
i wydaje mi się, że u Ciebie również powinien zadziałać.
W tej chwili możemy już zakończyć temat
kształtowania wizerunku naszego avatara i możemy przejść dalej do implementacji.