Chatbot z Pytonem : Budowanie Chatbotów na własnej skórze

https://szkolazpieklarodem.pl/

Nauczenie się „Budowania Chatbotów na własnej skórze” nie jest zbyt trudne. To trudny sposób na budowanie chatbotów, aby mieć pełną kontrolę nad własnymi chatbotami. Jeśli chcesz wszystko zbudować sam, wybierz trudną drogę. Trudniejsza trasa jest trudna, gdy ją przechodzisz, ale piękna i przejrzysta, gdy spojrzysz wstecz. To wyboista droga, która prowadzi na wyżyny wielkości. —Lucjusz Annaeusz Seneka. Jeśli dobrze znasz Pythona i masz trochę wiedzy na temat konfigurowania pakietów itp., nie będziesz miał żadnych problemów z nauczeniem się tego rozdziału. Jeśli jesteś programistą, powinno to być dla Ciebie łatwe. Jeśli jesteś menedżerem lub osobą nietechniczną, nadal możesz wykonywać kroki jeden po drugim zgodnie z opisem w każdej sekcji i załatwić sprawę. Gorąco polecam wszystkim ukończenie tego rozdziału, aby dowiedzieć się podstawowych rzeczy na temat tworzenia chatbotów. W tym rozdziale nie tylko nauczysz się budować chatboty od podstaw, ale także pokażesz, jak podstawowe uczenie maszynowe (ML) współpracuje z NLP przy pomocy Rasa NLU. Jak wspomniano w pierwszym rozdziale tej książki, podczas tworzenia chatbotów zawsze dobrze jest mieć drzewa decyzyjne. W tym rozdziale prawie nie będziemy używać żadnych reguł, ale ML nie jest jeszcze na tym etapie w pełni niezawodny. Zatem ta decyzja opiera się całkowicie na Twoim przypadku użycia i tym, czy chcesz zastosować logikę biznesową wraz z modelami uczenia maszynowego, czy nie. Czasami Twój model uczenia maszynowego może działać tak dobrze, że nie potrzebujesz w ogóle żadnej heurystyki. Jednak z mojego doświadczenia wynika, że sprzedając lub komercjalizując swoje chatboty, trzeba zachować pewną ostrożność. Żadna funkcjonalność nie jest lepsza niż funkcjonalność, która nie ma sensu. Będziemy używać biblioteki open source o nazwie Rasa NLU do nauki tworzenia chatbotów od podstaw bez korzystania z usług w chmurze, takich jak Dialogflow, Watson, wit.ai itp. Pamiętaj Rasa NLU to bardzo zaawansowana biblioteka i ma wiele funkcji w tym. Zamierzamy poruszyć jedynie koncepcje i funkcje, które są dla nas ważne przy budowie naszego chatbota.

Per-āa : Praktyka docelowa

https://szkolazpieklarodem.pl/

Po tym, jak młodzi książęta lub stażyści wojskowi byli w stanie prowadzić rydwany, następnym zadaniem było rozwijanie umiejętności łuczniczych. Nie tylko celność była niezbędna na polu bitwy, ale była przydatna na pustyni podczas polowania na zwierzynę. Przed wypuszczeniem na pustynię na potencjalnie niebezpieczne cele zwierzęce, strzelcy ćwiczyli w bezpiecznym środowisku. Typowy cel składał się z blachy miedzianej ułożonej wzdłuż kursu na wysokości ramion. Woźnica jechał szybko i próbował trafić w cel strzałami. Kamienny blok w Muzeum Luksorskim przedstawia króla Amenhotepa II z XVIII dynastii używającego jednego z tych celów. Jest szczególnie utalentowany i trafił w cel pięcioma strzałami, z których każda trafiła z taką siłą, że wystawała na drugą stronę.

Chatbot z Pytonem : Streszczenie

https://szkolazpieklarodem.pl/

Dowiedzieliśmy się o Dialogflow i o tym, jak wykorzystać Dialogflow do zbudowania chatbota. Nauczyliśmy się definiować intencje i ich istoty. Zbudowaliśmy prostego chatbota do zamawiania jedzenia, który rozumie zamiar zamówienia jedzenia od użytkownika, a także rozumie, o jakie produkty spożywcze prosił użytkownik, a także ich ilość. Udoskonaliliśmy także naszego chatbota, aby umożliwić użytkownikom pytanie o status zamówienia, pobranie od niego identyfikatora zamówienia i sformułowanie odpowiedzi z różnymi statusami zamówienia. O realizacji dowiedzieliśmy się także w Dialogflow, gdzie pobieraliśmy status zamówienia z własnego API i na tej podstawie przekazywaliśmy użytkownikowi odpowiedź. Nauczyliśmy się tworzyć internetowe demo naszego chatbota, a także zintegrowaliśmy naszego bota z Messengerem. W tym momencie powinieneś mieć dobre pojęcie o tym, jak chatbot działa od początku do końca. Dalej spróbujemy trudniejszego sposobu budowania chatbotów. Tak, dobrze słyszałeś. Zamierzamy usunąć zależność od narzędzi takich jak Dialogflow i sami zbudujemy wszystko programowo. Przygotujmy się, bo będzie jeszcze więcej zabawy, gdy sam zbudujesz wszystko od zera. To jak szkolenie i oswajanie własnych chatbotów.

Per-āa : Wożenie rydwanem

https://szkolazpieklarodem.pl/

Rydwan został wprowadzony do Egiptu dopiero pod koniec Drugiego Okresu Przejściowego. Królowie i niektórzy szlachcice Nowego Królestwa byli szkoleni od najmłodszych lat w wożeniu rydwanami w ramach przygotowań do pola bitwy. Rydwany w starożytnym Egipcie były małe i lekkie. Ciągnięte przez dwa konie pojazdy te przewoziły dwie osoby – woźnicę i włócznika lub łucznika. W obu rolach szkolono króla lub szlachcica. Przeważnie chłopcy byli szkoleni w zakresie umiejętności wożenia rydwanami, ale w miejscu Amarny małe córki Echnatona (patrz rozdział 4) są pokazane na ścianach grobowców i świątyni, prowadząc własne rydwany – obraz ten jest unikalny dla tego okresu. Mały szkic w Muzeum Kairskim przedstawia królową, uważaną za Hatszepsut, prowadzącą rydwan i strzelającą strzałami do wroga, co może wskazywać, że niektóre królewskie kobiety nabrały umiejętności wożenia rydwanami. W Amarnie większość elitarnych członków społeczeństwa posiadała rydwan, ponieważ był to ich główny środek transportu. Po tym, jak Egipcjanin opanował kierowanie rydwanem, dowody sugerują, że miały miejsce wyścigi rydwanów. Nic z kalibru Ben Hura, ale mimo to wyścigi. Tuż za Malkatą, tebańskim pałacem Amenhotepa III, znajduje się tymczasowa loża o nazwie Kom el ‘Abd, z widokiem na bardzo długą, prostą drogę. Droga została oczyszczona do użytku w wyścigach szybkich rydwanów, w których bez wątpienia uczestniczył Amenhotep III. Wyścigi te były prawdopodobnie imprezami półprywatnymi, widzianymi tylko przez ludzi mieszkających w Malkacie i okolicach.

Chatbot z Pytonem : Sprawdzanie odpowiedzi

https://szkolazpieklarodem.pl/

Dialogflow oczekuje odpowiedzi od Twojej usługi internetowej w formacie pokazanym na rysunku  za każdym razem, gdy wysyła ona odpowiedź JSON dotyczącą zamiaru do Twojej usługi internetowej.

Jeśli uważasz, że odpowiedź Twojego interfejsu API powinna mieć dokładnie taki sam format, jak na rysunku , to spokojnie – tak nie jest. Twoja intencja nie spowoduje błędów, ponieważ wszystkie klucze w treści JSON są opcjonalne. Oto jak moja odpowiedź API wygląda i działa idealnie:

{

“fulfillmentText”: “Order ID: 9999. It’s on the way”,

“payload”: {

“facebook”: {

“text”: “Order ID: 9999. It’s on the way”

}

}

}

Kiedy próbuję ponownie trafić do tego samego interfejsu API, otrzymuję inny tekst statusu zamówienia, ale w tym samym formacie oczekiwanym przez silnik Dialogflow.

{

“fulfillmentText”: “Order ID: 9999. Rider has picked up your food,

please wait for another 10-15 minutes”,

“payload”: {

“facebook”: {

“text”: “Order ID: 9999. Rider has picked up your food, please

wait for another 10-15 minutes”

}

}

}

fillText to klucz, który ma znaczenie, aby agent mógł odpowiedzieć użytkownikowi. Teraz wypróbuj bota z publicznym adresem URL lub w samym agencie Dialogflow, aby zobaczyć odpowiedzi pochodzące z interfejsu API zamiast domyślnych odpowiedzi statycznych, które dodaliśmy wcześniej. W ten sposób możemy zintegrować zewnętrzne API lub własne API za pomocą funkcji Dialogflow realizacji zamówień w naszym chatbocie, aby wszystko było dynamiczne i odbywało się w czasie rzeczywistym.

Per-āa : Prowadzenie sportowego życia

https://szkolazpieklarodem.pl/

Niektórzy członkowie elity preferowali bardziej aktywne życie towarzyskie i uprawiali szereg sportów, w tym zapasy i apodnoszenie ciężarów (z workami z piaskiem). Chociaż wiele z tych działań było częścią szkolenia wojskowego, prawdopodobnie niektóre osoby wybrały trening wyłącznie po to, aby poprawić swoją sylwetkę i siłę fizyczną. Wśród wielu zabawek dziecięcych w mieście Kahun w regionie Fajum archeolodzy odkryli kilka piłek zrobionych z pasków skóry zwierzęcej zszytych razem i wypchanych suszoną trawą. Nie wiadomo, czy w gry, w które dzieci bawiły się tymi piłkami, kiedykolwiek grali dorośli, ale jestem pewien, że niektórzy ludzie lubią myśleć, że piłka nożna była nie tylko „piękną grą”, ale także „starożytną grą”. W kolejnych rozdziałach omówiono popularne formy rekreacji zarówno dla egipskich elit, jak i mas.

Per-āa : Ogary i Szakale

https://szkolazpieklarodem.pl/

Inną popularną grą z Nowego Królestwa są Hounds and Jackals – nazwane tak, ponieważ jeden zestaw pionków przedstawia głowy szakali i innych psów gończych. Gra znana jest również jako 58 dołków.

Ogary i Szakale to gra dla dwóch graczy. Do gry potrzebujesz:

* Plansza do gry z dwoma torami po 30 dołków każda. Deską może być płaski kawałek drewna z wywierconymi w nim otworami – dwie „ścieżki” po 30 otworów każda. Dostępne są również bardziej rozbudowane tablice 3D. (Luwr w Paryżu ma w swojej kolekcji deskę rzeźbiarską w kształcie hipopotama.)

Rysunek  przedstawia przykładowy układ tablicy.

Możesz skopiować ten obraz, nakleić go na tablicę 1⁄2 cala i wywiercić otwory w każdej pozycji.

* Dziesięć kołków. Zwykle pięć kołków z szakalami na końcach i pięć kołków z psami na końcach. Możesz zastąpić kołki w dwóch różnych kolorach.

* Zestaw czterech patyczków. Liczba pól, które poruszasz na planszy, jest określana przez rzucanie kijami, jak opisują zasady Senet. Każdy gracz zaczyna z pięcioma figurami (ogarami lub szakalami). Celem gry jest umieszczenie wszystkich pięciu pionów w dołku 30, podążając torem na twojej połowie planszy. Każdy kołek musi dwukrotnie okrążyć tor, aby wygrać. Tak jak w Snakes and Ladders, jeśli gracz wyląduje w

* Dołek 6, on lub ona przechodzi bezpośrednio do dołka 20

* Dołek 15 lub 25, on lub ona może rzucić ponownie

Chatbot z Pytonem : Spełnienie

https://szkolazpieklarodem.pl/

Aby uzyskać informacje w czasie rzeczywistym, o które prosi użytkownik, musimy opracować jakieś API lub skorzystać z istniejących. Aby to osiągnąć za pomocą Dialogflow, musielibyśmy skonfigurować realizację, która wymaga wdrożenia usługi i wywołania interfejsu API. Nie będziemy wdawać się w szczegóły tworzenia interfejsów API i sposobów ich wdrażania, ale jeśli kiedykolwiek próbowałeś korzystać z interfejsów API Google lub Facebooka, powinieneś przynajmniej wiedzieć, jak je wywoływać. Zbudowałem mały interfejs API oparty na Flasku i wdrożyłem go w Heroku. Będę go używać do realizacji, która po prostu pobiera dowolny identyfikator zamówienia w adresie URL i zwraca losowy status zamówienia. Jeśli nie znasz Heroku, nie martw się, możesz uruchomić dostarczony kod w swoim systemie lokalnym i przetestować go. W nadchodzącym rozdziale będziemy wdrażać wiele aplikacji przy użyciu Heroku, gdzie będziesz mógł dowiedzieć się rzeczy z tym związanych. W kodzie możesz przeczytać, jak analizowane są Order_identity,intentName itp. Tak więc w Dialogflow Fulfillment wyśle odpowiedź JSON z intencji na ten adres URL, który należy przeanalizować, aby uzyskać odpowiednie elementy i ich wartości oraz wykonać określone działania. Możesz także spróbować wdrożyć przykładowy kod aplikacji Flask na Heroku i mieć własny punkt końcowy pracujący w Twoim bocie w celu realizacji. Teraz Dialogflow wyśle odpowiedź JSON dotyczącą celu, dla którego w naszym punkcie końcowym włączone jest wywołanie webhooka. Posiada kod do analizowania encji Order_id i podejmowania na tej podstawie działań. Obecnie kod zwraca jedynie losowo wybrany status z listy. Aby sprawdzić, czy API działa, przejdź do POSTMAN i przetestuj go, korzystając z przykładowych danych na rysunku . Jeśli używasz aplikacji Flask lokalnie, użyj lokalnego adresu URL.

Per-āa : Senet

https://szkolazpieklarodem.pl/

Jedną z najstarszych gier planszowych jest Senet, co oznacza „grę w przemijanie”. Senet to gra strategiczna, podobna do tryktraka. Grano ją od Starego Państwa i często przedstawiano w grobowcach. Senet to gra dla dwóch graczy. Do gry potrzebujesz:

* Dwa rodzaje elementów – stożki i szpule. Każdy gracz wybiera rodzaj pionka, którego użyje na początku gry.

* Tablica senetowa. Plansze Senet mają ponumerowaną siatkę 30 kwadratów ułożonych w trzy rzędy po dziesięć. Możesz narysować i zrobić tablicę Senet samodzielnie lub użyj tablicy pokazanej na rysunku

* Zestaw czterech „kijów” lub „kostek”. Liczba kwadratów, które ruch na planszy Senet jest określany przez „rzucanie kijami” lub „rzucanie kostkami” – egipski odpowiednik rzucania kośćmi. Te cztery drewniane kije mają jedną stronę gładką i jedną pomalowaną. Kombinacja kolorowych boków widocznych podczas rzucania kijami określa liczbę pól, które poruszasz:

  • Kiedy widoczny jest tylko jeden pomalowany bok, przesuń się o jedno pole do przodu.
  • Kiedy widoczne są dwa pomalowane boki, przesuń się o dwa pola do przodu.
  • Kiedy widoczne są trzy pomalowane boki, przesuń się o trzy pola do przodu.
  • Kiedy widoczne są cztery pomalowane boki, przesuń się o cztery pola do przodu.
  • Kiedy nie widać żadnych pomalowanych boków, przesuń się o pięć pól do przodu.

Możesz stworzyć własny zestaw patyczków, kolorując lub malując jedną stronę czterech patyczków do lodu lub patyczków do rękodzieła.

Gracze zgadzają się grać z trzema, pięcioma lub siedmioma pionkami każdy. Celem gry jest przesunięcie wszystkich pionów z pola 1 na pole 30, używając drążków do określenia, o ile pól możesz przesunąć się w każdej turze. Obowiązują następujące ograniczenia:

* Jeśli Gracz 1 wyląduje na polu zajętym przez Gracza 2, gracze muszą zamienić się miejscami: Gracz 2 musi przenieść swój kawałek na pole, z którego rozpoczął Gracz 1.

* Wszyscy gracze muszą wylądować na polu 26 przed opuszczeniem planszy.

Ty i twój partner możecie stworzyć inne zasady i ograniczenia, aby gra była trudniejsza. Na przykład możesz zezwolić graczom na przerzucenie rzutu 4 między dwa oddzielne elementy. Możesz też zdecydować, że gracze muszą rzucić dokładną liczbą pól, aby osiągnąć pole 30 i ukończyć wędrówkę pionka przez planszę.