Përmbajtje:

CovBot - një Chatbot me bazë WhatsApp për Info COVID 19 dhe më shumë: 7 hapa
CovBot - një Chatbot me bazë WhatsApp për Info COVID 19 dhe më shumë: 7 hapa

Video: CovBot - një Chatbot me bazë WhatsApp për Info COVID 19 dhe më shumë: 7 hapa

Video: CovBot - një Chatbot me bazë WhatsApp për Info COVID 19 dhe më shumë: 7 hapa
Video: Google for South Africa 2022 2024, Nëntor
Anonim
Image
Image
Krijoni një llogari Twilio
Krijoni një llogari Twilio

CoVbot është një chatbot i thjeshtë dhe intuitiv i bazuar në Whatsapp. Karakteristika kryesore e botit është:

Mund t'ju japë statusin më të fundit të COVID-19 në vendin e zgjedhur në një mënyrë të thjeshtë dhe intuitive.

Për më tepër, boti mund të sugjerojë aktivitete argëtuese për të bërë në shtëpi, siç janë:

  1. Sugjeroni një film - Një film për tu parë nga lista e 10 filmave më të mirë, me një pasqyrë të shkurtër të komplotit dhe kohëzgjatjes. Meqenëse kjo listë nuk është e koduar në softuer, kjo gjithmonë do t'ju japë përditësimet më të fundit bazuar në tendencat aktuale.
  2. Sugjeroni një shfaqje televizive - Një shfaqje televizive për t'u parë nga shfaqjet televizive më të njohura, me një pasqyrë të shkurtër të komplotit dhe vlerësimeve. Meqenëse kjo listë nuk është e koduar në softuer, kjo gjithmonë do t'ju japë përditësimet më të fundit bazuar në tendencat aktuale.
  3. Sugjeroni një libër - Një libër për t'u lexuar nga 10 Listat e Librave më të Mirë, me imazhin e qartë dhe kopertinën e librit.
  4. Stërvitjet e përditshme-Kjo është një video e bazuar në një orar stërvitje 7-ditor të siguruar nga palestra CRANK në llogarinë e tyre në Instagram.

Nëse ju pëlqen kjo Udhëzues, ju lutemi konsideroni të votoni për të në Konkursin e Autorit të Artikullit të Parë. (dhe po ky është udhëzimi im i parë kështu që nëse diçka nuk është e qartë ose ka nevojë për më shumë shpjegime ju lutem më tregoni në pjesën e komenteve dhe unë mund t'ju ndihmoj:)

Furnizimet

Ky projekt është vetëm projekt i bazuar në softuer, kështu që kushdo që e ndjek këtë udhëzues me një kompjuter portativ/desktop/macOS/Linux dhe internet mund ta përfundojë këtë projekt. Unë gjithashtu do të përfshijë një seksion të detajuar si në fund për të shpjeguar kodin/procesin në mënyrë më të detajuar për njerëzit me një përvojë programimi, Ju lutemi vini re se kjo nuk është e nevojshme për të përfunduar projektin

Niveli i Vështirësisë së Projektit:

Jo shumë e lehtë, por jo shumë e vështirë

Pajisjet kompjuterike që do të përdorim:

  • Një laptop/desktop me Windows/macOS/Linux.
  • Një telefon celular me WhatsApp Messenger të instaluar

Softueri që ne do të përdorim:

  1. Gjuha e Programimit Python
  2. ngrok - është një mjet i përdorur për të na lejuar të hyjmë në serverin tonë nga jashtë rrjetit tonë
  3. Redaktori i zgjedhjes suaj: (p.sh. Notepad ++, Text Sublime, Vim etj)

Hapi 1: Instaloni Softuerin e kërkuar

Image
Image

Në këtë hap ne do të bëjmë sa më poshtë:

  1. Instaloni Python> 3.6 dhe provojeni atë
  2. Instaloni bibliotekat e kërkuara python
  3. Instaloni ngrok

Nëse i keni të dy aplikacionet e instaluar, mund ta kaloni këtë hap

Instaloni Python:

E gjithë baza e kodit të sfondit/serverit për këtë projekt është shkruar në Python 3.6. Prandaj për të ekzekutuar aplikacionet tona ne duhet të kemi Python> 3.6 të instaluar në kompjuterin tonë. Ndiqni mësimin nga CoreySchafer se si të instaloni python për Windows dhe macOS

Ju mund të provoni që gjithçka është instaluar saktë duke shtypur sa vijon në cmd/Terminal:

python -c 'print (f "Përshëndetje Botë")'

Nëse gjithçka është instaluar si duhet, atëherë Hello World duhet të printohet në ekran. Nëse merrni një gabim sintaksor të pavlefshëm, atëherë keni të instaluar versionin e gabuar të python. Instaloni një version të python> = 3.6

Instaloni bibliotekat e kërkuara python duke përdorur pip:

Ne do të përdorim bibliotekat e mëposhtme python për ta bërë softuerin tonë të funksionojë:

  1. Flask - Ky është kuadri për serverin tonë
  2. Twilio - Kjo bibliotekë siguron një mënyrë që python të komunikojë me WhatsApp
  3. Kërkesë - Kjo bibliotekë përdoret për të kërkuar të dhëna nga API -të
  4. BeautifulSoup4 - Kjo bibliotekë përdoret për të hequr informacionin nga faqet e internetit
  5. lxml - Kjo bibliotekë përdoret në kombinim me BeautifulSoup për të nxjerrë informacionin përkatës nga një faqe në internet

Për të instaluar këto biblioteka, mund të bëni sa më poshtë:

Hapni CMD/Terminal dhe shkruani komandën e mëposhtme:

pip instaloni balonë, twilio, kërkesë, beautifulsoup4, lxml

OSE

Shkarkoni skedarin kërkesat.txt dhe hapni një terminal në drejtorinë ku ndodhet skedari dhe shkruani:

pip instalo -r kërkesat.txt

Instaloni ngrok

ngrok ju lejon të ekspozoni një server që funksionon në kompjuterin tuaj lokal në internet. Thuaji ngrokut në cilën port po dëgjon serveri juaj.

Ndiq udhëzuesin në uebfaqen e ngrok për të instaluar ngrok për sistemin operativ që po përdorni.

Këshillë: Hapi 3 i udhëzuesit nuk është i rëndësishëm për këtë projekt, kështu që mund të anashkalohet

Hapi 2: Krijoni një llogari Twilio

Në këtë hap ne do të bëjmë sa më poshtë:

  1. Regjistrohuni për një llogari Twilio
  2. Hyrje e shpejtë në seksione të dobishme në tastierën Twilio

Regjistrohu:

Në këtë projekt, ne do të përdorim API -në Twilio Whatsapp për të lidhur programin tonë python me Whatsapp. Për të qenë në gjendje të përdorim Twilio API, së pari duhet të krijojmë një llogari në faqen zyrtare të Twilio. Për një llogari prove, Twilio ofron 15 dollarë kredi falas për ne që t'i përdorim.

Hyrje e shpejtë:

Pasi të keni krijuar një llogari, Seksionet më interesante të tastierës Twilio për këtë projekt janë:

Paneli i kontrollit - Nga pulti, mund të shihni sasinë e kredisë që ju ka mbetur akoma, mund të redaktoni emrin e projektit tuaj dhe të ndryshoni gjuhën e programimit

Nënseksioni Whatsapp në seksionin SMS të Programueshëm - Nga pjesa Whatsapp e tastierës, ju mund të merrni qasje në kodin e bashkimit për botin, numrin e Whatsapp që do të përdorim në projekt për të folur me botin tonë dhe gjithashtu vendosjen e webhook Me Më shumë detaje rreth të gjitha këtyre do të përshkruhen në hapat e ardhshëm

Hapi 3: Merrni çelësin API për të dhënat, filmat dhe shfaqjet televizive COVID 19

Merrni çelësin API për të dhënat, filmat dhe shfaqjet televizive COVID 19
Merrni çelësin API për të dhënat, filmat dhe shfaqjet televizive COVID 19
Merrni çelësin API për të dhënat, filmat dhe shfaqjet televizive COVID 19
Merrni çelësin API për të dhënat, filmat dhe shfaqjet televizive COVID 19

Një çelës API ose çelësi i ndërfaqes së programimit të aplikacionit është një kod që kalohet nga aplikacionet kompjuterike. Programi ose aplikacioni më pas thërret API ose ndërfaqen e programimit të aplikacionit për të identifikuar përdoruesin, zhvilluesin ose programin që thërret në një faqe në internet.

Ne përdorim një API për të marrë informacion për statusin, filmat dhe shfaqjet më të fundit të COVID 19. Për të hyrë në API keni nevojë për një çelës që është personal për secilin përdorues. Në këtë hap, ne do të marrim këto çelësa

Merrni çelësin API për të dhënat e COVID 19:

  • Hyni ose regjistrohuni në llogarinë tuaj RapidAPI.
  • Pas kësaj shkoni te API COVID-19 nga Gramzivi
  • Shkoni poshtë në seksionin "Parametrat e kokës" të tastierës API.
  • Çelësi juaj API duhet të jetë i dukshëm në fushën "Çelësi X-RapidAPI".

Merrni çelësin API për të dhënat e filmave dhe shfaqjeve televizive:

  • Hyni ose regjistrohuni në llogarinë tuaj TMDB
  • Pas kësaj shkoni te cilësimi juaj - API
  • Shkoni poshtë në seksionin "Çelësi API (autorizimi v3)"
  • Çelësi juaj API duhet të jetë i dukshëm poshtë tij

Krijo skedarin "config.py"

Tani do të krijojmë një skedar config.py për të ruajtur çelësat tanë API. Ne krijojmë një skedar të veçantë për këto, sepse çelësat API janë informacion konfidencial dhe nëse ndani projektin tuaj nuk duhet të ndani çelësin tuaj API.

  • Krijoni një drejtori të re të projektit
  • Brenda drejtorisë së krijuar rishtazi krijoni një skedar të ri të quajtur "config.py"
  • Ndryshoni këtë skedar me një redaktues të zgjedhur nga ju (Sublime, Notepad ++) dhe kopjoni dhe zëvendësoni tekstin e mëposhtëm me informacionin përkatës të marrë në hapin e mëparshëm:

session_key = "sekret" #Kjo nuk është e sigurt.. por vetëm për provë është në rregull

Rapid_api_key = "" api_key = ""

Ruani skedarin

Hapi 4: Lidhni Python dhe Twilio Via Ngrok

Në këtë hap ne do të bëjmë sa më poshtë:

  1. Shkarkoni kodin burimor
  2. Ekzekutoni programin dhe përcillni IP lokale në një adresë publike përmes ngrok, në mënyrë që t'i bëjmë një kërkesë atij
  3. Konfiguroni llogarinë tonë Twilio për të përcjellë kërkesën në serverin tonë

Shkarkoni kodin burimor për botin:

Shkarkoni të gjithë skedarin e bashkangjitur në këtë konfigurim në drejtorinë e projektit të krijuar në hapin e fundit.

Ekzekutoni programin:

Shkoni te drejtoria e kodit burimor në CMD/terminal dhe ekzekutoni komandën e mëposhtme:

python server_main.py

Sigurohuni që të keni "config.py" që kemi krijuar në hapin e fundit, përndryshe do të merrni një gabim

Dalja duhet të jetë diçka si kjo:

* Shërbimi i aplikacionit Flask "server_main" (ngarkim dembel)

* Mjedisi: prodhimi KUJDES: Ky është një server zhvillimi. Mos e përdorni në vendosjen e prodhimit. Përdorni një server prodhimi WSGI në vend. * Mënyra e korrigjimit: aktiv * Aktivizon në https://127.0.0.1:5000/ (Shtypni CTRL+C për ta lënë) * Rinisja me stat * Debugger është aktiv! * PIN i korrigjuesit: 740-257-236

Kjo do të thotë që serveri juaj po funksionon saktë në rrjetin tuaj lokal në portin 5000. Për ta bërë këtë server të arritshëm nga jashtë rrjetit tuaj lokal, ne do të përdorim ngrohjen

Përcjellni IP lokale në një adresë publike përmes ngrok

Shkoni te drejtoria ku keni shkarkuar ngrok përmes CMD/terminalit dhe ekzekutoni komandën e mëposhtme:

ngrok http 5000

Dalja duhet të jetë diçka si kjo:

ngrok nga @inconshreveable (Ctrl+C për të lënë)

Sesioni i Sesionit në internet Sesioni Skadon 7 orë, 59 minuta Versioni 2.3.35 Rajoni Shtetet e Bashkuara (ne) Ndërfaqja në internet https://127.0.0.1:4040 Përcjellja _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Përcjellja _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Lidhjet ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00 0.00

Kopjoni lidhjen HTTP nga pjesa "Forwading" (vetëm deri në ngroh.io). (Unë kam shtuar _ në këtë shembull për të shmangur udhëzimet për ta përgjuar atë si një lidhje)

Konfiguroni Twilio për të përdorur adresën e re për të përcjellë kërkesën e serverit te:

Tani që kemi përcjellë me sukses serverin tonë për t'u qasur publikisht, duhet të konfigurojmë Twilio në mënyrë që kur të bëhet një kërkesë duke përdorur Twilio Whatsapp API, ne ta përcjellim kërkesën në serverin tonë. Për ta bërë këtë ne duhet të bëjmë sa më poshtë:

  1. Shkoni te seksioni Whatsapp në tastierën Twilio
  2. Shkoni te nënseksioni "Sanbox"
  3. Në kutinë e tekstit "KUR VJET NJ MESAZH" ngjitni lidhjen HTTP nga ngrok të kopjuar me shtesën /sms (MOS KOPJO _ në fillim dhe në fund):

_https://d44c955749bf.ngrok.io/sms_

Tani gjithçka për chatbot është ngritur. Në hapin tjetër, ne mund të testojmë nëse gjithçka po funksionon si duhet

Hapi 5: Testoni Aplikacionin Tonë

Testoni Aplikacionin Tonë
Testoni Aplikacionin Tonë
Testoni Aplikacionin Tonë
Testoni Aplikacionin Tonë
Testoni Aplikacionin Tonë
Testoni Aplikacionin Tonë

Në këtë hap ne do të bëjmë sa më poshtë:

  1. Bashkohuni me botin tonë duke përdorur kodin e hyrjes
  2. Provoni aplikacionin tonë

Bashkohuni me botin tonë duke përdorur kodin e hyrjes

Në këtë projekt, ne do të përdorim numrin e Twilio's Whatsapp Sandbox për botin tonë Whatsapp. Për secilin person, ky numër do të jetë i ndryshëm. Mund ta gjeni numrin tuaj si ky:

  • Hyni në llogarinë tuaj Twilio
  • Shkoni te Twilio Console -> Seksioni Whatsapp -> Sandbox
  • Do të shihni numrin tuaj Twilio Sandbox me tekstin e mëposhtëm:

Ftoni miqtë tuaj në Sandbox -in tuaj. Kërkojuni atyre të dërgojnë një mesazh në WhatsApp në:

Për shkak të një politike sigurie të Whatsapp, të gjithë ata që duan të flasin me një bot të automatizuar përmes Whatsapp duhet të zgjedhin në mënyrë eksplicite duke përdorur një kod. Ju mund ta zbuloni kodin tuaj duke shikuar në të njëjtin seksion me numrin tuaj të sandbox Twilio me tekstin:

Pasi të keni fituar numrin tuaj Twilio Sandbox Whatsapp dhe kodin e zgjedhjes, për të filluar përdorimin e botit shkoni te telefoni juaj celular dhe bëni sa më poshtë:

  1. Ruani "Twilio Sandbox Whatsapp Number" në kontaktin tuaj me zgjedhjen e emrit tuaj (P.sh. CovBot)
  2. Hapni Whatsapp dhe dërgoni mesazhin e mëposhtëm në atë kontakt:

bashkohet

Ju duhet të shihni një mesazh si ky:

Twilio Sandbox: Të gjithë jeni gati….

Kjo do të thotë që ju jeni lidhur me botin tuaj dhe jeni gati ta pyesni qs

Provoni aplikacionin tonë:

Për të testuar veçoritë e ndryshme të botit tuaj pasi të jeni lidhur, dërgoni mesazhin e mëposhtëm në bot:

Pershendetje

Ju duhet të shihni tekstin e mëposhtëm:

Mirësevini në CoVbot!

Një chatbot i thjeshtë që mund të japë përditësimet më të fundit të COVID-19 në një mënyrë të thjeshtë, të shpejtë dhe të lehtë. Meqenëse të gjithë jemi në karantinë, bot mund të përdoret për të sugjeruar disa aktivitete argëtuese për të shfrytëzuar sa më shumë kohën në shtëpi, ndërsa përpiqemi të mbajmë veten, miqtë dhe familjen të sigurt. Shpresojmë që ta shijoni dhe ta gjeni të dobishëm! Dërgo 4 për të filluar!

Tani mund të ndiqni opsionin për të provuar veçoritë e ndryshme të botit.

KJO ESHTE! Whatsapp Chatbot juaj është gati !!!! Urime

Hapi 6: Si funksionon dhe përmirësim i ardhshëm:

Si funksionon dhe përmirësim në të ardhmen
Si funksionon dhe përmirësim në të ardhmen
Si funksionon dhe përmirësim në të ardhmen
Si funksionon dhe përmirësim në të ardhmen
Si funksionon dhe përmirësim në të ardhmen
Si funksionon dhe përmirësim në të ardhmen
Si funksionon dhe përmirësim në të ardhmen
Si funksionon dhe përmirësim në të ardhmen

Ky seksion është për njerëzit që kanë përvojë në programimin e python. Nëse nuk e bëni, mund ta kaloni këtë seksion

Shpjegimi i Kodit

Rrethi kryesor:

Kur një mesazh Whatsapp dërgohet në numrin tuaj të Twilio, API Twilio i bën një kërkesë POST serverit tuaj që keni specifikuar. Serveri është zbatuar duke përdorur kuadrin Flask dhe kështu ne mund të përdorim objektin Flask Request për të tërhequr të dhënat e marra gjatë kërkesës POST. Bazuar në të dhënat (Numrat në këtë rast) ne vendosim se cilin opsion ka zgjedhur përdoruesi dhe japim informacionin e duhur

Të dhënat dhe filmat dhe shfaqjet televizive COVID:

Të dhënat për COVID 19, Filma dhe Shfaqje TV janë marrë nga një API. Unë përdor bibliotekën python të kërkesës për të marrë të dhënat dhe pastaj i konvertoj ato në një format JSON. Atëherë unë thjesht analizoj informacionin përkatës. Për Filmat dhe Shfaqjen Televizive, unë gjithashtu përdorja bibliotekën e pythonit të rastit për të zgjedhur një shfaqje televizive të rastësishme dhe Film

Detajet e Librit

Algoritmi i sugjerimit të librit i përdorur në projekt është vetëm një kruajtës uebi. Unë nuk mund të gjej asnjë API që ju jep një libër të rastësishëm me detaje, kështu që thjesht fshij një faqe në internet duke përdorur BeautifulSoup4 dhe duke përdorur analizuesin lxml nxjerr informacionin përkatës të librit

Detajet e nën menusë:

Zbatimi i nën-menyve ishte pak më i ndërlikuar se pjesa tjetër pasi mesazhet Whatsapp janë si SMS, i cili është një protokoll pa shtetësi. Për të zgjidhur këtë, unë kam përdorur dy teknika:

  1. Përdorimi i Variablave Global për të kujtuar gjendjen e mesazhit - Kjo zbatohet vetëm për Nën -opsionin COVID 19. Në këtë kur një përdorues zgjedh "Statusi i COVID 19 në opsionin e vendit tim", një ndryshore globale me emrin jo të plotë_message vendoset në True për të treguar atëherë një mesazh tjetër i bazuar në opsionin e mëparshëm është ende i nevojshëm. Pastaj ka një kontroll në fillim që kontrollon nëse një mesazh është shënuar i paplotë nëse kështu supozon se mesazhi është emri i vendit për të dhënat e COVID dhe i kalon informacionet në funksionin e duhur dhe vendos mesazhin e paplotë të ndryshores globale në False
  2. Përdorimi i Cookies Twilio dhe Sesionet Flask - Cookies dhe Flask Sessions përdoren në nënmenynë "Sugjeroni një aktivitet karantine" për të zbatuar gjendjen, ashtu si çdo aplikacion uebi në internet e përdor atë këto ditë, por në vend që të mbani mend gjëra të tilla si emri juaj i përdoruesit ose llogari mbani mend konvertimin midis Dy numrave. Nëse ju pëlqejnë më shumë informacione për këtë pjesë, ju rekomandova të lexoni këtë udhëzues të mrekullueshëm mbi Cookies Twilio të shkruar nga Ekipi Twilio

Përmirësimet e ardhshme:

  1. Përdorni Objektivitetin e Objektit të Python dhe Modelet e Dizajnit për të përmirësuar arkitekturën e kodit dhe DRYS
  2. Hiq ndryshoret globale
  3. Trajtimi i gabimeve mund të përmirësohet
  4. Përditësoni automatikisht adresën e ngrok duke përdorur misër dhe Twilio CLI
  5. Dokumentacioni i Kodit

Hapi 7: Shënimet përfundimtare

Shpresoj se të gjithëve ju pëlqen ky projekt. Ky është udhëzimi im i parë, kështu që nëse diçka nuk është e qartë ose ka nevojë për më shumë shpjegime, më tregoni në pjesën e komenteve dhe unë mund t'ju ndihmoj. Gjithashtu nëse e keni bërë këtë projekt me një teknikë të ndryshme ose një listë të veçorive, ndajini të gjithë

Recommended: