Sadržaj:

CovBot - chatbot zasnovan na WhatsApp -u za COVID 19 Informacije i više: 7 koraka
CovBot - chatbot zasnovan na WhatsApp -u za COVID 19 Informacije i više: 7 koraka

Video: CovBot - chatbot zasnovan na WhatsApp -u za COVID 19 Informacije i više: 7 koraka

Video: CovBot - chatbot zasnovan na WhatsApp -u za COVID 19 Informacije i više: 7 koraka
Video: CoVbot - A Simple WhatsApp Chatbot For Latest COVID 19 Status Demo 2024, Novembar
Anonim
Image
Image
Otvorite Twilio račun
Otvorite Twilio račun

CoVbot je jednostavan i intuitivan chatbot zasnovan na Whatsappu. Glavna karakteristika 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, poput:

  1. Predloži film - film za gledanje sa liste 10 najboljih filmova, sa kratkim pregledom radnje i trajanja. Budući da ova lista nije hardkodirana u softveru, uvijek ćete dobiti najnovije nadogradnje zasnovane na trenutnim trendovima.
  2. Predložite TV emisiju - TV emisiju za gledanje iz najpopularnijih TV emisija, s kratkim pregledom radnje i ocjenama. Budući da ova lista nije hardkodirana u softveru, uvijek ćete dobiti najnovije nadogradnje zasnovane na trenutnim trendovima.
  3. Predloži knjigu - Knjiga za čitanje sa top 10 lista knjiga sa zamućenim izgledom i naslovnom slikom knjige.
  4. Dnevni treninzi-Ovo je video zapis zasnovan na sedmodnevnom rasporedu vježbi koji pruža CRANK teretana na svom Instagram računu.

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

Supplies

Ovaj projekt je isključivo softver zasnovan, tako da svi koji prate ovo uputstvo s prijenosnim/stolnim računalom/macOS/Linuxom i internetom mogu dovršiti ovaj projekt. Uključit ću i detaljan odjeljak na kraju kako bih detaljnije objasnio kod/proces za ljude s određenim iskustvom u programiranju. Imajte na umu da ovo nije potrebno za dovršetak projekta

Nivo projektne težine:

Nije baš lako, ali nije ni teško

Hardver koji ćemo koristiti:

  • Laptop/desktop računar sa operativnim sistemom Windows/macOS/Linux.
  • Mobilni telefon sa instaliranim WhatsApp Messenger-om

Softver koji ćemo koristiti:

  1. Python programski jezik
  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 ++, Sublime Text, Vim itd.)

Korak 1: Instalirajte potreban softver

Image
Image

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

  1. Instalirajte Python> 3.6 i testirajte ga
  2. Instalirajte potrebne python biblioteke
  3. Instalirajte ngrok

Ako ste instalirali obje aplikacije, možete preskočiti ovaj korak

Instalirajte Python:

Cijela pozadinska/poslužiteljska koda za ovaj projekt napisana je u Pythonu 3.6. Zbog toga za pokretanje naših aplikacija moramo imati instaliran Python> 3.6 na računaru. 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 odštampan na ekranu. Ako dobijete neispravnu sintaksnu grešku, imate instaliranu pogrešnu verziju pythona. Instalirajte verziju pythona> = 3.6

Instalirajte potrebne python biblioteke pomoću pipa:

Za rad našeg softvera koristit ćemo sljedeće python biblioteke:

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

Da biste instalirali ove biblioteke, možete učiniti 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 dozvoljava da server koji radi na vašoj lokalnoj mašini izlažete Internetu. Samo recite ngroku na kojem portu vaš server sluša.

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

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

Korak 2: Kreirajte Twilio račun

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

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

Prijaviti 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 nam nudi besplatni kredit od 15 USD na korištenje.

Kratak 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, kao i 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 da identificira svog korisnika, programera ili program koji poziva web lokaciju.

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 ličan za svakog korisnika. U ovom koraku ćemo dobiti 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 prema dolje do odjeljka "API ključ (v3 auth)"
  • Vaš API ključ trebao bi biti vidljiv ispod njega

Kreirajte 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 povjerljive informacije i ako dijelite svoj projekt, ne biste trebali dijeliti svoj API ključ.

  • Kreirajte 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 = ""

Sačuvajte datoteku

Korak 4: Povežite Python i Twilio putem Ngroka

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

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

Preuzmite izvorni kod za robota:

Preuzmite svu priloženu datoteku 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

Uverite se da imate "config.py" koji smo kreirali u poslednjem koraku ili ćete dobiti grešku

Izlaz bi trebao biti otprilike ovako:

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

* Okruženje: proizvodnja UPOZORENJE: Ovo je razvojni server. Nemojte ga koristiti u proizvodnoj implementaciji. Umjesto toga koristite produkcijski WSGI poslužitelj. * Način otklanjanja grešaka: uključen * Pokreće se na https://127.0.0.1:5000/ (Pritisnite CTRL+C da biste izašli) * Ponovno pokretanje sa stat * Otklanjanje grešaka je aktivno! * PIN za otklanjanje grešaka: 740-257-236

To znači da vaš poslužitelj ispravno radi na vašoj lokalnoj mreži na portu 5000. Da bi ovaj poslužitelj bio dostupan 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 ističe 7 sati i 59 minuta Verzija 2.3.35 Regija SAD (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 ovom primjeru kako bih izbjegao instrukcije da ga presretnem kao vezu)

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

Sada kada smo uspješno proslijedili našem serveru da mu se javno pristupi, moramo konfigurirati Twilio tako da kada se zahtjev podnese putem Twilio Whatsapp API -ja proslijedimo zahtjev našem serveru. 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 okvir za tekst "KADA DOĐE PORUKA" zalijepite HTTP vezu iz ngroka kopiranu s /sms nastavkom (NE KOPIRAJTE _ na početku i na kraju):

_https://d44c955749bf.ngrok.io/sms_

Sada je sve za chatbota 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 ćemo učiniti 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 ovaj ć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 WhatsApp poruku na:

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

Nakon što ste nabavili 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ži se

Trebali biste vidjeti ovakvu poruku:

Twilio Sandbox: Sve je spremno….

To znači da ste se povezali sa svojim botom i spremni da ga pitate qs

Isprobajte našu aplikaciju:

Da biste testirali različite mogućnosti vašeg bota nakon povezivanja, pošaljite botu sljedeću poruku:

Ćao

Trebali biste vidjeti sljedeći tekst:

Dobro došli u CoVbot!

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

Sada možete slijediti opciju da isprobate različite mogućnosti bota.

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

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 iskustva sa programiranjem na pythonu. Ako ne, možete preskočiti ovaj odjeljak

Šifra Objašnjenje

Glavna petlja:

Kada se Whatsapp poruka pošalje na vaš Twilio broj, Twilio API šalje POST zahtjev vašem serveru 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 informacije

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 informacije. Za filmove i TV emisije također sam koristio biblioteku slučajnih pythona za odabir nasumične TV emisije i filma

Book Details

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 detaljima, pa sam samo prešao web stranicu koristeći BeautifulSoup4 i pomoću parsera lxml izvlačim relevantne informacije iz knjige

Detalji podmenija:

Implementacija podmenija bila je malo zeznutija od ostalih jer su Whatsapp poruke poput SMS-ova koji su protokol bez državljanstva. 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 ovom slučaju, kada korisnik odabere "Opcija Status COVID -a 19 u mojoj zemlji", globalna varijabla pod nazivom incomplete_message postavljena je na Tačno kako bi označila da je tada potrebna još jedna poruka na osnovu prethodne opcije. Zatim postoji provjera na početku koja provjerava je li poruka označena kao nepotpuna ako pretpostavlja da je poruka naziv zemlje za podatke o virusu COVID -19 i prenosi informacije ispravnoj funkciji te postavlja globalnu varijablu nepotpunu poruku na Netačno
  2. Korištenje Twilio kolačića i sesije sa flašom - Kolačići i sesije u obliku boce koriste se u podmeniju "Predloži aktivnost karantene" 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čun pamti konverziju 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 greškama se može poboljšati
  4. Automatski ažurirajte ngrok adresu koristeći corn i Twilio CLI
  5. Code Documentation

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 je potrebno dodatno objašnjenje, javite mi u odjeljak za komentare i mogu vam pomoći. Takođe, ako ste ovaj projekat napravili drugom tehnikom ili listom funkcija, podijelite ga sa svima

Preporučuje se: