Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Zainstaluj wymagane oprogramowanie
- Krok 2: Utwórz konto Twilio
- Krok 3: Uzyskaj klucz API dla danych, filmów i programów telewizyjnych COVID 19
- Krok 4: Połącz Pythona i Twilio przez Ngrok
- Krok 5: Przetestuj naszą aplikację
- Krok 6: Jak to działa i przyszłe ulepszenia:
- Krok 7: Uwagi końcowe
Wideo: CovBot - chatbot oparty na WhatsApp dla COVID 19 Informacje i więcej: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
CoVbot to prosty i intuicyjny chatbot oparty na Whatsapp. Główną cechą bota jest:
Może w prosty i intuicyjny sposób podać najnowszy status COVID-19 w wybranym kraju.
Dodatkowo bot może zasugerować zabawne czynności do wykonania W DOMU, takie jak:
- Zaproponuj film - film do obejrzenia z listy 10 najlepszych filmów, z krótkim omówieniem fabuły i czasu trwania. Ponieważ ta lista nie jest zakodowana w oprogramowaniu, zawsze zapewnia najnowsze aktualizacje oparte na aktualnych trendach.
- Zaproponuj program telewizyjny - program telewizyjny do obejrzenia z najpopularniejszych programów telewizyjnych, z krótkim przeglądem fabuły i ocen. Ponieważ ta lista nie jest zakodowana w oprogramowaniu, zawsze zapewnia najnowsze aktualizacje oparte na aktualnych trendach.
- Zaproponuj książkę - książka do przeczytania z listy 10 najpopularniejszych książek z notką i obrazem okładki książki.
- Codzienne treningi - jest to film oparty na 7-dniowym harmonogramie treningów dostarczonym przez siłownię CRANK na ich koncie Instagram.
Jeśli podoba Ci się ta instrukcja, rozważ zagłosowanie na nią w konkursie na autora pierwszego przedmiotu. (i tak, to jest moja pierwsza instrukcja, więc jeśli coś nie jest jasne lub wymaga więcej wyjaśnień, daj mi znać w sekcji komentarzy, a mogę ci pomóc:)
Kieszonkowe dzieci
Ten projekt jest wyłącznie projektem opartym na oprogramowaniu, więc każdy, kto postępuje zgodnie z instrukcją, korzystając z laptopa/komputera stacjonarnego/macOS/Linuksa i Internetu, może ukończyć ten projekt. Zamieszczę również szczegółową sekcję na końcu, aby bardziej szczegółowo wyjaśnić kod/proces dla osób z pewnym doświadczeniem programistycznym. Należy pamiętać, że nie jest to konieczne do ukończenia projektu
Poziom trudności projektu:
Niezbyt łatwe, ale niezbyt trudne
Sprzęt, którego użyjemy:
- Laptop/komputer stacjonarny z systemem Windows/macOS/Linux.
- Telefon komórkowy z zainstalowanym komunikatorem WhatsApp
Oprogramowanie, z którego będziemy korzystać:
- Język programowania Python
- ngrok - to narzędzie umożliwiające nam dostęp do naszego serwera spoza naszej sieci
- Edytor do wyboru: (np. Notepad++, Sublime Text, Vim itp.)
Krok 1: Zainstaluj wymagane oprogramowanie
W tym kroku wykonamy następujące czynności:
- Zainstaluj Pythona > 3.6 i przetestuj go
- Zainstaluj wymagane biblioteki Pythona
- Zainstaluj nrok
Jeśli masz zainstalowaną obie aplikacje, możesz pominąć ten krok
Zainstaluj Pythona:
Cały kod backend/serwer dla tego projektu jest napisany w Pythonie 3.6. Dlatego, aby uruchomić nasze aplikacje, musimy mieć zainstalowany na naszym komputerze Python > 3.6. Postępuj zgodnie z samouczkiem CoreySchafera na temat instalacji Pythona dla Windows i macOS
Możesz przetestować, czy wszystko jest poprawnie zainstalowane, wpisując następujące polecenie w cmd/Terminal:
python -c 'print(f"Witaj świecie")'
Jeśli wszystko zostało poprawnie zainstalowane, to Hello World powinno zostać wydrukowane na ekranie. Jeśli otrzymasz błąd nieprawidłowej składni, oznacza to, że masz zainstalowaną niewłaściwą wersję Pythona. Zainstaluj wersję Pythona >= 3.6
Zainstaluj wymagane biblioteki Pythona za pomocą pip:
Będziemy używać następujących bibliotek Pythona, aby nasze oprogramowanie działało:
- Flask - To jest framework dla naszego serwera
- Twilio - ta biblioteka umożliwia pythonowi komunikację z WhatsApp
- Żądanie - ta biblioteka służy do żądania danych z interfejsów API
- BeautifulSoup4 - Ta biblioteka służy do zbierania informacji ze stron internetowych
- lxml - Ta biblioteka jest używana w połączeniu z BeautifulSoup w celu wyodrębnienia odpowiednich informacji ze strony internetowej
Aby zainstalować te biblioteki, możesz wykonać następujące czynności:
Otwórz CMD/Terminal i wpisz następujące polecenie:
pip install flask, tilio, request, beautifulsoup4, lxml
LUB
Pobierz plik Requirements.txt i otwórz terminal w katalogu, w którym znajduje się plik, i wpisz:
pip install -r wymagania.txt
Zainstaluj nrok
ngrok pozwala na udostępnienie w Internecie serwera działającego na twoim lokalnym komputerze. Po prostu powiedz ngrokowi, na jakim porcie nasłuchuje twój serwer.
Postępuje zgodnie z instrukcją na stronie ngrok, aby zainstalować nrok dla używanego systemu operacyjnego.
Wskazówka: krok 3 przewodnika nie dotyczy tego projektu, więc można go pominąć
Krok 2: Utwórz konto Twilio
W tym kroku wykonamy następujące czynności:
- Załóż konto Twilio
- Szybkie wprowadzenie do przydatnych sekcji w konsoli Twilio
Zapisać się:
W tym projekcie będziemy używać interfejsu API Twilio Whatsapp, aby połączyć nasz program Pythona z Whatsapp. Aby móc korzystać z Twilio API, musimy najpierw utworzyć konto na oficjalnej stronie Twilio. W przypadku konta próbnego Twilio oferuje darmowy kredyt w wysokości 15 USD, z którego możemy skorzystać.
Szybkie wprowadzenie:
Po utworzeniu konta, najciekawsze sekcje konsoli Twilio dla tego projektu to:
Deska rozdzielcza - Z poziomu deski rozdzielczej możesz zobaczyć pozostałą kwotę kredytu, możesz edytować nazwę swojego projektu i zmienić język programowania
Podsekcja Whatsapp w sekcji Programowalny SMS - Z sekcji Whatsapp konsoli możesz uzyskać dostęp do kodu dołączenia dla bota, numeru Whatsapp, którego będziemy używać w projekcie do rozmowy z naszym botem, a także do konfiguracji webhooka. Więcej szczegółów na ten temat zostanie opisanych w kolejnych krokach
Krok 3: Uzyskaj klucz API dla danych, filmów i programów telewizyjnych COVID 19
Klucz API lub klucz interfejsu programowania aplikacji to kod przekazywany przez aplikacje komputerowe. Program lub aplikacja następnie wywołuje interfejs API lub interfejs programowania aplikacji, aby zidentyfikować użytkownika, programistę lub program wywołujący na stronie internetowej.
Używamy interfejsu API, aby uzyskać informacje o najnowszym statusie COVID 19, filmach i programach telewizyjnych. Aby uzyskać dostęp do API, potrzebujesz klucza, który jest osobisty dla każdego użytkownika. W tym kroku otrzymamy te klucze
Uzyskaj klucz API dla danych COVID 19:
- Zaloguj się lub zarejestruj swoje konto RapidAPI.
- Następnie przejdź do API COVID-19 autorstwa Gramzivi
- Przewiń w dół do sekcji „Parametry nagłówka” konsoli API.
- Twój klucz API powinien być widoczny w polu „X-RapidAPI-Key”.
Uzyskaj klucz API do danych filmów i programów telewizyjnych:
- Zaloguj się lub zarejestruj swoje konto TMDB
- Następnie przejdź do ustawień - API
- Przewiń w dół do sekcji „Klucz API (v3 auth)”
- Twój klucz API powinien być widoczny pod nim
Utwórz plik "config.py"
Utworzymy teraz plik config.py do przechowywania naszych kluczy API. Tworzymy dla nich osobny plik, ponieważ klucze API są informacjami poufnymi i jeśli udostępniasz swój projekt, nie powinieneś udostępniać swojego klucza API.
- Utwórz nowy katalog projektów
- Wewnątrz nowo utworzonego katalogu utwórz nowy plik o nazwie „config.py”
- Edytuj ten plik w wybranym przez siebie edytorze (Sublime, Notepad++) i skopiuj i zastąp następujący tekst odpowiednimi informacjami uzyskanymi w poprzednim kroku:
session_key = "sekret" #To nie jest bezpieczne.. ale tylko do testu jest w porządku
rapid_api_key = "" api_key = ""
Zapisz plik
Krok 4: Połącz Pythona i Twilio przez Ngrok
W tym kroku wykonamy następujące czynności:
- Pobierz kod źródłowy
- Uruchom program i przekaż lokalny adres IP na adres publiczny przez ngrok, abyśmy mogli wysłać do niego żądanie
- Skonfiguruj nasze konto Twilio, aby przekazać żądanie do naszego serwera
Pobierz kod źródłowy bota:
Pobierz cały załączony plik w tej konfiguracji do katalogu projektu utworzonego w ostatnim kroku.
Wykonaj program:
Przejdź do katalogu kodu źródłowego w CMD/terminalu i wykonaj następujące polecenie:
python server_main.py
Upewnij się, że masz "config.py", który utworzyliśmy w ostatnim kroku, w przeciwnym razie pojawi się błąd
Wynik powinien wyglądać mniej więcej tak:
* Udostępnianie aplikacji Flask „server_main” (leniwe ładowanie)
* Środowisko: produkcja UWAGA: To jest serwer deweloperski. Nie używaj go we wdrożeniu produkcyjnym. Zamiast tego użyj produkcyjnego serwera WSGI. * Tryb debugowania: włączony * Działa na https://127.0.0.1:5000/ (Naciśnij CTRL+C, aby zakończyć) * Restart ze statystyką * Debugger jest aktywny! * PIN debugera: 740-257-236
Oznacza to, że twój serwer działa poprawnie w twojej sieci lokalnej na porcie 5000. Aby udostępnić ten serwer spoza twojej sieci lokalnej użyjemy ngrok
Przekaż lokalny adres IP na adres publiczny przez nrok
Przejdź do katalogu, do którego pobrałeś ngrok przez CMD/terminal i wykonaj następujące polecenie:
nrok http 5000
Wynik powinien wyglądać mniej więcej tak:
ngrok przez @inconshreveable (Ctrl+C, aby zakończyć)
Stan sesji online Sesja wygasa 7 godzin, 59 minut Wersja 2.3.35 Region Stany Zjednoczone (us) Interfejs sieciowy https://127.0.0.1:4040 Przekazywanie _https://d44c955749bf.ngrok.io_ -> _https://localhost:5000_ Przekazywanie _https://d44c955749bf.ngrok.io_ -> _https://localhost:5000_ Połączenia ttl opn rt1 rt5 p50 p90 0 0 0,00 0,00 0,00 0,00
Skopiuj link HTTP z części „Przekazywanie” (tylko do ngrok.io). (Dodałem _ w tym przykładzie, aby uniknąć instrukcji przechwycenia go jako łącza)
Skonfiguruj usługę Twilio tak, aby używała nowego adresu do przekazywania żądań serwera do:
Teraz, gdy pomyślnie przekazaliśmy nasz serwer, aby był on dostępny publicznie, musimy skonfigurować Twilio tak, aby po wysłaniu żądania przy użyciu interfejsu API Twilio Whatsapp przesyłaliśmy żądanie do naszego serwera. Aby to zrobić, musimy wykonać następujące czynności:
- Przejdź do sekcji Whatsapp w konsoli Twilio
- Przejdź do podsekcji „Sanbox”
- W polu tekstowym „WHEN A MESSAGE COMES” wklej link HTTP z ngrok skopiowany z rozszerzeniem /sms (NIE KOPIUJ _ na początku i na końcu):
_https://d44c955749bf.ngrok.io/sms_
Teraz wszystko dla chatbota jest skonfigurowane. W kolejnym kroku możemy przetestować, czy wszystko działa poprawnie
Krok 5: Przetestuj naszą aplikację
W tym kroku wykonamy następujące czynności:
- Dołącz do naszego bota za pomocą kodu dostępu
- Wypróbuj naszą aplikację
Dołącz do naszego bota za pomocą kodu dostępu
W tym projekcie użyjemy numeru piaskownicy Whatsapp firmy Twilio dla naszego bota Whatsapp. Dla każdej osoby ta liczba będzie inna. Możesz znaleźć swój numer w ten sposób:
- Zaloguj się do swojego konta Twilio
- Przejdź do konsoli Twilio -> sekcja Whatsapp -> piaskownica
- Zobaczysz swój numer Twilio Sandbox z następującym tekstem:
Zaproś znajomych do swojej piaskownicy. Poproś ich o wysłanie wiadomości WhatsApp do:
Ze względu na politykę bezpieczeństwa Whatsapp, każdy, kto chce rozmawiać z automatycznym botem za pośrednictwem Whatsapp, musi wyraźnie wyrazić zgodę za pomocą kodu. Możesz znaleźć swój kod, patrząc w tej samej sekcji, co numer piaskownicy Twilio z tekstem:
Po zdobyciu numeru Twilio Sandbox Whatsapp i kodu opt-in, aby rozpocząć korzystanie z bota, przejdź do telefonu komórkowego i wykonaj następujące czynności:
- Zapisz „Twilio Sandbox Whatsapp Number” w kontakcie z wybraną nazwą (np. CovBot)
- Otwórz Whatsapp i wyślij następującą wiadomość do tego kontaktu:
Przystąp
Powinieneś zobaczyć taki komunikat:
Twilio Sandbox: Wszystko gotowe….
Oznacza to, że połączyłeś się ze swoim botem i możesz go zapytać qs
Wypróbuj naszą aplikację:
Aby przetestować różne funkcje bota po połączeniu, wyślij do bota następującą wiadomość:
Cześć
Powinieneś zobaczyć następujący tekst:
Witamy w CoVbot!
Prosty chatbot, który w prosty, szybki i łatwy sposób może udostępniać najnowsze aktualizacje dotyczące COVID-19. Ponieważ wszyscy jesteśmy poddani kwarantannie, bot może być używany do sugerowania zabawnych zajęć, aby jak najlepiej wykorzystać nasz czas w domu, gdy staramy się zapewnić bezpieczeństwo sobie, przyjaciołom i rodzinie. Mamy nadzieję, że Ci się spodoba i okaże się przydatny! Wyślij 4, aby rozpocząć!
Teraz możesz skorzystać z opcji wypróbowania różnych funkcji bota.
OTÓŻ TO! Twój Chatbot Whatsapp jest gotowy !!!! Gratulacje
Krok 6: Jak to działa i przyszłe ulepszenia:
Ta sekcja jest przeznaczona dla osób, które mają pewne doświadczenie w programowaniu w Pythonie. Jeśli nie, możesz pominąć tę sekcję
Kod Wyjaśnienie
Główna pętla:
Gdy wiadomość Whatsapp zostanie wysłana na numer Twilio, interfejs API Twilio wysyła żądanie POST do określonego serwera. Serwer jest zaimplementowany przy użyciu frameworka Flask, więc możemy użyć obiektu Flask Request do pobrania danych otrzymanych podczas żądania POST. Na podstawie danych (w tym przypadku liczb) decydujemy, jaką opcję wybrał użytkownik i podajemy odpowiednią informację
Dane dotyczące COVID oraz filmy i programy telewizyjne:
Dane dotyczące COVID 19, filmów i programów telewizyjnych są pobierane z interfejsu API. Używam biblioteki request python, aby uzyskać dane, a następnie przekonwertować je na format JSON. Następnie po prostu analizuję odpowiednie informacje. W przypadku filmów i programu telewizyjnego użyłem również losowej biblioteki Pythona, aby wybrać losowy program telewizyjny i film
Rezerwuj szczegóły
Zastosowany w projekcie algorytm propozycji książkowych to po prostu web scraper. Nie mogłem znaleźć żadnego interfejsu API, który daje losową książkę ze szczegółami, więc po prostu zeskrobuję stronę internetową za pomocą BeautifulSoup4 i za pomocą parsera lxml wyodrębniam odpowiednie informacje z książki
Szczegóły podmenu:
Implementacja podmenu była nieco trudniejsza niż reszta, ponieważ wiadomości Whatsapp są jak SMS-y, które są protokołem bezstanowym. Aby rozwiązać ten problem, użyłem dwóch technik:
- Używanie zmiennych globalnych do zapamiętania stanu wiadomości - jest to zaimplementowane tylko w przypadku podopcji COVID 19. W tym przypadku, gdy użytkownik wybierze opcję „Status COVID 19 w moim kraju”, zmienna globalna o nazwie incomplete_message jest ustawiona na True, aby wskazać, że nadal potrzebna jest kolejna wiadomość oparta na poprzedniej opcji. Następnie na początku następuje sprawdzenie, które sprawdza, czy wiadomość jest oznaczona jako niekompletna, jeśli tak, to przyjmuje, że wiadomość jest nazwą kraju dla danych COVID i przekazuje informacje do właściwej funkcji oraz ustawia zmienną globalną niekompletny komunikat na False
- Używanie plików cookie i sesji flask Twilio - pliki cookie i sesje kolb są używane w podmenu „Zaproponuj działanie kwarantanny” w celu zaimplementowania stanów, tak jak obecnie używa ich każda aplikacja internetowa w Internecie, ale zamiast zapamiętywać takie rzeczy, jak nazwa użytkownika lub konto zapamiętaj konwersję między Dwoma liczbami. Jeśli chcesz uzyskać więcej informacji w tej części, polecam przeczytanie tego niesamowitego przewodnika po ciasteczkach Twilio napisanego przez zespół Twilio
Przyszłe ulepszenia:
- Wykorzystaj zorientowanie obiektowe Pythona i wzorców projektowych, aby poprawić architekturę kodu i DRYness
- Usuń zmienne globalne
- Można poprawić obsługę błędów
- Automatycznie aktualizuj adres ngrok za pomocą kukurydzy i interfejsu Twilio CLI
- Dokumentacja kodu
Krok 7: Uwagi końcowe
Mam nadzieję, że podoba się Wam ten projekt. To jest moja pierwsza instrukcja, więc jeśli coś nie jest jasne lub wymaga więcej wyjaśnień, daj mi znać w sekcji komentarzy, a mogę ci pomóc. Również jeśli stworzyłeś ten projekt za pomocą innej techniki lub listy funkcji, udostępnij go wszystkim
Zalecana:
Jak zmodyfikować serwo, aby uzyskać informację zwrotną w pętli zamkniętej: 7 kroków
Jak zmodyfikować serwo, aby uzyskać sprzężenie zwrotne w zamkniętej pętli: ► Podczas jazdy serwo z mikrokontrolerem (jako Arduino), możesz wydawać mu tylko polecenia lokalizacji docelowej (w sygnale PPM). W tej kolejności serwo przemieści się do tego celu Lokalizacja. Ale to nie jest natychmiastowe! Nie wiesz dokładnie, kiedy lo
Automatyczny pomiar temperatury i informacje głosowe: 5 kroków (ze zdjęciami)
Automatyczny pomiar temperatury i informacje głosowe: W ostatnim dniu cały świat zmaga się z wirusem Covid19. Pierwszym sprawdzeniem pod kątem osób dotkniętych chorobą (lub podejrzanych o skutki) jest pomiar temperatury ciała. Tak więc ten projekt jest stworzony dla modelu, który może automatycznie mierzyć temperaturę ciała i informować przez vo
Bezdotykowy automatyczny system mycia rąk oparty na Raspberry Pi dla Covid-19: 4 kroki
Bezdotykowy automatyczny system mycia rąk oparty na Raspberry Pi dla Covid-19: Jest to prosty system mycia rąk wykorzystujący czujniki pir i płytkę Raspberry pi. Ta aplikacja jest przeznaczona głównie do celów higienicznych. Model można umieścić w miejscach publicznych, szpitalach, centrach handlowych itp
Cztery ciasta - nowy Raspberry Pi 4 - najważniejsze informacje i projekt świętowania!: 6 kroków
Cztery ciasta - nowy Raspberry Pi 4 - najważniejsze wydarzenia i projekt świętowania!: Poniżej krótki przegląd zawartości. Wprowadzenie i prezentacja wideo Pie Pi 3.14 Pies Wynik
Więcej mocy dla twojego komputera. (Drugi zasilacz zasilacz): 3 kroki
Więcej mocy dla twojego komputera. (Drugi zasilacz zasilacz): Ta instrukcja pokaże ci, jak dać ci trochę swobody, jeśli twoja karta graficzna (lub jeśli masz tylko jedną szynę 12 V, będzie w stanie zapewnić więcej mocy zarówno procesorowi, jak i karcie graficznej). Tuż przed rozpoczęciem nie jest to konfiguracja master i slave