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ę.

Chatbot z Pytonem : Testowanie bota messengerowego

https://szkolazpieklarodem.pl/

Aby móc udostępnić naszego bota do testów, musimy upublicznić naszą aplikację:

  1. Kliknij opcję Przegląd aplikacji w lewym menu Konsoli programisty Facebooka.
  2. Kliknij przełącznik w obszarze Upublicznij <Nazwa aplikacji>? Jeśli pojawi się komunikat Nieprawidłowy adres URL Polityki prywatności, przejdź do łącza Ustawienia podstawowe w oknie dialogowym i, jeśli jeszcze tego nie zrobiłeś, wpisz na razie dowolny adres URL Polityki prywatności, a następnie kliknij Zapisz zmiany. Teraz wróć do strony przeglądu aplikacji i spróbuj ponownie przełączyć aplikację na publiczną.
  3. Zostaniesz poproszony o wybranie kategorii swojej aplikacji.
  4. Wybierz z listy opcję Edukacja. Możesz wybrać, którykolwiek najlepiej pasuje do Twojego bota.

5. Kliknij przycisk Potwierdź, jak pokazano na rysunku , Upublicznianie aplikacji na Facebooku.

Będziemy musieli także utworzyć nazwę użytkownika dla naszej strony. Jest to nazwa użytkownika, z którą użytkownicy będą rozmawiać podczas korzystania z naszego bota. Aby ustawić nazwę użytkownika, kliknij łącze Utwórz stronę @Nazwa użytkownika w sekcji Informacje na swojej stronie, jak pokazano na rysunku . Przydaje się to, jeśli chcesz udostępnić swoją stronę lub bota osobom używającym tylko krótkiej nazwy.

Przetestujmy ten sam przepływ naszego bota na Facebooku Messenger, który testowaliśmy na stronie Dialogflow. Powinieneś być w stanie zobaczyć, jak zareagował mój bot Facebook Messenger, odwołując się do rysunków poniższych.

I tak, ludzie, budujemy naszego bota. Postaramy się osiągnąć to samo bez konieczności polegania na API lub dashboardzie Dialogflow. Zawsze dobrze jest mieć pełną kontrolę nad wszystkim, co się posiada, prawda? Uwaga: możesz przejść do ustawień swojego konta i bezpośrednio wyeksportować agenta lub zaimportować innych agentów. Możesz pobrać plik zip (OnlineEatsBot.zip). Możesz użyć tego pliku zip, aby zaimportować go do Dialogflow i pobawić się chatbotem, który zbudowaliśmy w tym rozdziale. Pewnie zastanawiasz się, co by było, gdybym chciał złożyć zamówienie w czasie rzeczywistym, sprawdzić status zamówienia za pomocą API sprzedawcy/restauracji i odpowiednio odpowiedzieć użytkownikowi? Może to być dowolne wywołanie API, które chcesz wykonać — pobierz dane w czasie rzeczywistym i sformułuj odpowiedź bota. Czas dowiedzieć się, jak to zrobić, zanim zakończymy ten rozdział i przygotujemy się do następnego. Dowiedzmy się o czymś, co nazywa się „Realizacja” w Dialogflow.

Per-āa : Granie w gry planszowe

https://szkolazpieklarodem.pl/

Chociaż dobry gawędziarz może zawładnąć tłumem na około godzinę, wieczór ma wiele godzin do wypełnienia. Egipcjanie spędzali wiele godzin grając w gry planszowe, z których trzy przetrwały. Te gry są znane jako Senet, Ogary i Szakale oraz Mehen – nazwy przetrwały przez tysiąclecia. Niestety zasady tych gier nie przetrwały. Jednak niektóre bardzo bystre osoby wymyśliły dla nich zasady oparte na liczbie kwadratów, rodzaju kości i liczbie pionków. Spróbuj zagrać w poniższe gry – lub opracuj własne alternatywne zasady.