Kazalo:
- Zaloge
- 1. korak: Namestite potrebno programsko opremo
- 2. korak: Ustvarite račun Twilio
- 3. korak: Pridobite ključ API za podatke, filme in TV -oddaje COVID 19
- 4. korak: Povežite Python in Twilio prek Ngroka
- 5. korak: Preizkusite našo aplikacijo
- 6. korak: Kako deluje in prihodnje izboljšanje:
- 7. korak: Končne opombe
Video: CovBot - chatbot na osnovi WhatsApp za COVID 19 Informacije in več: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
CoVbot je preprost in intuitiven chatbot, ki temelji na Whatsappu. Glavna značilnost bota je:
Na preprost in intuitiven način vam lahko posreduje najnovejše stanje COVID-19 v izbrani državi.
Poleg tega lahko bot predlaga domače zabavne dejavnosti, kot so:
- Predlagajte film - film za ogled s seznama 10 najboljših filmov s kratkim pregledom zapleta in trajanja. Ker ta seznam ni strogo kodiran v programski opremi, boste vedno na voljo najnovejše posodobitve glede na trenutne trende.
- Predlagajte TV -oddajo - TV -oddajo za ogled najbolj priljubljenih televizijskih oddaj s kratkim pregledom zgodbe in gledanosti. Ker ta seznam ni strogo kodiran v programski opremi, boste vedno na voljo najnovejše posodobitve glede na trenutne trende.
- Predlagaj knjigo - Knjiga za branje s top 10 seznamov knjig z zamegljeno in naslovno podobo knjige.
- Dnevne vadbe-To je video, ki temelji na 7-dnevnem urniku vadb, ki ga telovadnica CRANK posreduje na svojem računu Instagram.
Če vam je ta Instructable všeč, razmislite o glasovanju zanj na natečaju avtorjev prvega predmeta. (in ja, to je moj prvi pouk, zato, če kaj ni jasno ali potrebuje več pojasnil, mi to sporočite v razdelku s komentarji in vam lahko pomagam:)
Zaloge
Ta projekt je izključno projekt, ki temelji na programski opremi, zato lahko vsakdo dokonča ta projekt s prenosnikom/namiznim računalnikom/macOS/Linuxom in internetom. Na koncu bom vključil tudi podroben razdelek, ki bo podrobneje razložil kodo/postopek za ljudi z nekaj programskimi izkušnjami. Upoštevajte, da to ni potrebno za dokončanje projekta
Stopnja težavnosti projekta:
Ni zelo enostavno, vendar ne zelo težko
Strojna oprema, ki jo bomo uporabljali:
- Prenosni računalnik/namizni računalnik z operacijskim sistemom Windows/macOS/Linux.
- Mobilni telefon z nameščenim WhatsApp Messengerjem
Programska oprema, ki jo bomo uporabljali:
- Programski jezik Python
- ngrok - je orodje, ki nam omogoča dostop do našega strežnika zunaj našega omrežja
- Urejevalnik po vaši izbiri: (na primer Notepad ++, Sublime Text, Vim itd.)
1. korak: Namestite potrebno programsko opremo
V tem koraku bomo naredili naslednje:
- Namestite Python> 3.6 in ga preizkusite
- Namestite potrebne knjižnice python
- Namestite ngrok
Če imate nameščeni obe aplikaciji, lahko ta korak preskočite
Namestite Python:
Celotna zaledna/strežniška kodna baza za ta projekt je zapisana v Pythonu 3.6. Zato moramo za zagon naših aplikacij v računalniku namestiti Python> 3.6. Sledite navodilom CoreySchaferja o tem, kako namestiti python za Windows in macOS
Lahko preverite, ali je vse pravilno nameščeno, tako da v cmd/terminal vnesete naslednje:
python -c 'print (f "Pozdravljeni svet")'
Če je bilo vse pravilno nameščeno, je treba Hello World natisniti na zaslonu. Če dobite neveljavno sintaktično napako, imate nameščeno napačno različico pythona. Namestite različico pythona> = 3.6
Namestite potrebne knjižnice python s pipom:
Za delovanje naše programske opreme bomo uporabljali naslednje knjižnice python:
- Flask - To je okvir za naš strežnik
- Twilio - Ta knjižnica omogoča, da python komunicira z WhatsApp
- Zahteva - Ta knjižnica se uporablja za zahtevanje podatkov iz API -jev
- BeautifulSoup4 - Ta knjižnica se uporablja za brisanje informacij s spletnih mest
- lxml - Ta knjižnica se uporablja v kombinaciji s storitvijo BeautifulSoup za pridobivanje ustreznih informacij s spletnega mesta
Če želite namestiti te knjižnice, lahko storite naslednje:
Odprite CMD/terminal in vnesite naslednji ukaz:
pip install flask, twilio, request, beautifulsoup4, lxml
ALI
Prenesite datoteko requirements.txt in odprite terminal v imeniku, kjer je datoteka, in vnesite:
pip install -r requirements.txt
Namestite ngrok
ngrok vam omogoča, da strežniku, ki deluje na vašem lokalnem računalniku, izpostavite internet. Ngroku samo povejte, na katerih vratih posluša vaš strežnik.
Sledite navodilom na spletnem mestu ngrok, da namestite ngrok za operacijski sistem, ki ga uporabljate.
Nasvet: 3. korak vodnika ni pomemben za ta projekt, zato ga je mogoče preskočiti
2. korak: Ustvarite račun Twilio
V tem koraku bomo naredili naslednje:
- Prijavite se za račun Twilio
- Kratek uvod v uporabne razdelke na konzoli Twilio
Prijavite se:
V tem projektu bomo uporabljali API Twilio Whatsapp za povezavo našega programa python s Whatsappom. Če želimo uporabljati Twilio API, moramo najprej ustvariti račun na uradnem spletnem mestu Twilio. Za poskusni račun Twilio ponuja brezplačno dobropis v višini 15 USD.
Hiter uvod:
Ko ustvarite račun, so najbolj zanimivi odseki konzole Twilio za ta projekt:
Nadzorna plošča - Na nadzorni plošči si lahko ogledate znesek kredita, ki vam je še ostal, lahko uredite ime projekta in spremenite programski jezik
Pododdelek Whatsapp v razdelku Programabilni SMS - V razdelku konzole Whatsapp lahko dobite dostop do kode za pridružitev bota, številke Whatsappa, ki ga bomo uporabili v projektu za pogovor z našim botom, in tudi do nastavitve spletnega kljuka. Več podrobnosti o vsem tem bo opisanih v naslednjih korakih
3. korak: Pridobite ključ API za podatke, filme in TV -oddaje COVID 19
Ključ API ali ključ vmesnika za programiranje aplikacij je koda, ki jo posredujejo računalniške aplikacije. Program ali aplikacija nato pokliče API ali vmesnik za programiranje aplikacij, da identificira svojega uporabnika, razvijalca ali klicni program na spletno mesto.
Uporabljamo API za pridobivanje informacij o najnovejših statusih COVID -19, filmih in TV -oddajah. Za dostop do API -ja potrebujete osebni ključ vsakega uporabnika. V tem koraku bomo dobili te ključe
Pridobite ključ API za podatke COVID 19:
- Prijavite se ali se prijavite za svoj račun RapidAPI.
- Po tem pojdite na Gramzivi API za COVID-19 API
- Pomaknite se navzdol do razdelka »Parametri glave« v konzoli API.
- Vaš ključ API mora biti viden v polju "X-RapidAPI-Key".
Pridobite ključ API za filme in TV -oddaje:
- Prijavite se ali se prijavite za svoj račun TMDB
- Po tem pojdite na nastavitev - API
- Pomaknite se navzdol do razdelka "Ključ API (v3 avtentikacija)"
- Vaš ključ API mora biti viden pod njim
Ustvarite datoteko "config.py"
Zdaj bomo ustvarili datoteko config.py za shranjevanje naših ključev API. Zanje ustvarimo ločeno datoteko, ker so ključi API zaupni podatki in če delite svoj projekt, ne smete deliti ključa API.
- Ustvarite nov imenik projekta
- V novo ustvarjenem imeniku ustvarite novo datoteko z imenom "config.py"
- Uredite to datoteko z urejevalnikom po vaši izbiri (Sublime, Notepad ++) in kopirajte ter nadomestite naslednje besedilo z ustreznimi informacijami, pridobljenimi v prejšnjem koraku:
session_key = "secret" #To ni varno.. ampak samo za test je v redu
rapid_api_key = "" api_key = ""
Shranite datoteko
4. korak: Povežite Python in Twilio prek Ngroka
V tem koraku bomo naredili naslednje:
- Prenesite izvorno kodo
- Izvedite program in posredujte lokalni IP na javni naslov prek ngroka, da lahko nanj vložimo zahtevo
- Konfigurirajte naš račun Twilio, da bo zahtevo posredoval našemu strežniku
Prenesite izvorno kodo za bot:
Prenesite vso priloženo datoteko v tej nastavitvi v imenik projekta, ustvarjen v zadnjem koraku.
Izvedite program:
Pojdite v imenik izvorne kode v CMD/terminalu in izvedite naslednji ukaz:
python server_main.py
Poskrbite, da imate "config.py", ki smo ga ustvarili v zadnjem koraku, sicer boste dobili napako
Izhod bi moral biti nekaj takega:
* Aplikacija za strežbo Flask "server_main" (leno nalaganje)
* Okolje: proizvodnja OPOZORILO: To je razvojni strežnik. Ne uporabljajte ga v proizvodni namestitvi. Namesto tega uporabite produkcijski strežnik WSGI. * Način odpravljanja napak: vklopljen * Deluje na https://127.0.0.1:5000/ (pritisnite CTRL+C za izhod) * Ponovni zagon s stat * Odpravljanje napak je aktivno! * PIN za odpravljanje napak: 740-257-236
To pomeni, da vaš strežnik pravilno deluje v vašem lokalnem omrežju na vratih 5000. Da bo ta strežnik dostopen zunaj vašega lokalnega omrežja, bomo uporabili ngrok
Posredujte lokalni IP na javni naslov prek ngroka
Pojdite v imenik, kjer ste prek CMD/terminala prenesli ngrok in izvedite naslednji ukaz:
ngrok http 5000
Izhod bi moral biti nekaj takega:
ngrok avtor @inconshreveable (Ctrl+C za prekinitev)
Stanje seje na spletu Seja poteče 7 ur, 59 minut Različica 2.3.35 Regija Združene države (ZDA) Spletni vmesnik https://127.0.0.1:4040 Posredovanje _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Posredovanje _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Povezave ttl opn rt1 rt5 p50 p90 0 0 0,00 0,00 0,00 0,00
Kopirajte povezavo HTTP iz dela "Forwading" (samo do ngrok.io). (V tem primeru sem dodal _, da se izognem navodilom, da ga prestrežejo kot povezavo)
Konfigurirajte Twilio za uporabo novega naslova za posredovanje zahtev strežnika:
Zdaj, ko smo naš strežnik uspešno posredovali za javni dostop, moramo konfigurirati Twilio tako, da ob zahtevi z uporabo Twilio Whatsapp API posredujemo zahtevo našemu strežniku. Za to moramo narediti naslednje:
- Pojdite na razdelek Whatsapp na konzoli Twilio
- Pomaknite se do pododdelka »Sanbox«
- V besedilno polje "WHEN A MESSAGE COMES" prilepite povezavo HTTP iz ngroka, kopirano z razširitvijo /sms (NE KOPIRAJTE _ na začetku in na koncu):
_https://d44c955749bf.ngrok.io/sms_
Zdaj je vse za chatbot nastavljeno. V naslednjem koraku lahko preverimo, ali vse deluje pravilno
5. korak: Preizkusite našo aplikacijo
V tem koraku bomo naredili naslednje:
- Pridružite se našemu botu s kodo za dostop
- Preizkusite našo aplikacijo
Pridružite se našemu botu s kodo za dostop
V tem projektu bomo za našega bota Whatsapp uporabili številko peskovnika WhatsApp Twilio. Za vsako osebo bo ta številka drugačna. Svojo številko lahko najdete tako:
- Prijavite se v svoj račun Twilio
- Pojdite na konzolo Twilio -> razdelek Whatsapp -> peskovnik
- Videli boste svojo številko peskovnika Twilio z naslednjim besedilom:
Povabite svoje prijatelje v peskovnik. Prosite jih, naj pošljejo sporočilo WhatsApp na:
Zaradi varnostne politike Whatsappa se morajo vsi, ki se želijo pogovarjati z avtomatiziranim botom prek Whatsappa, izrecno prijaviti s kodo. Kodo lahko poiščete tako, da v istem razdelku kot številka peskovnika Twilio najdete besedilo:
Ko pridobite svojo številko Twilio Sandbox Whatsapp in kodo za prijavo, za začetek uporabe bota pojdite na svoj mobilni telefon in naredite naslednje:
- Shranite »Twilio Sandbox Whatsapp Number« na svoj stik z vašim imenom (npr. CovBot)
- Odprite Whatsapp in temu stiku pošljite naslednje sporočilo:
pridružite se
Videti bi morali takšno sporočilo:
Twilio Sandbox: Vse je pripravljeno….
To pomeni, da ste povezani s svojim botom in ste pripravljeni vprašati qs
Preizkusite našo aplikacijo:
Če želite preizkusiti različne funkcije svojega bota, potem ko ste povezani, pošljite botu naslednje sporočilo:
Živjo
Videti bi morali naslednje besedilo:
Dobrodošli v CoVbotu!
Preprost klepet, ki lahko na preprost, hiter in enostaven način posreduje najnovejše posodobitve COVID-19. Ker smo vsi v karanteni, lahko bot uporabite za predlagane zabavne dejavnosti, s katerimi bi kar najbolje izkoristili svoj čas doma, ko se trudimo, da smo sami, prijatelji in družina na varnem. Upamo, da vam bo všeč in da bo koristno! Za začetek pošljite 4!
Zdaj lahko sledite možnosti, da preizkusite različne funkcije bota.
TO JE TO! Vaš Whatsapp Chatbot je pripravljen !!!! Čestitam
6. korak: Kako deluje in prihodnje izboljšanje:
Ta razdelek je za ljudi, ki imajo nekaj izkušenj s programiranjem pythona. Če tega ne storite, lahko ta razdelek preskočite
Koda Pojasnilo
Glavna zanka:
Ko je sporočilo Whatsapp poslano na vašo številko Twilio, API Twilio pošlje zahtevo POST na vaš strežnik, ki ste jo določili. Strežnik je implementiran z ogrodjem Flask, zato lahko uporabimo objekt Flask Request za pridobivanje podatkov, prejetih med zahtevo POST. Na podlagi podatkov (v tem primeru številke) se odločimo, katero možnost je uporabnik izbral, in podamo ustrezne podatke
Podatki o COVID -u ter filmi in TV -oddaje:
Podatki o virusu COVID 19, filmih in TV -oddajah se pridobivajo iz API -ja. Knjižnico zahtev python uporabljam za pridobivanje podatkov in jih nato pretvorim v obliko JSON. Nato le analiziram ustrezne podatke. Za filme in TV -oddajo sem uporabil tudi knjižnico naključnih pythonov, da sem izbral naključno TV -oddajo in film
Podrobnosti o knjigi
Algoritem predloga knjige, uporabljen v projektu, je le spletni strgalo. Nisem mogel najti nobenega API -ja, ki bi vam dal naključno knjigo s podrobnostmi, zato sem preprosto pobrisal spletno mesto s storitvijo BeautifulSoup4 in z razčlenjevalnikom lxml izvlekel ustrezne podatke knjige
Podrobnosti podmenija:
Izvajanje podmenijev je bilo nekoliko bolj zapleteno od ostalih, saj so sporočila Whatsapp podobna SMS-om, ki so protokol brez državnosti. Za rešitev tega sem uporabil dve tehniki:
- Uporaba globalnih spremenljivk za zapomnitev stanja sporočila - to se izvaja samo za podmožnost COVID 19. V tem primeru, ko uporabnik izbere "Stanje bolezni COVID 19 v moji državi", je globalna spremenljivka z imenom incomplete_message nastavljena na True, da označi, da je še vedno potrebno drugo sporočilo na podlagi prejšnje možnosti. Nato je na začetku preverjanje, ki preveri, ali je sporočilo označeno kot nepopolno, če tako predvideva, da je sporočilo ime države za podatke o bolezni COVID, podatke posreduje pravilni funkciji in globalno spremenljivko nepopolno sporočilo nastavi na False
- Uporaba piškotkov Twilio in sej s steklenicami - piškotki in seje s steklenicami se uporabljajo v podmeniju "Predlagaj karantensko dejavnost" za izvajanje državnosti, tako kot jih danes uporablja katera koli spletna aplikacija na internetu, namesto da bi si zapomnili stvari, kot je vaše uporabniško ime ali si zapomnite pretvorbo med dvema številkama. Če želite več informacij o tem delu, priporočam, da preberete ta odličen vodnik o piškotkih Twilio, ki ga je napisala ekipa Twilio
Prihodnje izboljšave:
- Uporabite Object Orientedness Python in Design Patterns za izboljšanje arhitekture kode in DRYness
- Odstranite globalne spremenljivke
- Odpravljanje napak je mogoče izboljšati
- Samodejno posodobi naslov ngrok z uporabo koruze in Twilio CLI
- Dokumentacija kode
7. korak: Končne opombe
Upam, da vam je vsem všeč ta projekt. To je moj prvi pouk, zato, če vam kaj ni jasno ali potrebujete več pojasnil, mi to sporočite v razdelku s komentarji in vam lahko pomagam. Tudi če ste ta projekt naredili z drugo tehniko ali seznamom funkcij, ga delite vsi
Priporočena:
Kako prilagoditi servo za povratne informacije o zaprti zanki: 7 korakov
Kako prilagoditi servo za povratne informacije o zaprti zanki: ► Med vožnjo servomotorja z mikrokrmilnikom (kot Arduino) mu lahko dajete samo naročila ciljne lokacije (v signalu PPM). S tem naročilom se bo servo premaknil na ta cilj lokacijo. Ampak to ni takoj! Ne veste natančno, kdaj je
Gojenje več solate v manj prostora ali gojenje solate v vesolju, (več ali manj) .: 10 korakov
Gojenje več solate na manj prostora ali … Gojenje solate v vesolju, (več ali manj) .: To je profesionalna oddaja natečaja Growing Beyond Earth, Maker, poslanega prek Instructables. Ne bi mogel biti bolj navdušen nad oblikovanjem za pridelavo vesoljskih pridelkov in objavo prvega Instructable -a. Za začetek nas je natečaj prosil, da
Uporaba več kot 4 motorjev - zlaganje več motornih ščitov: 3 koraki
Uporaba več kot 4 motorjev - zlaganje več motornih ščitov: Naprava za vibrotaktilno senzorično zamenjavo in povečanje (https: //www.instructables.com/id/Vibrotactile-Sens …) prikazuje način, kako zgraditi napravo, ki prevaja senzorično vnos v vibracijske dražljaje. Ti vibracijski dražljaji so p
Brezkontaktni infrardeči termometer na osnovi Arduino - IR termometer na osnovi Arduina: 4 koraki
Brezkontaktni infrardeči termometer na osnovi Arduino | IR -termometer z uporabo Arduina: Pozdravljeni fantje, v tem navodilu bomo naredili brezkontaktni termometer z arduinom. Ker je včasih temperatura tekočine/trdne snovi previsoka ali prenizka, potem pa je težko priti v stik z njo in prebrati temperatura v tem prizorju
RPIEasy - več senzorska naprava na osnovi RPI: 6 korakov
RPIEasy - Naprava z več senzorji, ki temelji na RPI: Če kdo načrtuje izdelavo senzorjev DIY, potem poleg priljubljenega ESP8266 poceni in nizko porabo " Raspberry Pi Zero W " modell je tudi precejšnja možnost. RPI Zero W stane približno 10 USD, njegova poraba energije pa je