Kazalo:

CovBot - chatbot na osnovi WhatsApp za COVID 19 Informacije in več: 7 korakov
CovBot - chatbot na osnovi WhatsApp za COVID 19 Informacije in več: 7 korakov

Video: CovBot - chatbot na osnovi WhatsApp za COVID 19 Informacije in več: 7 korakov

Video: CovBot - chatbot na osnovi WhatsApp za COVID 19 Informacije in več: 7 korakov
Video: CoVbot - A Simple WhatsApp Chatbot For Latest COVID 19 Status Demo 2024, November
Anonim
Image
Image
Ustvarite račun Twilio
Ustvarite račun Twilio

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:

  1. 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.
  2. 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.
  3. Predlagaj knjigo - Knjiga za branje s top 10 seznamov knjig z zamegljeno in naslovno podobo knjige.
  4. 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:

  1. Programski jezik Python
  2. ngrok - je orodje, ki nam omogoča dostop do našega strežnika zunaj našega omrežja
  3. Urejevalnik po vaši izbiri: (na primer Notepad ++, Sublime Text, Vim itd.)

1. korak: Namestite potrebno programsko opremo

Image
Image

V tem koraku bomo naredili naslednje:

  1. Namestite Python> 3.6 in ga preizkusite
  2. Namestite potrebne knjižnice python
  3. 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:

  1. Flask - To je okvir za naš strežnik
  2. Twilio - Ta knjižnica omogoča, da python komunicira z WhatsApp
  3. Zahteva - Ta knjižnica se uporablja za zahtevanje podatkov iz API -jev
  4. BeautifulSoup4 - Ta knjižnica se uporablja za brisanje informacij s spletnih mest
  5. 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:

  1. Prijavite se za račun Twilio
  2. 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

Pridobite ključ API za podatke, filme in TV -oddaje COVID 19
Pridobite ključ API za podatke, filme in TV -oddaje COVID 19
Pridobite ključ API za podatke, filme in TV -oddaje COVID 19
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:

  1. Prenesite izvorno kodo
  2. Izvedite program in posredujte lokalni IP na javni naslov prek ngroka, da lahko nanj vložimo zahtevo
  3. 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:

  1. Pojdite na razdelek Whatsapp na konzoli Twilio
  2. Pomaknite se do pododdelka »Sanbox«
  3. 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

Preizkusite našo aplikacijo
Preizkusite našo aplikacijo
Preizkusite našo aplikacijo
Preizkusite našo aplikacijo
Preizkusite našo aplikacijo
Preizkusite našo aplikacijo

V tem koraku bomo naredili naslednje:

  1. Pridružite se našemu botu s kodo za dostop
  2. 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:

  1. Shranite »Twilio Sandbox Whatsapp Number« na svoj stik z vašim imenom (npr. CovBot)
  2. 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:

Kako deluje in prihodnje izboljšanje
Kako deluje in prihodnje izboljšanje
Kako deluje in prihodnje izboljšanje
Kako deluje in prihodnje izboljšanje
Kako deluje in prihodnje izboljšanje
Kako deluje in prihodnje izboljšanje
Kako deluje in prihodnje izboljšanje
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:

  1. 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
  2. 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:

  1. Uporabite Object Orientedness Python in Design Patterns za izboljšanje arhitekture kode in DRYness
  2. Odstranite globalne spremenljivke
  3. Odpravljanje napak je mogoče izboljšati
  4. Samodejno posodobi naslov ngrok z uporabo koruze in Twilio CLI
  5. 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: