CovBot - chatbot zasnovan na WhatsAppu za COVID 19 Informacije i više: 7 koraka
CovBot - chatbot zasnovan na WhatsAppu za COVID 19 Informacije i više: 7 koraka
Anonim
Image
Image
Izradite Twilio račun
Izradite Twilio račun

CoVbot je jednostavan i intuitivan chatbot zasnovan na Whatsappu. Glavna značajka bota je:

Na jednostavan i intuitivan način može vam dati najnoviji status COVID-19 u zemlji izbora.

Osim toga, bot može predložiti zabavne aktivnosti KOD DOMA, kao što su:

  1. Predloži film - film za gledanje s top 10 filmova s kratkim pregledom radnje i trajanjem. Budući da ovaj popis nije hardkodiran u softveru, uvijek ćete dobiti najnovija ažuriranja na temelju trenutnih trendova.
  2. Predloži TV emisiju - TV emisiju za gledanje iz najpopularnijih TV emisija, s kratkim pregledom radnje i gledanosti. Budući da ovaj popis nije hardkodiran u softveru, uvijek ćete dobiti najnovija ažuriranja na temelju trenutnih trendova.
  3. Predloži knjigu - Knjiga za čitanje s Top 10 knjiga s popisom i omotom knjige.
  4. Dnevni treninzi-Ovo je video zapis temeljen na sedmodnevnom rasporedu vježbi koji pruža CRANK gym na svom Instagram računu.

Ako vam se sviđa ovaj Instructable, razmislite o tome da ga glasate na natječaju za autore prve stavke. (i da, ovo je moje prvo uputstvo, pa ako vam nešto nije jasno ili trebate dodatno objašnjenje, javite mi u odjeljku za komentare i mogu vam pomoći:)

Pribor

Ovaj je projekt isključivo projekt temeljen na softveru, tako da svatko tko slijedi ove upute s prijenosnim/stolnim računalom/macOS/Linuxom i internetom može dovršiti ovaj projekt. Uključit ću i detaljan odjeljak na kraju kako bih detaljnije objasnio kôd/proces za osobe s nekim iskustvom u programiranju. Imajte na umu da ovo nije potrebno za dovršetak projekta

Razina zahtjevnosti projekta:

Nije baš lako, ali nije ni teško

Hardver koji ćemo koristiti:

  • Prijenosno/stolno računalo sa sustavom Windows/macOS/Linux.
  • Mobilni telefon s instaliranim WhatsApp Messengerom

Softver koji ćemo koristiti:

  1. Programski jezik Python
  2. ngrok - je alat koji nam omogućuje pristup našem poslužitelju izvan naše mreže
  3. Uređivač po vašem izboru: (npr. Notepad ++, Uzvišeni tekst, Vim itd.)

Korak 1: Instalirajte potrebni softver

Image
Image

U ovom koraku učinit ćemo sljedeće:

  1. Instalirajte Python> 3.6 i testirajte ga
  2. Instalirajte potrebne knjižnice python
  3. Instalirajte ngrok

Ako imate obje aplikacije instalirane, možete preskočiti ovaj korak

Instalirajte Python:

Cijela kodirana baza podataka poslužitelja/poslužitelja za ovaj projekt napisana je u Pythonu 3.6. Stoga za pokretanje naših aplikacija moramo imati instaliran Python> 3.6 na računalu. Slijedite vodič CoreySchafera o tome kako instalirati python za Windows i macOS

Možete provjeriti je li sve ispravno instalirano upisivanjem sljedećeg u cmd/terminal:

python -c 'print (f "Hello World")'

Ako je sve ispravno instalirano, Hello World bi trebao biti ispisan na ekranu. Ako dobijete pogrešnu sintaksnu pogrešku, imate instaliranu pogrešnu verziju pythona. Instalirajte verziju pythona> = 3.6

Instalirajte potrebne python knjižnice pomoću pipa:

Za rad našeg softvera koristit ćemo sljedeće python knjižnice:

  1. Flask - Ovo je okvir za naš poslužitelj
  2. Twilio - Ova knjižnica pruža način da Python komunicira s WhatsAppom
  3. Zahtjev - Ova se knjižnica koristi za traženje podataka od API -ja
  4. BeautifulSoup4 - Ova se knjižnica koristi za brisanje informacija s web stranica
  5. lxml - Ova se knjižnica koristi u kombinaciji s BeautifulSoupom za izdvajanje relevantnih informacija s web stranice

Da biste instalirali ove knjižnice, učinite sljedeće:

Otvorite CMD/terminal i upišite sljedeću naredbu:

pip install flask, twilio, request, beautifulsoup4, lxml

ILI

Preuzmite datoteku requirements.txt i otvorite terminal u direktoriju u kojem se nalazi datoteka i upišite:

pip install -r requirements.txt

Instalirajte ngrok

ngrok vam omogućuje da poslužitelju koji radi na vašem lokalnom računalu izlažete internet. Samo recite ngroku na kojem portu poslužuje vaš poslužitelj.

Slijedi vodič na web stranici ngrok za instaliranje ngroka za operativni sustav koji koristite.

Savjet: Korak 3 vodiča nije relevantan za ovaj projekt pa se može preskočiti

Korak 2: Izradite Twilio račun

U ovom koraku učinit ćemo sljedeće:

  1. Prijavite se za Twilio račun
  2. Brzi uvod u korisne odjeljke na Twiliovoj konzoli

Prijavite se:

U ovom projektu koristit ćemo Twilio Whatsapp API za povezivanje našeg programa python s Whatsappom. Da bismo mogli koristiti Twilio API, prvo moramo stvoriti račun na službenoj web stranici Twilio. Za probni račun Twilio nudi besplatan kredit od 15 USD za korištenje.

Brzi uvod:

Nakon što ste stvorili račun, najzanimljiviji odjeljci Twilio konzole za ovaj projekt su:

Nadzorna ploča - Na nadzornoj ploči možete vidjeti iznos kredita koji vam je preostao, možete urediti naziv projekta i promijeniti programski jezik

Pododsjek Whatsapp u odjeljku Programabilni SMS - Iz odjeljka Whatsapp na konzoli možete dobiti pristup kodu za pridruživanje bota, broju Whatsappa koji ćemo koristiti u projektu za razgovor s našim botom te postavljanju web kuke. Više detalja o svemu tome bit će opisano u sljedećim koracima

Korak 3: Nabavite API ključ za podatke, filmove i TV emisije o bolesti COVID 19

Nabavite API ključ za podatke, filmove i TV emisije o bolesti COVID 19
Nabavite API ključ za podatke, filmove i TV emisije o bolesti COVID 19
Nabavite API ključ za podatke, filmove i TV emisije o bolesti COVID 19
Nabavite API ključ za podatke, filmove i TV emisije o bolesti COVID 19

API ključ ili ključ sučelja za programiranje aplikacije je kôd koji prosljeđuju računalne aplikacije. Program ili aplikacija tada poziva API ili sučelje za programiranje aplikacije kako bi identificirali svog korisnika, razvojnog programera ili program koji poziva web stranicu.

Koristimo API za dobivanje informacija o najnovijim statusima, filmovima i TV emisijama o bolesti COVID 19. Za pristup API -ju potreban vam je ključ koji je osobni za svakog korisnika. U ovom koraku dobit ćemo ove ključeve

Nabavite API ključ za podatke o bolesti COVID 19:

  • Prijavite se ili se prijavite za svoj RapidAPI račun.
  • Nakon toga idite na COVID-19 API by Gramzivi
  • Pomaknite se dolje do odjeljka "Parametri zaglavlja" API konzole.
  • Vaš API ključ trebao bi biti vidljiv u polju "X-RapidAPI-Key".

Nabavite API ključ za podatke o filmovima i TV emisijama:

  • Prijavite se ili se prijavite za svoj TMDB račun
  • Nakon toga idite na svoju postavku - API
  • Pomaknite se dolje do odjeljka "API ključ (v3 auth.)"
  • Vaš API ključ trebao bi biti vidljiv ispod njega

Izradite datoteku "config.py"

Sada ćemo stvoriti datoteku config.py za pohranu naših API ključeva. Za njih stvaramo zasebnu datoteku, jer su API ključevi povjerljivi podaci i ako dijelite svoj projekt, ne biste trebali dijeliti svoj API ključ.

  • Izradite novi direktorij projekta
  • Unutar novostvorenog direktorija stvorite novu datoteku pod nazivom "config.py"
  • Uredite ovu datoteku uređivačem po vašem izboru (Sublime, Notepad ++) i kopirajte i zamijenite sljedeći tekst relevantnim podacima dobivenim u prethodnom koraku:

session_key = "secret" #Ovo nije sigurno.. ali samo za test je u redu

rapid_api_key = "" api_key = ""

Spremite datoteku

Korak 4: Povežite Python i Twilio putem Ngroka

U ovom koraku učinit ćemo sljedeće:

  1. Preuzmite izvorni kod
  2. Izvršite program i proslijedite lokalni IP na javnu adresu putem ngroka kako bismo mogli podnijeti zahtjev za to
  3. Konfigurirajte naš Twilio račun da proslijedi zahtjev našem poslužitelju

Preuzmite izvorni kod za robota:

Preuzmite sve priložene datoteke u ovoj postavci u direktorij projekta kreiran u posljednjem koraku.

Izvršite program:

Idite u direktorij izvornog koda u CMD/terminalu i izvedite sljedeću naredbu:

python server_main.py

