Talaan ng mga Nilalaman:

CovBot - isang Chatbot na Batay sa WhatsApp para sa COVID 19 Impormasyon at Higit Pa: 7 Mga Hakbang
CovBot - isang Chatbot na Batay sa WhatsApp para sa COVID 19 Impormasyon at Higit Pa: 7 Mga Hakbang

Video: CovBot - isang Chatbot na Batay sa WhatsApp para sa COVID 19 Impormasyon at Higit Pa: 7 Mga Hakbang

Video: CovBot - isang Chatbot na Batay sa WhatsApp para sa COVID 19 Impormasyon at Higit Pa: 7 Mga Hakbang
Video: Creators eye adding more features to 'Yani' chatbot meant to aid in COVID-19 response 2024, Hulyo
Anonim
Image
Image
Lumikha ng isang Twilio Account
Lumikha ng isang Twilio Account

Ang CoVbot ay isang simple at madaling maunawaan na chatbot na batay sa Whatsapp. Ang pangunahing tampok ng bot ay:

Maaari kang magbigay sa iyo ng pinakabagong katayuan ng COVID-19 sa bansa na pinili sa isang simple at madaling maunawaan na paraan.

Bilang karagdagan, ang bot ay maaaring magmungkahi ng mga nakakatuwang na aktibidad na dapat gawin SA Bahay tulad ng:

  1. Magmungkahi ng Pelikula - Isang pelikula na mapapanood mula sa Nangungunang 10 listahan ng mga pelikula, na may isang maikling pangkalahatang ideya ng balangkas at tagal. Dahil ang listahang ito ay hindi hardcoded sa software na ito ay palaging bibigyan ka ng pinakabagong mga pag-update batay sa kasalukuyang mga uso.
  2. Magmungkahi ng isang Palabas sa TV - Isang palabas sa tv upang panoorin mula sa pinakatanyag na mga palabas sa TV, na may isang maikling pangkalahatang ideya ng balangkas at mga rating. Dahil ang listahang ito ay hindi hardcoded sa software na ito ay palaging bibigyan ka ng pinakabagong mga pag-update batay sa kasalukuyang mga uso.
  3. Magmungkahi ng isang Libro - Isang aklat na babasahin mula sa Nangungunang 10 Listahan ng Mga Libro, na may blurb at takip na imahe ng libro.
  4. Pang-araw-araw na pag-eehersisyo - Ito ay batay sa video sa isang 7-araw na iskedyul ng pag-eehersisyo na ibinigay ng CRANK gym sa kanilang Instagram Account.

Kung nasisiyahan ka sa Makatuturo na ito, mangyaring isaalang-alang ang pagboto para dito sa First Item Author Contest. (at oo ito ang aking kauna-unahang itinuturo kaya kung ang isang bagay ay hindi malinaw o nangangailangan ng higit na paliwanag mangyaring ipaalam sa akin sa seksyon ng komento at maaari kitang tulungan:)

Mga gamit

Ang proyektong ito ay tanging proyekto na nakabatay sa software, kaya't ang sinumang sumusunod sa itinuturo nito sa isang laptop / desktop PC / macOS / Linux at internet ay maaaring makumpleto ang proyektong ito. Isasama ko rin ang isang detalyadong seksyon tulad ng sa wakas upang ipaliwanag ang code / proseso nang mas detalyado para sa mga taong may ilang karanasan sa programa, Mangyaring tandaan na hindi ito kinakailangan upang makumpleto ang proyekto

Antas ng Pinagkakahirapan sa Project:

Hindi masyadong madali, ngunit hindi masyadong mahirap

Ang Hardware na gagamitin namin:

  • Isang laptop / desktop na nagpapatakbo ng Windows / macOS / Linux.
  • Isang mobile-phone na may naka-install na WhatsApp Messenger

