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 zajmiemy się przygotowaniem jeszcze jednego skrótu, który będzie
służył nam do tego, aby faktycznie rozmawiać z naszym avatarem.
Czyli mówimy tutaj o interakcji głosowej.
Usuniemy tutaj tylko akcję dotyczącą tego
warunku i zamiast akcji ask for input, wykorzystamy akcję do dyktowania tekstu.
Tutaj w ustawieniach możemy zdecydować, o jaki język nam chodzi.
I choć język polski działa całkiem dobrze,
nasz avatar będzie odpowiadał nam w języku angielskim.
Wynika to z faktu, że głos naszego avatara
będzie generowany w locie z pomocą usługi Eleven Labs.
Dostęp do tej usługi jest płatny i wymagana jest aktywna subskrypcja.
No chyba, że wystarczy nam generowanie do
10 tysięcy znaków i brak wykorzystania komercyjnego.
Po założeniu konta wystarczy przejść do
zakładki Voice Lab i Voice Cloning, a następnie dodać tutaj kilkuminutowy plik audio.
Taki plik teoretycznie może zostać nagrany
w języku polskim, natomiast według mnie wyniki są lepsze w momencie, gdy
wykorzystamy tutaj próbkę z językiem angielskim.
W momencie, gdy nasz głos zostanie
skolonowany, a trwa to dosłownie kilka minut, wystarczy wpisać tutaj dowolny
tekst po angielsku, a następnie upewnić się, że mamy tutaj wybrany poprawny głos.
How bizarre I cent recall when I told you that, but you're good!
Jak widzisz, niemal natychmiast tekst został przeczytany moim głosem.
W tym miejscu możemy pobrać wygenerowany
plik, natomiast nas najbardziej będzie interesował dostęp przez API.
Tutaj mamy kilka poleceń, które mogą nas
interesować i w naszym przypadku będzie to konkretnie ten endpoint.
Jedyne co będzie nam tutaj potrzebne to identyfikator głosu.
Niestety tutaj bezpośrednio w interfejsie
nie mogłem znaleźć identyfikatora, który jest potrzebny do wykorzystania w API.
W związku z tym stosuję następującą technikę.
Klikam prawym przyciskiem myszy w dowolne
miejsce na stronie, a następnie wybieram inspect bądź też zbadaj element.
Następnie przechodzę do zakładki Network i
następnie uruchamiam ponownie Generowanie głosu.
Zostaną wykonane tutaj następujące akcje.
W jednej z nich, jak widać mamy tutaj
adres URL, który dokładnie musimy użyć w naszej automatyzacji.
Wróćmy więc do naszego skrótu.
Pomimo tego, że wewnątrz dokładnie tego
skrótu będziemy kontaktować się głosowo z naszym avatarem, ja jednak chciałbym
utworzyć jeszcze jeden skrót, który będzie służył bezpośrednio do czytania tekstu.
W związku z tym tworzę teraz nowe makro, a następnie wykorzystamy sobię tutaj funkcję get
contents off URL i przekażę adres który skopiowałem przed chwilą.
Następnie musimy tutaj dodać nagłówek do autoryzacji połączenia i podać tutaj
bezpośrednio swój klucz API, który możemy pobrać w ustawieniach naszego konta.
Dokładnie w tym miejscu. Mój klucz w tym momencie został dodany
i ostatnim krokiem w kontekście samego
połączenia będzie przekazanie parametru text, który ustawimy na wartość shortcut input.
W ten sposób wszystko co zostanie
przekazane do tego skrótu zostanie przeczytane.
W tym jednak przypadku odpowiedź, którą tutaj otrzymamy, będziemy mogli
natychmiast przeczytać lub też będąc bardziej precyzyjnym natychmiast odtworzyć.
W tym momencie tak przygotowane makro
możemy wykorzystać w makrze Hej avatars poprzez uruchomienie akcji run shortcut
tutaj w dodatkowych ustawieniach upewniam się, że wartość, którą przekazujemy do
tego skryptu to tekst, który otrzymaliśmy z naszego scenariusza.
Od tego momentu, w momencie gdy uruchomię
to makro, zostanę poproszony o dyktowanie tego makro.
Niestety jednak nie mogę pokazać tego jak działa dyktowanie ze względu na to, że w
tym momencie wykorzystuję swój mikrofon do nagrywania tego filmu.
Zatem w zamian skorzystam z akcji Ask for Input.
Natomiast pamiętaj proszę, że w Twoim
przypadku możesz korzystać z akcji umożliwiającej dyktowanie.
No i teraz mogę zadać pytanie, które zostanie przesłane do naszego scenariusza.
Nasz avatar odpowie na nie, a następnie
zwrócony tekst zostanie przeczytany moim głosem.
Rzeczywiście, w moich słuchawkach ten tekst został przeczytany, aczkolwiek nawet
nie będę go teraz pokazywał ze względu na to, że konieczne byłoby sprawienie, aby
nasz avatar odpowiadał w języku angielskim.
Dopiero w takiej sytuacji wykorzystanie Eleven Labs ma sens.
Jednak istnieje alternatywny sposób, które możemy wykorzystać dla języka polskiego.
Pod kątem jakości jest on zdecydowanie
gorszy, ale jak najbardziej wspiera język polski.
Mowa tutaj o akcji, którą właśnie dodałem
o nazwie Speak Text, wewnątrz której możemy ustawić język polski.
Następnie tutaj usunę tą akcję i uruchomię ten skrót ponownie.
W tym momencie głos, który tutaj wybraliśmy został ustawiony na Zosie bądź
Ewę i dzięki temu zostanie poprawnie przeczytany w języku polskim.
Aczkolwiek tak jak wspomniałem ogólna
jakość tego dźwięku jest zdecydowanie gorsza.
Jeżeli jednak zdecydujesz się na wykorzystanie wyłącznie języka
angielskiego, to warto dodać, że możesz wykorzystać także Siri po to, aby uruchomić
skrót umożliwiający Ci interakcję z Twoim
avatarem i dzięki temu możesz wykonać go bez jakichkolwiek skrótów klawiszowych.
Ja np.
mam podłączony dokładnie ten skrót do mojego smartwatch'a.
Dzięki temu mam np.
możliwość szybkiego głosowego dodawania
zadań bez wykorzystania komputera czy nawet telefonu.
Zatem podsumowując tą lekcję.
To co tutaj zrobiliśmy polegało na wykorzystaniu zewnętrznej usługi do
generowania głosu i dodatkowo skorzystaliśmy z dość ciekawej techniki
polegającej na przygotowaniu takiego generycznego makra, do którego możemy
przekazać dowolny tekst, a on sam zostanie zamieniony na audio.
Dodatkowo przygotowaliśmy jeszcze jedną akcję, którą w tym momencie zmodyfikowałem
na swoje potrzeby, aczkolwiek przywrócę te zmiany.
I tą akcję możesz wykorzystać zarówno na
komputerze, telefonie, jak i też wywoływać z pomocą Siri.
Pamiętaj jednak proszę, że czas odpowiedzi
będzie nieco wydłużony ze względu na to, że nie tylko avatar musi odpowiedzieć, ale
także musi zostać wygenerowany tutaj głos przez usługę i Eleven Labs.
Jeżeli chodzi o tą lekcję, to by było na tyle.
Dzięki za uwagę i do usłyszenia za moment.