Provjerite imate li "config.py" koji smo stvorili u zadnjem koraku ili ćete dobiti pogrešku

Izlaz bi trebao biti otprilike ovako:

* Aplikacija koja poslužuje Flask "server_main" (lijeno učitavanje)

* Okoliš: proizvodnja UPOZORENJE: Ovo je razvojni poslužitelj. Nemojte ga koristiti u proizvodnoj instalaciji. Umjesto toga koristite produkcijski WSGI poslužitelj. * Način otklanjanja pogrešaka: uključen * Pokreće se na https://127.0.0.1:5000/ (pritisnite CTRL+C za prekid) * Ponovno pokretanje sa stat * Otklanjanje pogrešaka je aktivno! * PIN za otklanjanje pogrešaka: 740-257-236

To znači da vaš poslužitelj ispravno radi na vašoj lokalnoj mreži na portu 5000. Kako bismo ovaj poslužitelj učinili pristupačnim izvan vaše lokalne mreže, koristit ćemo ngrok

Proslijedite lokalni IP na javnu adresu putem ngroka

Idite u direktorij u koji ste preuzeli ngrok putem CMD/terminala i izvedite sljedeću naredbu:

ngrok http 5000

Izlaz bi trebao biti otprilike ovako:

ngrok od @inconshreveable (Ctrl+C za prekid)

Status sesije na mreži Sesija istječe 7 sati, 59 minuta Verzija 2.3.35 Regija Sjedinjene Države (nas) Web sučelje https://127.0.0.1:4040 Prosljeđivanje _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Prosljeđivanje _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Veze ttl opn rt1 rt5 p50 p90 0 0 0,00 0,00 0,00 0,00

Kopirajte HTTP vezu iz dijela "Forwading" (samo do ngrok.io). (Dodao sam _ u ovaj primjer kako bih izbjegao upute da ga presretnem kao vezu)

Konfigurirajte Twilio da koristi novu adresu za prosljeđivanje zahtjeva poslužitelja za:

Sada kada smo uspješno proslijedili našem poslužitelju javni pristup, moramo konfigurirati Twilio tako da kada se zahtjev podnese putem Twilio Whatsapp API -ja proslijedimo zahtjev na naš poslužitelj. Da bismo to učinili, moramo učiniti sljedeće:

  1. Idite na odjeljak Whatsapp na Twiliovoj konzoli
  2. Idite na pododjeljak "Sanbox"
  3. U tekstualno polje "KADA DOĐE PORUKA" zalijepite HTTP vezu s ngroka kopiranu s /sms nastavkom (NE KOPIRAJTE _ na početku i na kraju):

_https://d44c955749bf.ngrok.io/sms_

Sada je sve za chatbot postavljeno. U sljedećem koraku možemo provjeriti radi li sve ispravno

Korak 5: Testirajte našu aplikaciju

Testirajte našu aplikaciju
Testirajte našu aplikaciju
Testirajte našu aplikaciju
Testirajte našu aplikaciju
Testirajte našu aplikaciju
Testirajte našu aplikaciju

U ovom koraku učinit ćemo sljedeće:

  1. Pridružite se našem botu pomoću pristupnog koda
  2. Isprobajte našu aplikaciju

Pridružite se našem botu pomoću pristupnog koda

U ovom projektu koristit ćemo Twiliov Whatsapp Sandbox broj za našeg Whatsapp bota. Za svaku osobu taj će broj biti različit. Svoj broj možete pronaći ovako:

  • Prijavite se na svoj Twilio račun
  • Idite na Twilio Console -> Whatsapp odjeljak -> Sandbox
  • Vidjet ćete svoj Twilio Sandbox broj sa sljedećim tekstom:

Pozovite svoje prijatelje u svoj Sandbox. Zamolite ih da pošalju poruku WhatsApp na:

Zbog sigurnosne politike Whatsappa, svi koji žele razgovarati s automatiziranim botom putem Whatsappa moraju se izričito uključiti pomoću koda. Svoj kôd možete saznati ako pogledate u istom odjeljku kao i svoj Twilio sandbox broj sa tekstom:

Nakon što ste stekli svoj Twilio Sandbox Whatsapp broj i kôd za prijavu, za početak korištenja bota idite na svoj mobilni telefon i učinite sljedeće:

  1. Spremite "Twilio Sandbox Whatsapp broj" u svoj kontakt s vašim imenom (npr. CovBot)
  2. Otvorite Whatsapp i pošaljite sljedeću poruku tom kontaktu:

pridružiti

Trebali biste vidjeti ovakvu poruku:

Twilio Sandbox: Sve je spremno….

To znači da ste se povezali sa svojim botom i spremni to pitati qs

Isprobajte našu aplikaciju:

Da biste testirali različite značajke vašeg bota nakon što se povežete, pošaljite botu sljedeću poruku:

bok

Trebali biste vidjeti sljedeći tekst:

Dobro došli u CoVbot!

Jednostavan chatbot koji na jednostavan, brz i jednostavan način može dati najnovija ažuriranja COVID-19. Budući da smo svi u karanteni, bot se može upotrijebiti za predlaganje nekih zabavnih aktivnosti kako bismo maksimalno iskoristili vrijeme provedeno kod kuće jer nastojimo zaštititi sebe, prijatelje i obitelj. Nadamo se da ćete uživati i biti korisni! Pošaljite 4 za početak!

Sada možete slijediti opciju da isprobate različite značajke bota.

TO JE TO! Vaš Whatsapp Chatbot je spreman !!!! Čestitamo

Korak 6: Kako to funkcionira i buduća poboljšanja:

Kako to funkcionira i buduća poboljšanja
Kako to funkcionira i buduća poboljšanja
Kako to funkcionira i buduća poboljšanja
Kako to funkcionira i buduća poboljšanja
Kako to funkcionira i buduća poboljšanja
Kako to funkcionira i buduća poboljšanja
Kako to funkcionira i buduća poboljšanja
Kako to funkcionira i buduća poboljšanja

Ovaj odjeljak je za ljude koji imaju iskustvo programiranja na pythonu. Ako ne, možete preskočiti ovaj odjeljak

Objašnjenje koda

Glavna petlja:

Kada se Whatsapp poruka pošalje na vaš Twilio broj, Twilio API šalje POST zahtjev vašem poslužitelju koji ste naveli. Poslužitelj je implementiran pomoću okvira Flask pa možemo koristiti objekt Flask Request za dohvaćanje podataka primljenih tijekom POST zahtjeva. Na temelju podataka (u ovom slučaju brojeva) odlučujemo koju je opciju korisnik odabrao i dajemo odgovarajuće podatke

Podaci o COVID -u i filmovi i TV emisije:

Podaci o virusu COVID 19, filmovima i TV emisijama preuzimaju se iz API -ja. Koristim biblioteku zahtjeva python za dobivanje podataka, a zatim ih pretvaram u JSON format. Zatim samo raščlanjujem relevantne podatke. Za filmove i TV emisije također sam koristio biblioteku slučajnih pythona za odabir slučajne TV emisije i filma

Pojedinosti o knjizi

Algoritam prijedloga knjiga koji se koristi u projektu samo je strugač za web. Nisam mogao pronaći nijedan API koji vam daje nasumičnu knjigu s pojedinostima, pa sam samo izgrebao web stranicu koristeći BeautifulSoup4 i pomoću parsera lxml izvlačim relevantne podatke iz knjige

Detalji o podmeniju:

Implementacija podizbornika bila je malo zeznutija od ostalih jer su poruke Whatsappa poput SMS-ova koji je protokol bez stanja. Da bih to riješio, upotrijebio sam dvije tehnike:

  1. Upotreba globalnih varijabli za pamćenje stanja poruke - ovo se primjenjuje samo za podopciju COVID 19. U tom slučaju kada korisnik odabere "Status COVID -a 19 u mojoj zemlji", globalna varijabla pod nazivom incomplete_message postavljena je na True kako bi označila da je tada potrebna još jedna poruka na temelju prethodne opcije. Zatim se na početku nalazi provjera koja provjerava je li poruka označena kao nepotpuna ako pretpostavlja da je poruka naziv zemlje za podatke o bolesti COVID i prenosi informacije ispravnoj funkciji te postavlja globalnu varijablu nepotpunu poruku na Netačno
  2. Korištenje Twilio kolačića i sesije s kolačićima - Kolačići i sesije s bocom koriste se u podizborniku "Predloži aktivnost u karanteni" za implementaciju državnosti, baš kao što ih koristi bilo koja web aplikacija na internetu ovih dana, ali umjesto da zapamti stvari poput vašeg korisničkog imena ili računa zapamtite pretvorbu između dva broja. Ako vam se sviđa više informacija o ovom dijelu, preporučio sam da pročitate ovaj sjajan vodič o Twilio kolačićima koji je napisao Twilio tim

Buduća poboljšanja:

  1. Iskoristite Object Orientedness Python i Design Patterns za poboljšanje arhitekture koda i DRYness
  2. Uklonite globalne varijable
  3. Rukovanje pogreškama može se poboljšati
  4. Automatski ažuriraj ngrok adresu koristeći corn i Twilio CLI
  5. Dokumentacija koda

Korak 7: Završne napomene

Nadam se da će vam se svima svidjeti ovaj projekt. Ovo je moje prvo uputstvo, pa ako vam nešto nije jasno ili vam treba dodatno objašnjenje, javite mi u odjeljak za komentare i mogu vam pomoći. Također, ako ste ovaj projekt napravili drugom tehnikom ili popisom značajki, podijelite ga svi

Preporučeni: