Sadržaj:
- Supplies
- Korak 1: Instalirajte potreban softver
- Korak 2: Kreirajte Twilio račun
- Korak 3: Nabavite API ključ za podatke, filmove i TV emisije o bolesti COVID 19
- Korak 4: Povežite Python i Twilio putem Ngroka
- Korak 5: Testirajte našu aplikaciju
- Korak 6: Kako to funkcionira i buduća poboljšanja:
- Korak 7: Završne napomene
Video: CovBot - chatbot zasnovan na WhatsApp -u za COVID 19 Informacije i više: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
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:
- 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.
- 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.
- Predloži knjigu - Knjiga za čitanje sa top 10 lista knjiga sa zamućenim izgledom i naslovnom slikom knjige.
- 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:
- Python programski jezik
- ngrok - je alat koji nam omogućuje pristup našem poslužitelju izvan naše mreže
- Uređivač po vašem izboru: (npr. Notepad ++, Sublime Text, Vim itd.)
Korak 1: Instalirajte potreban softver
U ovom koraku ćemo učiniti sljedeće:
- Instalirajte Python> 3.6 i testirajte ga
- Instalirajte potrebne python biblioteke
- 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:
- Flask - Ovo je okvir za naš server
- Twilio - Ova biblioteka pruža način da Python komunicira s WhatsAppom
- Zahtjev - Ova biblioteka se koristi za traženje podataka od API -ja
- BeautifulSoup4 - Ova biblioteka se koristi za brisanje informacija s web stranica
- 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:
- Prijavite se za Twilio račun
- 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
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:
- Preuzmite izvorni kod
- Izvršite program i proslijedite lokalni IP na javnu adresu putem ngroka kako bismo mogli uputiti zahtjev za to
- 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:
- Idite na odjeljak Whatsapp na Twiliovoj konzoli
- Idite na pododjeljak "Sanbox"
- 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
U ovom koraku ćemo učiniti sljedeće:
- Pridružite se našem botu pomoću pristupnog koda
- 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:
- Spremite "Twilio Sandbox Whatsapp broj" u svoj kontakt s vašim imenom (npr. CovBot)
- 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:
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:
- 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
- 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:
- Iskoristite Object Orientedness Python i Design Patterns za poboljšanje arhitekture koda i DRYness
- Uklonite globalne varijable
- Rukovanje greškama se može poboljšati
- Automatski ažurirajte ngrok adresu koristeći corn i Twilio CLI
- 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:
Kako modificirati servo za povratne informacije o zatvorenoj petlji: 7 koraka
Kako modificirati servo za povratne informacije zatvorene petlje: ► Dok vozite servo s mikrokontrolerom (kao Arduino), možete mu dati samo naredbe o ciljnoj lokaciji (u PPM signalu). S ovim redoslijedom, servo će se pomaknuti na ovu metu lokacija. Ali to nije trenutno! Ne znate tačno kada je lo
Povratne informacije o vlažnosti tla Kontrolirani sustav za navodnjavanje kapanjem povezan s internetom (ESP32 i Blynk): 5 koraka
Povratne informacije o vlažnosti tla Kontrolirani sustav za navodnjavanje kapanjem povezane s internetom (ESP32 i Blynk): Brinite o svom vrtu ili biljkama kada idete na duge praznike, ili zaboravite svakodnevno zalijevati biljku. Eto rješenja
Automatsko mjerenje temperature i glasovne informacije: 5 koraka (sa slikama)
Automatsko mjerenje temperature i glasovne obavijesti: Posljednjih dana cijeli se svijet bori s virusom Covid19. Prvo provjeravanje ima li pogođenih osoba (ili se sumnja da je učinjeno) mjerenje tjelesne temperature. Stoga je ovaj projekt napravljen po modelu koji može automatski mjeriti tjelesnu temperaturu i informirati putem
Uzgoj više salate na manje prostora ili Uzgoj salate u svemiru, (više ili manje) .: 10 koraka
Uzgoj više salate na manje prostora ili … Uzgoj salate u svemiru, (više ili manje) .: Ovo je profesionalna prijava na takmičenje Growing Beyond Earth, Maker, predano putem Instructables. Nisam mogao biti više uzbuđen što dizajniram za proizvodnju svemirskih biljaka i objavljujem svoj prvi Instructable. Za početak, takmičenje nas je zamolilo da
Korištenje više od 4 motora - slaganje više štitnika motora: 3 koraka
Korištenje više od 4 motora - slaganje višestrukih štitova motora: Vibrotaktilni senzorski uređaj za zamjenu i povećanje senzora (https: //www.instructables.com/id/Vibrotactile-Sens …) pokazuje način kako izgraditi uređaj koji prevodi senzorni unos u vibracione stimulanse. Ti vibracijski stimulansi su p