 Faktycznie Dominik Harasim, wiele lat z WordPress'em, wiele przeżyć z moimi klientami, tak naprawdę chyba przeżyłem już wszystko, dlatego że jesteśmy agencją, która robi dużo różnych rzeczy od rzeczy bardzo prostych, prozaicznych, do rzeczy dość skomplikowanych. Z tym razem zgłosi do nas jeden klient, który posiada sklep na WordPress'e, na ukomersie oraz ma wtyczkę WP All Import Pro i chciałby zainportować sobie produkty do takiego sklepu, no ale ma pewien problem, nie zostanie sobie z nim poradzić. Okazuje się, że parametry produktów, które on by chciał tam wrzucić atrybuty, znajdują się w takim pliku XML, w polu Description i one nie mają jakiejś takiej większej usystematyzowanej struktury i on by chciałby to jakoś tam wrzucić. Ja pomyślałem w pierwszej kolejności, że źle chyba nie będzie, jakoś sobie tam napiszemy jakieś wyrażenie regularne, jakoś tam to rozpoznamy, no nie, coś tam musi być, za coś się złapiemy, prawda, że to nie będzie raczej problem, będzie raczej szybkie zlecenie, załatwimy to pieniążki, no to lecimy. Bierzemy pierwsze Description, patrzymy jakie on tam ma te parametry, które chcielibyśmy wrzucić jako atrybuty i patrzymy po czym można by się tutaj złapać. No, ja z tego co widzę to może te nawiasy klamrowe, może coś by tam było, ale to się nie pokrywa do końca. Może po spacji, ale z drugiej strony spacja oddziela również wartości, w ramach wartości atrybutów są również spacje, także generalnie słabo. Jest jeszcze normalny taki tekst ciągiem, czyli tak jakby ktoś sobie po prostu pisał o produkcie, potrafi tutaj w tekście występować taki normalny tekst pisany, czyli tam przykład właśnie kolekcja Piatto, tak z kolekcji Piatto, więc słowo kolekcja też nie byłoby tutaj kluczem, więc byłoby generalnie bardzo ciężko. No i pomyślałem, że no łatwo nie będzie, to jest jakiś dramat, po prostu nie mamy się za co złapać, no ale nie wiem, że nic nie wiem, jak to, jak to Mawia Osocrates, więc mówię, spytam kogoś, kto może coś więcej wie na ten temat, prawda? I pomyślałem, że może AI mi pomoże w tym przypadku, mówimy tutaj o czacie GPT, zapytamy, co on ma do tego, do powiedzenia w tym domacie, dlatego że wielu złośliwców twierdzi, że tylko do tego się nadaje, czyli do pisania wyrażenie regularne. No to pytamy, czy ta czata GPT, czy by nam nie pomógł w tym zakresie? Składa nam wyrażenie regularne, nie wiem, czy dobrze widać, czy jest dobry kontrast i patrzymy, co tam jest napisane. Rodzaj, kamień, oddzielony wzór, typ, zapięcia materiał itd. To są słowa klucze, na podstawie których on próbuje wyłapać za wartość jakiegoś atrybutu. No ale my nie wiemy tak naprawdę, na momencie pisania wyrażenie regularnego, ile mamy atrybutów i jakie one są. Więc on de facto tutaj zrobił, musimy się zastanowić. On musiał zrozumieć, jakie są atrybuty w tym tekście i użyć ich jako słowa klucze do wyodrębienia ich wartości. Co to oznacza? To oznacza, że on rozumie ten tekst i być może zechciałby nam pomóc w tym zakresie, żebyśmy się z nim zintegrowali, zapytali go jakie tam są parametry produktów, żeby on nam je po prostu wypluł w jakiejś formie, której nam się podoba na przykład w formie tablicy. Co więcej pomyślałem, że skoro jest to możliwe i on nam tak naprawdę najprawdopodobniej poda te parametry produktu jeszcze w określonej formie, żeby łatwo to zintegrować, to może jeszcze chciałoby się zintegrować sam ze sobą. Bo przecież lenistwo to jest dobra cecha w pewnym zakresie. Więc jak gdyby napisał integrację sam ze sobą, to w ogóle wszyscy byliby szczęśliwi. I tak się zaczęła ta przygoda zwana incepcją. Nic tak nie przełamuje lodów. Musimy się zaprzyjaźnić z naszym czatem dżepidia, tak obu prosiliśmy go o jakiś dowcip i taki dowcip nam przygotował na dzisiejszą konferencję. No dobra, poznaliśmy się z czatem dżepidii, no to lecimy. Prosimy go, żeby nam napisał integrację z czatem dżepidii w języku PHP no i wypluwa nam jakoś tam informacje czytamy, co on nam tam proponuje. Proponuje, żebyśmy przy użyciu kompozera tego akurat nie ma zainstalowali gozul i obsługiwiali żądania w ten sposób. No ale jakby nie znam, nie udało mi się jeszcze poznać gozul, ale postanowiłem go poprosić, żeby zrobić to troszeczkę inaczej, bardziej po bożemu. Wolałbym za pomocą CURL. Oczywiście nie ma problemu, czat dżepidia jest bardzo grzecznym czatem, więc postanowił zintegrować się z nami przy pomocy CURL i wskazał nam instrukcję, jak należałoby to zrobić. To znaczy, że jest nam taki fragment kodu, w którym należałoby podmienić swój klucz API, wrzucić to wszystko no i zobaczyć i oczekiwać efektów. No i co idziemy na stronę czata dżepidii, generujemy sobie klucze API, wrzucamy w tamto miejsce, no i co, odpalamy już do domu praktycznie, już końca i koniec integracji, tak? Nie. Nic się nie stało. Biały ekran, wrzuciliśmy oczywiście na serwer sobie, na razie te skrypty jeszcze nie mówimy o wtyczce w WP Olimport Pro, tylko na razie na serwerze, no figa z makiem, nic się nie stało. Trochę mało danych, mamy z białego ekranu ciężko się wnioskuje, więc mamy za mało danych, wracamy do niego, udajemy juniora i pytamy się co bym w tej sytuacji zrobił. Może by nam podpowiemy mu nawet, że może jakiś debugowanie, albo coś, żeby nam pokazał, no jest jakiś błąd, to pewnie da się go jakoś złapać ten błąd i zobaczyć, co tam się faktycznie dzieje. On oczywiście grzeczny, więc wykonuje nasze polecenie, wrzuca nam kod i otrzymujemy coś takiego. Model Da Vinci Codex nie istnieje. Czy może mi jakoś pomóc? On grzeczny oczywiście przeprasza i mówi, że nie ma problemu, zmienimy rodzaj modelu i wypluwa nam kod. No to my oczywiście ten kod bierzemy, wrzucamy, ustalamy prompt i prompt jest następujący. Musicie go przeczytać, trochę zapamiętać, dlatego że jest kluczowy w kontekście kolejnego slajdu. Nic trudnego generalnie, tak? Ma tekst, który jest dołączany dynamicznie, musi wypisać w postaci tablicy wszystkie parametry, które tam rozpoznał. Wrzucamy to wszystko, no i co, lecimy. To jest wynik. Lekko mówiąc nie jest to do końca to, o co prosiliśmy, prawda? Także coś jeszcze poszło nie tak. No to wracamy, prawda, do niego jakieś głupoty mi tutaj piszesz. Niestety wtedy stwierdziłem, że on tak naprawdę nie do końca rozumie, nie rozpoznaje jakie modele, do czego służą i tak dalej. Postanowiłem poczytać dokumentacje i zobaczyć tak naprawdę z czym ja powinienem się zintegrować, jak nazwać, jak po prostu stworzyć prompt do tej integracji, tak? I ustaliłem, że modelem, którym ja chciałbym się zintegrować będzie model GPT 3.5 Turbo, więc prosimy go, on oczywiście grzecznie odpowiada, integruje się z modelem GPT 3.5 Turbo no i już jesteśmy prawie w domu. Prawie. Bo dostajemy znowu błąd, zły endpoint. Tam jakaś taka kwestia programistyczna, integracja z każdym modelem troszeczkę się różni, więc po prostu dostajemy błąd. On przeprasza, mówię grzecznie, no i wyrzuca nam... Pływy oczywiście bierzemy kod, poprawiamy no i wyrzuca nam taką sytuację. Mamy to, moi drodzy. Przecięliśmy na serwer, otrzymujemy odpowiedź i widzimy kamień, bardzo ładnie rozpoznał, że brak kamienia, materiał złoto, kolor, dwukropek złota, żółte. Nie poradził sobie w tym miejscu, dlatego że powinien być kolor złota, dwukropek żółte. Próba sobie poradził, grubość szyny, reszta miarę sobie poradził, więc jest całkiem nieźle. Na tą okoliczność, tutaj jest taki nasz mały sukces, postanowiłem czata GPT zapytać, czy nie opowiedziałby nam jeszcze jednego dowcifu, dlatego że jest tym naprawdę bardzo dobry. Mi oczywiście wyobraźnia zaczęła szaleć, ja sobie zacząłem wyobrażać, jak mógłby wyglądać kapitan widżet. No ale wyobrażania są też, szczególnie takich wizualnych rzeczy, są też lepsze narzędzia, więc postanowiłem spytać, co o tym sądzi mid-journey i tak dostaliśmy kapitana widżetu. Ok, wracamy. Idziemy teraz, mamy już gotową integrację z czatem GPT w zakresie jego samego, ale jesteśmy tak naprawdę maksymalnie w połowie drogi. Chcemy tak naprawdę wiadomo zintegrować tego czata GPT w taki sposób, żeby te atrybuty produktów były importowane z użyciem wtyczki WPO Limport Pro. Idziemy do wtyczki WPO Limport Pro z dodatkiem do ukomerca płatnym i patrzymy, jak tam są dodawane te atrybuty produktów. Jak możemy sobie z tym poradzić? Nie patrzymy i niestety okazuje się, że musimy znać atrybuty, żeby móc je przeciągnąć i zmapować. Nie ma możliwości, żeby wziąć jakąś tablicę i w postaci całej tablicy wrzucić sobie jakieś dane. Ta wtyczka nie pozwala na taką sytuację. No to musimy coś pokombinować. To go pytamy. Nie da się tak naprawdę tego zrobić. Musimy to jakoś zaprogramować. Zakładałem, że będzie tutaj już taka bardziej rozbudowana kwestia programistyczna, żeby to wszystko poskładać. No ale mówię, będę walczył. Zobaczymy może chat GPDT doła temu zrobić. No i żarty się skończyły. Od tego momentu, tak naprawdę to był błąd za błędem. Nie jestem w stanie tego na tak krótkiej prezentacji nawet streścić, ale generalnie na początku praktycznie nic się nie działo. Potem nie importowały się atrybuty, nie importowały się taksonomię, przepraszam do tych atrybutów. Było dużo różnych błędów, nawet w pewnym momencie udało mi się go zmusić. W sumie sam to zrobił do czegoś, w co wiele osób nie uwierzyłoby im, gdybym nie dał skrina tak czysto taką surówkę z rozmowy z chatem GPT, bez żadnej obróbki graficznej, czyli de facto dokonał błędu składniowego. Myślałem, że to jest wręcz niemożliwe, ale jednak postanowił to zrobić. Więc jeszcze taki inteligentny to on nie jest. Może jest na poziomie juniora, który nie sprawdza za sobą, maksymalnie. Kilka godzin tak naprawdę trwało to ta walka. Ja czytałem dokumentację, próbowałem go nakierowywać. Może jakieś funkcje wordpressowej użyć będzie lepiej się do tego nadawać. Cały czas mi przepraszam, on mówił, grzeczny jest. Także wiele przeprosin, później dostajemy to. Zainportował nam atrybuty produktów. Tutaj jest screen, oczywiście bezpośrednio z wordpressa. Tutaj słabo widać, ale są tutaj pewne jakieś takie rzeczy, które mógłby zrobić lepiej. Na przykład wysokość za wierzką podaje jako 15 milimetrów drugi od dołu, a następnie importuje atrybut wysokość za wierzką w milimetrach i podaje bez milimetrów. Na przykład tak z tym sobie nie poradził. Ale to jest jeszcze pół biedy, bo najbardziej mi się podobało trzecie od góry, czego nie widać, że wysokość nieskończoności przyjmuje wartości 6 lub 9 milimetrów. Cała integracja, cały import wszystkich produktów, ponad 5 tysięcy produktów, to kosztował nas około 4 dolarów. Całkiem moim zdaniem nieźle. 16 złotych za pracę, do której trzeba było naprawdę wielu studentów. I chciałbym takie podsumowanie. Bardzo nas straszy się tą sztuczną inteligencją i zakładamy, że proces rozwoju będzie naprawdę szybko postępował i w najbliższych latach pewnie bardzo dużo miejsc pracy zostanie w jakiś sposób zastąpione przez tą sztuczną inteligencję. Natomiast na dzień dzisiejszy, nawet chart GPT-4, z którym rozmawiałem, jest na takim etapie, że jeżeli będzie miał do czynienia troszeczkę bardziej zaawansowanym kodem, jest w stanie nawet, co się naprawdę zdziwiłem, dokonywać błędów składniowych. Także trzeba naprawdę uważać i bardzo mocno go nakierowywać. Dlatego, że jeszcze naprawdę wiele nie potrafi i to jest bardzo istotne. Na pewno jest bardzo miły i grzeczny, także wykona każde wasze polecenie. Także to jest ważne. I jest moim zdaniem relativnie tani. Tylko na pewno trzeba posiadać umiejętności programistyczne albo przynajmniej wiedzę w zakresu architektury, żeby z nim rozmawiać. Bo uwierzcie mi w tym kroku, gdzie zaczęły się schody bez wiedzy programistycznej tak naprawdę nie ma możliwości, żeby dobrnąć do końca. I to tyle.