Ang software na gagamitin namin:

  1. Wika sa Programming ng Python
  2. ngrok - ay isang tool na ginagamit upang payagan kaming ma-access ang aming server mula sa labas ng aming network
  3. Editor na iyong pinili: (hal. Notepad ++, Sublime Text, Vim atbp)

Hakbang 1: I-install ang Kinakailangan na Software

Image
Image

Sa hakbang na ito ay gagawin namin ang mga sumusunod:

  1. I-install ang Python> 3.6 at subukan ito
  2. I-install ang mga kinakailangang aklatan ng sawa
  3. I-install ang ngrok

Kung mayroon kang parehong naka-install na application maaari mong laktawan ang hakbang na ito

I-install ang Python:

Ang buong backend / server codebase para sa proyektong ito ay nakasulat sa Python 3.6. Samakatuwid upang patakbuhin ang aming mga application kailangan naming magkaroon ng naka-install na Python> 3.6 sa aming computer. Sundin ang tutorial ni CoreySchafer kung paano mag-install ng sawa para sa Windows at macOS

Maaari mong subukan ang lahat ay naka-install nang tama sa pamamagitan ng pag-type ng sumusunod sa cmd / Terminal:

python -c 'print (f "Hello World")'

Kung ang lahat ay na-install nang tama, pagkatapos ang Hello World ay dapat na naka-print sa screen. Kung nakakuha ka ng isang hindi wastong error sa syntax, pagkatapos ay mayroon kang maling bersyon ng sawa na naka-install. Mag-install ng isang bersyon ng sawa> = 3.6

I-install ang mga kinakailangang library ng python gamit ang pip:

Gagamitin namin ang mga sumusunod na library ng python upang gumana ang aming software:

  1. Flask - Ito ang balangkas para sa aming server
  2. Twilio - Nagbibigay ang library na ito ng isang paraan para makipag-usap ang sawa sa WhatsApp
  3. Kahilingan - Ginagamit ang library na ito upang humiling ng data mula sa mga API
  4. BeautifulSoup4 - Ginagamit ang library na ito upang mag-scrape ng impormasyon mula sa mga website
  5. lxml - Ginagamit ang library na ito kasama ng BeautifulSoup upang makuha ang nauugnay na impormasyon mula sa isang website

Upang mai-install ang mga aklatan na ito maaari mong gawin ang sumusunod:

Buksan ang CMD / Terminal at i-type ang sumusunod na utos:

pip install flask, twilio, request, beautifulsoup4, lxml

O kaya

I-download ang mga kinakailangan.txt file at buksan ang isang terminal sa direktoryo kung saan ang file ay at i-type:

i-install ang pip-mga kinakailangan.txt

I-install ang ngrok

Pinapayagan ka ng ngrok na ilantad ang isang server na tumatakbo sa iyong lokal na makina sa internet. Sabihin mo lang sa ngrok kung anong port ang nakikinig sa iyong server.

Sinusundan ang gabay sa ngrok website upang mai-install ang ngrok para sa operating system na iyong ginagamit.

Tip: Ang Hakbang 3 ng gabay ay hindi nauugnay para sa proyektong ito upang maaaring laktawan

Hakbang 2: Lumikha ng isang Twilio Account

Sa hakbang na ito ay gagawin namin ang mga sumusunod:

  1. Pag-sign up para sa isang Twilio Account
  2. Mabilis na Panimula sa mga kapaki-pakinabang na seksyon sa Twilio's Console

Mag-sign Up:

Sa proyektong ito, gagamitin namin ang Twilio Whatsapp API upang ikonekta ang aming python program sa Whatsapp. Upang magamit ang Twilio API kailangan muna naming lumikha ng isang account sa opisyal na website ng Twilio. Para sa isang trial account na nag-aalok si Twilio ng isang $ 15 libreng kredito para magamit namin.

Mabilis na Panimula:

Kapag nakalikha ka ng isang account, Ang pinaka-kagiliw-giliw na mga seksyon ng Twilio console para sa proyektong ito ay:

Dashboard - Mula sa dashboard, maaari mong makita ang dami ng natitira mong natitira, maaari mong i-edit ang pangalan ng iyong proyekto at baguhin ang wika ng programa

Ang subseksyon ng Whatsapp sa seksyong Programmable SMS - Mula sa seksyon ng Whatsapp ng console, maaari kang makakuha ng access sa pagsali sa code para sa bot, ang bilang ng Whatsapp na gagamitin namin sa proyekto upang makipag-usap sa aming bot at pati na rin ang pag-set up ng webhook. Ang higit pang mga detalye tungkol sa lahat ng ito ay ilalarawan sa mga susunod na hakbang

Hakbang 3: Kumuha ng API Key para sa COVID 19 Data, Pelikula at Palabas sa TV

Kumuha ng API Key para sa COVID 19 Data, Pelikula at Palabas sa TV
Kumuha ng API Key para sa COVID 19 Data, Pelikula at Palabas sa TV
Kumuha ng API Key para sa COVID 19 Data, Pelikula at Palabas sa TV
Kumuha ng API Key para sa COVID 19 Data, Pelikula at Palabas sa TV

Ang isang key ng API o key ng interface ng application ng application ay isang code na naipapasa ng mga application ng computer. Tinatawagan ng programa o aplikasyon ang interface ng API o application programming upang makilala ang gumagamit nito, developer o programa ng pagtawag sa isang website.

Gumagamit kami ng isang API upang makakuha ng impormasyon para sa pinakabagong Katayuan ng COVID 19, Mga Pelikula at Palabas sa TV. Upang ma-access ang API kailangan mo ng isang susi na personal sa bawat gumagamit. Sa hakbang na ito, makukuha natin ang mga key na ito

Kumuha ng API Key para sa Data ng COVID 19:

  • Mag-log in o mag-sign up para sa iyong RapidAPI account.
  • Pagkatapos nito pumunta sa COVID-19 API ng Gramzivi
  • Mag-scroll pababa sa seksyong "Mga Header Parameter" ng API console.
  • Dapat makita ang iyong API Key sa patlang na "X-RapidAPI-Key".

Kumuha ng API Key para sa data ng palabas sa pelikula at tv:

  • Mag-log in o mag-sign up para sa iyong TMDB account
  • Pagkatapos nito pumunta sa iyong setting - API
  • Mag-scroll pababa sa seksyong "API Key (v3 auth)"
  • Ang iyong API key ay dapat na makikita sa ibaba nito

Lumikha ng "config.py" file

Lilikha kami ngayon ng isang config.py file upang maiimbak ang aming mga API key. Lumilikha kami ng isang hiwalay na file para sa mga ito, sanhi ng mga key ng API ay kumpidensyal na impormasyon at kung ibinabahagi mo ang iyong proyekto ay hindi mo dapat ibahagi ang iyong API key.

  • Lumikha ng isang bagong direktoryo ng proyekto
  • Sa loob ng bagong nilikha na direktoryo lumikha ng isang bagong file na tinatawag na "config.py"
  • I-edit ang file na ito gamit ang isang editor na iyong pinili (Sublime, Notepad ++) at kopyahin at palitan ang sumusunod na teksto ng may kaugnayang impormasyon na nakuha sa nakaraang hakbang:

session_key = "sikreto" #Hindi ito ligtas.. ngunit para lamang sa pagsubok ok lang ito

quick_api_key = "" api_key = ""

I-save ang file

Hakbang 4: Ikonekta ang Python at Twilio Via Ngrok

Sa hakbang na ito gagawin namin ang sumusunod:

  1. I-download ang source code
  2. Ipatupad ang programa at ipasa ang lokal na IP sa isang pampublikong address sa pamamagitan ng ngrok upang makagawa kami ng isang kahilingan dito
  3. I-configure ang aming Twilio account upang maipasa ang kahilingan sa aming server

I-download ang source code para sa bot:

I-download ang lahat ng naka-attach na file sa setup na ito sa direktoryo ng proyekto na nilikha sa huling hakbang.

Ipatupad ang programa:

Pumunta sa direktoryo ng source code sa CMD / terminal at isagawa ang sumusunod na utos:

sawa server_main.py

Tiyaking mayroon ng "config.py" na nilikha namin sa huling hakbang o kung hindi ka makakakuha ng isang error

Ang output ay dapat na tulad nito:

* Paghahatid sa Flask app na "server_main" (tamad na paglo-load)

* Kapaligiran: produksyon WARNING: Ito ay isang development server. Huwag gamitin ito sa isang paglawak ng produksyon. Gumamit ng isang produksyon WSGI server sa halip. * Mode ng pag-debug: sa * Tumatakbo sa https://127.0.0.1taas000/ (Pindutin ang CTRL + C upang umalis) * Ang pag-restart sa stat * Aktibo ang Debugger! * PIN ng Debugger: 740-257-236

Nangangahulugan ito na tumatakbo nang tama ang iyong server sa iyong lokal na network sa port 5000. Upang ma-access ang server na ito mula sa labas ng iyong lokal na network gagamitin namin ang ngrok

Ipasa ang lokal na IP sa isang pampublikong address sa pamamagitan ng ngrok

Pumunta sa direktoryo kung saan mo na-download ang ngrok sa pamamagitan ng CMD / terminal at isagawa ang sumusunod na utos:

ngrok http 5000

Ang output ay dapat na tulad nito:

ngrok ni @inconshreveable (Ctrl + C upang tumigil)

Katayuan ng Session sa online Session Mag-e-expire ng 7 oras, 59 minuto Bersyon 2.3.35 Rehiyon ng Estados Unidos (sa amin) Web Interface https://127.0.0.1:4040 Pagpasa _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Pagpasa _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Mga koneksyon ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00

Kopyahin ang link na HTTP mula sa bahaging "Forwading" (hanggang sa ngrok.io lamang). (Idinagdag ko ang _ sa halimbawang ito upang maiwasan ang pagtuturo na maharang ito bilang isang link)

I-configure ang Twilio upang magamit ang bagong address upang maipasa ang kahilingan ng server sa:

Ngayon na matagumpay naming naipasa ang aming server upang ma-access sa publiko kailangan naming i-configure ang Twilio na kapag ang isang kahilingan ay ginawa gamit ang Twilio Whatsapp API ipinapasa namin ang kahilingan sa aming server. Upang magawa ito kailangan nating gawin ang mga sumusunod:

  1. Pumunta sa seksyon ng Whatsapp sa Twilio's Console
  2. Mag-navigate sa subseksyong "Sanbox"
  3. Sa text ng "WHEN A MESSAGE" i-paste ang link na HTTP mula sa ngrok na nakopya sa extension ng / sms (HUWAG KOPYA ANG _ sa simula at pagtatapos):

_https://d44c955749bf.ngrok.io/sms_

Ngayon ang lahat para sa chatbot ay na-set up na. Sa susunod na hakbang, maaari naming subukan kung ang lahat ay gumagana nang tama

Hakbang 5: Subukan ang aming Application

Subukan ang aming Application
Subukan ang aming Application
Subukan ang aming Application
Subukan ang aming Application
Subukan ang aming Application
Subukan ang aming Application

Sa hakbang na ito gagawin namin ang sumusunod:

  1. Sumali sa aming bot gamit ang access code
  2. Subukan ang aming aplikasyon

Sumali sa aming bot gamit ang access code

Sa proyektong ito, gagamitin namin ang Numero ng Whatsapp Sandbox ng Twilio para sa aming bot na Whatsapp. Para sa bawat tao, magkakaiba ang bilang na ito. Mahahanap mo ang iyong numero tulad nito:

  • Mag-login sa iyong Twilio Account
  • Pumunta sa Twilio Console -> Seksyon ng Whatsapp -> Sandbox
  • Makikita mo ang iyong numero ng Twilio Sandbox na may sumusunod na teksto:

Anyayahan ang iyong mga kaibigan sa iyong Sandbox. Hilingin sa kanila na magpadala ng mensahe sa WhatsApp kay:

Dahil sa isang patakaran sa seguridad ng Whatsapp, lahat ng nais na makipag-usap sa isang awtomatikong bot sa pamamagitan ng Whatsapp ay kailangang malinaw na mag-opt-in gamit ang isang code. Maaari mong malaman ang iyong code sa pamamagitan ng pagtingin sa parehong seksyon ng iyong Twilio sandbox number kasama ang teksto:

Matapos mong makuha ang iyong Twilio Sandbox Whatsapp Number at opt-in code, upang simulang gamitin ang bot pumunta sa iyong mobile phone at gawin ang mga sumusunod:

  1. I-save ang "Twilio Sandbox Whatsapp Number" sa iyong contact sa iyong pagpipilian ng pangalan (Hal. CovBot)
  2. Buksan ang Whatsapp at ipadala ang sumusunod na mensahe sa contact na iyon:

sumali ka

Dapat mong makita ang isang mensahe na tulad nito:

Twilio Sandbox: Ang iyong lahat ay nakatakda….

Nangangahulugan ito na nakakonekta ka sa iyong bot at handang tanungin ito qs

Subukan ang aming aplikasyon:

Upang subukan ang iba't ibang mga tampok ng iyong bot pagkatapos mong nakakonekta ipadala ang sumusunod na mensahe sa bot:

Hi

Dapat mong makita ang sumusunod na teksto:

Maligayang pagdating sa CoVbot!

Isang simpleng chatbot na maaaring magbigay ng pinakabagong mga update ng COVID-19 sa isang simple, mabilis at madaling paraan. Dahil lahat tayo ay na-quarantine, maaaring magamit ang bot upang magmungkahi ng ilang mga masasayang aktibidad upang masulit ang aming oras sa bahay habang pinagsisikapang panatilihing ligtas ang ating sarili, mga kaibigan at pamilya. Inaasahan namin na nasiyahan ka dito at nahanap mo itong kapaki-pakinabang! Magpadala ng 4 upang makapagsimula!

Ngayon ay maaari mong sundin ang pagpipilian upang subukan ang iba't ibang mga tampok ng bot.

AYAN YUN! Handa na ang iyong Whatsapp Chatbot !!!! Binabati kita

Hakbang 6: Paano Ito Gumagana at Pagpapabuti sa Hinaharap:

Paano Ito Gumagana at Pagpapabuti sa Hinaharap
Paano Ito Gumagana at Pagpapabuti sa Hinaharap
Paano Ito Gumagana at Pagpapabuti sa Hinaharap
Paano Ito Gumagana at Pagpapabuti sa Hinaharap
Paano Ito Gumagana at Pagpapabuti sa Hinaharap
Paano Ito Gumagana at Pagpapabuti sa Hinaharap
Paano Ito Gumagana at Pagpapabuti sa Hinaharap
Paano Ito Gumagana at Pagpapabuti sa Hinaharap

Ang seksyon na ito ay para sa mga taong may karanasan sa pag-program ng sawa. Kung hindi mo maaari mong laktawan ang seksyong ito

Paliwanag sa Code

Pangunahing Loop:

Kapag ang isang mensahe ng Whatsapp ay ipinadala sa numero ng iyong Twilio, ang Twilio API ay gumagawa ng isang kahilingan sa POST sa iyong server na iyong tinukoy. Ang server ay ipinatupad gamit ang balangkas ng Flask at sa gayon maaari naming magamit ang bagay na Humiling ng Flask upang makuha ang natanggap na data sa kahilingan sa POST. Batay sa data (Mga numero sa kasong ito) nagpapasya kami kung anong pagpipilian ang pinili ng gumagamit at ibigay ang naaangkop na impormasyon

Data ng COVID at Pelikula at Mga Palabas sa TV:

Ang Data ng COVID 19, Mga Pelikula at Palabas sa TV ay nakuha mula sa isang API. Ginagamit ko ang hiling na python library upang makuha ang data at pagkatapos ay i-convert ito sa isang format na JSON. Pagkatapos ay parse ko lang ang nauugnay na impormasyon. Para sa Pelikula at Palabas sa TV, ginamit ko rin ang random na library ng sawa upang pumili ng isang random na palabas sa TV at Pelikula

Mga Detalye ng Book

Ang algorithm ng mungkahi ng libro na ginamit sa proyekto ay isang web scraper lamang. Hindi ako makahanap ng anumang API na magbibigay sa iyo ng isang random na libro na may mga detalye, kaya't nag-scrape lamang ako ng isang website gamit ang BeautifulSoup4 at gamit ang lxml parser na kinukuha ko ang nauugnay na impormasyon ng libro

Mga Detalye ng Sub Menu:

Ang pagpapatupad ng mga sub-menu ay medyo mas mahirap kaysa sa iba pa dahil ang mga mensahe ng Whatsapp ay tulad ng mga SMS na isang walang estado na protokol. Upang malutas ito, gumamit ako ng dalawang diskarte:

  1. Paggamit ng Mga Global Variable upang matandaan ang estado ng mensahe - Ipapatupad lamang ito para sa COVID 19 Sub-opsyon. Sa ito kapag pipiliin ng isang gumagamit ang "Katayuan ng COVID 19 sa pagpipilian ng aking bansa" ang isang pandaigdigang variable na pinangalanang hindi kumpleto_message ay nakatakda sa True upang ipahiwatig pagkatapos ay kailangan pang isa pang mensahe batay sa nakaraang pagpipilian. Pagkatapos mayroong isang tseke sa simula na suriin kung ang isang mensahe ay minarkahan na hindi kumpleto kung kaya ipinapalagay nito ang mensahe ay ang pangalan ng bansa para sa data ng COVID at ipinapasa ang impormasyon sa wastong pagpapaandar at itinakda ang pandaigdigang variable na hindi kumpletong mensahe sa Maling
  2. Paggamit ng Twilio Cookies at Flask Session - Ang Cookies at Flask Session ay ginagamit sa sub-menu na "Magmungkahi ng isang Quarantine na Aktibidad" upang ipatupad ang pagiging matino, tulad ng anumang web application sa internet na ginagamit ito ngayon, ngunit sa halip na alalahanin ang mga bagay tulad ng iyong username o account tandaan nito ang conversion sa pagitan ng Dalawang numero. Kung nais mo ng karagdagang impormasyon sa bahaging ito inirerekumenda kong basahin ang kamangha-manghang gabay na ito sa Twilio Cookies na isinulat ng Twilio Team

Mga Pagpapabuti sa Hinaharap:

  1. Gumamit ng Object orientedness ng Python at Mga pattern ng Disenyo upang mapabuti ang arkitektura ng code at DRYness
  2. Alisin ang mga global variable
  3. Maaaring mapabuti ang Paghawak ng Error
  4. Awtomatikong i-update ang ngrok address gamit ang mais at Twilio CLI
  5. Dokumentasyon ng Code

Hakbang 7: Huling Mga Tala

Sana magustuhan ninyong lahat ang proyektong ito. Ito ang aking kauna-unahang itinuturo, kaya Kung ang isang bagay ay hindi malinaw o nangangailangan ng higit na paliwanag ipaalam sa akin sa seksyon ng komento, at maaari kitang tulungan. Gayundin kung ginawa mo ang proyektong ito sa ibang pamamaraan o listahan ng tampok ibahagi ang lahat

Inirerekumendang: