Turinys:

„CovBot“- „WhatsApp“pagrįstas „Chatbot“, skirtas COVID 19 informacijai ir dar daugiau: 7 žingsniai
„CovBot“- „WhatsApp“pagrįstas „Chatbot“, skirtas COVID 19 informacijai ir dar daugiau: 7 žingsniai

Video: „CovBot“- „WhatsApp“pagrįstas „Chatbot“, skirtas COVID 19 informacijai ir dar daugiau: 7 žingsniai

Video: „CovBot“- „WhatsApp“pagrįstas „Chatbot“, skirtas COVID 19 informacijai ir dar daugiau: 7 žingsniai
Video: CET Covid Robot | Our first implementation | CET CovBot v1.0 2024, Lapkritis
Anonim
Image
Image
Sukurkite „Twilio“paskyrą
Sukurkite „Twilio“paskyrą

„CoVbot“yra paprastas ir intuityvus „Whatsapp“pokalbių robotas. Pagrindinis roboto bruožas yra toks:

Tai gali suteikti jums naujausią COVID-19 statusą pasirinktoje šalyje paprastu ir intuityviu būdu.

Be to, robotas gali pasiūlyti įdomių užsiėmimų AT HOME, pavyzdžiui:

  1. Siūlyti filmą - filmas, kurį reikia žiūrėti iš 10 geriausių filmų sąrašo su trumpu siužeto ir trukmės apžvalga. Kadangi šis sąrašas nėra užkoduotas programinėje įrangoje, tai visada suteiks jums naujausius atnaujinimus, pagrįstus dabartinėmis tendencijomis.
  2. Siūlykite TV laidą - TV laidą, kurią reikia žiūrėti iš populiariausių TV laidų, trumpai apžvelgiant siužetą ir įvertinimus. Kadangi šis sąrašas nėra užkoduotas programinėje įrangoje, tai visada suteiks jums naujausius atnaujinimus, pagrįstus dabartinėmis tendencijomis.
  3. Pasiūlyti knygą - knyga, kurią reikia perskaityti iš 10 geriausių knygų sąrašo su knygos ištraukomis ir viršelio vaizdais.
  4. Kasdienės treniruotės-tai vaizdo įrašas, pagrįstas 7 dienų treniruočių grafiku, kurį „Instagram“paskyroje pateikia „CRANK gym“.

Jei jums patinka ši instrukcija, apsvarstykite galimybę balsuoti už ją pirmojo elemento autoriaus konkurse. (ir taip, tai yra mano pirmasis pamokomas dalykas, todėl jei kažkas neaišku arba reikia daugiau paaiškinimų, praneškite man komentarų skiltyje ir aš galiu jums padėti:)

Prekės

Šis projektas yra tik programinės įrangos projektas, todėl kiekvienas, vykdantis šią instrukciją su nešiojamu kompiuteriu/staliniu kompiuteriu/„MacOS“/„Linux“ir internetu, gali užbaigti šį projektą. Pabaigoje taip pat įdėsiu išsamų skyrių, kad išsamiau paaiškintų kodą/procesą žmonėms, turintiems tam tikros programavimo patirties. Atminkite, kad tai nėra būtina norint užbaigti projektą

Projekto sudėtingumo lygis:

Ne labai lengva, bet ne labai sunku

Aparatūra, kurią naudosime:

  • Nešiojamasis kompiuteris/darbalaukis, kuriame veikia „Windows“/„MacOS“/„Linux“.
  • Mobilusis telefonas su įdiegta „WhatsApp Messenger“

Programinė įranga, kurią naudosime:

  1. „Python“programavimo kalba
  2. „ngrok“yra įrankis, leidžiantis pasiekti mūsų serverį iš išorinio tinklo
  3. Jūsų pasirinktas redaktorius: (pvz., „Notepad ++“, „Sublime Text“, „Vim“ir kt.)

1 veiksmas: įdiekite reikiamą programinę įrangą

Image
Image

Šiame žingsnyje mes atliksime šiuos veiksmus:

  1. Įdiekite „Python“> 3.6 ir išbandykite
  2. Įdiekite reikalingas python bibliotekas
  3. Įdiekite „ngrok“

Jei esate įdiegę abi programas, galite praleisti šį veiksmą

Įdiekite „Python“:

Visa šio projekto vidinė/serverio kodų bazė parašyta „Python 3.6“. Todėl, norėdami paleisti programas, kompiuteryje turime įdiegti „Python“> 3.6. Sekite „CoreySchafer“vadovėlį, kaip įdiegti „python“, skirtą „Windows“ir „MacOS“

Galite patikrinti, ar viskas įdiegta teisingai, įvesdami cmd/terminale:

python -c 'print (f "Labas pasaulis")'

Jei viskas buvo įdiegta teisingai, „Hello World“turėtų būti atspausdintas ekrane. Jei gaunate netinkamą sintaksės klaidą, turite įdiegtą neteisingą „python“versiją. Įdiekite „python“versiją> = 3.6

Įdiekite reikalingas „Python“bibliotekas naudodami „pip“:

Kad programinė įranga veiktų, naudosime šias „python“bibliotekas:

  1. Kolba - tai yra mūsų serverio sistema
  2. „Twilio“- ši biblioteka suteikia „python“galimybę bendrauti su „WhatsApp“
  3. Užklausa - ši biblioteka naudojama duomenims iš API prašyti
  4. BeautifulSoup4 - ši biblioteka naudojama informacijai iš svetainių nuskaityti
  5. lxml - ši biblioteka naudojama kartu su „BeautifulSoup“, kad iš svetainės būtų išgauta atitinkama informacija

Norėdami įdiegti šias bibliotekas, galite atlikti šiuos veiksmus:

Atidarykite CMD/terminalą ir įveskite šią komandą:

pip install kolba, twilio, prašymas, beautifulsoup4, lxml

ARBA

Atsisiųskite reikalavimus.txt failą ir atidarykite terminalą kataloge, kuriame yra failas, ir įveskite:

pip install -r reikalavimai.txt

Įdiekite „ngrok“

„ngrok“leidžia atskleisti jūsų vietiniame kompiuteryje veikiantį serverį internete. Tiesiog pasakykite „ngrok“, kurio prievado serveris klauso.

Vadovaukitės „ngrok“svetainės vadovu, kaip įdiegti naudojamą operacinę sistemą „ngrok“.

Patarimas: vadovo 3 veiksmas nėra svarbus šiam projektui, todėl jį galima praleisti

2 veiksmas: sukurkite „Twilio“paskyrą

Šiame etape mes atliksime šiuos veiksmus:

  1. Prisiregistruokite prie „Twilio“paskyros
  2. Greitas įvadas į naudingus „Twilio“konsolės skyrius

Registruotis:

Šiame projekte mes naudosime „Twilio Whatsapp“API, kad prijungtume savo „python“programą prie „Whatsapp“. Kad galėtume naudotis „Twilio“API, pirmiausia turime sukurti paskyrą oficialioje „Twilio“svetainėje. Bandomajai sąskaitai „Twilio“siūlo 15 USD nemokamą kreditą, kurį galime naudoti.

Greitas įvadas:

Sukūrę paskyrą, įdomiausi šio projekto „Twilio“konsolės skyriai yra šie:

Prietaisų skydelis - prietaisų skydelyje galite pamatyti dar likusią kredito sumą, galite redaguoti savo projekto pavadinimą ir keisti programavimo kalbą

„Whatsapp“poskyris programuojamų SMS skiltyje - Konsolės skiltyje „Whatsapp“galite gauti prieigą prie roboto prisijungimo kodo, „Whatsapp“numerio, kurį naudosime projekte, kad galėtume pasikalbėti su mūsų robotu, taip pat nustatydami „webhook“. Daugiau informacijos apie visa tai bus aprašyta tolesniuose žingsniuose

3 veiksmas: gaukite „COVID 19“duomenų, filmų ir TV laidų API raktą

Gaukite API raktą, skirtą COVID 19 duomenims, filmams ir TV šou
Gaukite API raktą, skirtą COVID 19 duomenims, filmams ir TV šou
Gaukite API raktą, skirtą COVID 19 duomenims, filmams ir TV laidoms
Gaukite API raktą, skirtą COVID 19 duomenims, filmams ir TV laidoms

API raktas arba programų programavimo sąsajos raktas yra kodas, kurį perduoda kompiuterinės programos. Tada programa ar programa iškviečia API arba programų programavimo sąsają, kad nustatytų savo vartotoją, kūrėją ar skambinimo programą į svetainę.

Mes naudojame API, kad gautume informaciją apie naujausią COVID 19 būseną, filmus ir TV laidas. Norėdami pasiekti API, jums reikia kiekvieno vartotojo asmeninio rakto. Šiame etape mes gausime šiuos raktus

Gaukite API raktą COVID 19 duomenims:

  • Prisijunkite arba prisiregistruokite prie „RapidAPI“paskyros.
  • Po to eikite į „Gramzivi“sukurtą „COVID-19“API
  • Slinkite žemyn iki API konsolės skilties „Antraštės parametrai“.
  • Jūsų API raktas turėtų būti matomas lauke „X-RapidAPI-Key“.

Gaukite API raktą filmams ir TV laidų duomenims:

  • Prisijunkite arba prisiregistruokite prie savo TMDB paskyros
  • Po to eikite į savo nustatymą - API
  • Slinkite žemyn iki skilties „API raktas (v3 autentifikavimas)“
  • Jūsų API raktas turėtų būti matomas po juo

Sukurkite failą „config.py“

Dabar sukursime failą config.py, kuriame bus saugomi mūsų API raktai. Mes sukuriame jiems atskirą failą, nes API raktai yra konfidenciali informacija, o jei bendrinate savo projektą, neturėtumėte bendrinti savo API rakto.

  • Sukurkite naują projektų katalogą
  • Naujai sukurto katalogo viduje sukurkite naują failą pavadinimu „config.py“
  • Redaguokite šį failą pasirinktu redaktoriumi („Sublime“, „Notepad ++“) ir nukopijuokite bei pakeiskite šį tekstą atitinkama informacija, gauta atlikus ankstesnį veiksmą:

session_key = "paslaptis" #Tai nėra saugu.. bet tik bandymui viskas gerai

rapid_api_key = "" api_key = ""

Išsaugokite failą

4 veiksmas: prijunkite „Python“ir „Twilio“per „Ngrok“

Šiame žingsnyje mes atliksime šiuos veiksmus:

  1. Atsisiųskite šaltinio kodą
  2. Vykdykite programą ir persiųskite vietinį IP į viešą adresą per ngrok, kad galėtume jai pateikti užklausą
  3. Konfigūruokite „Twilio“paskyrą, kad ji persiųstų užklausą mūsų serveriui

Atsisiųskite roboto šaltinio kodą:

Atsisiųskite visą šioje sąrankoje pridėtą failą į projekto katalogą, sukurtą paskutiniame veiksme.

Vykdykite programą:

Eikite į šaltinio kodo katalogą CMD/terminale ir vykdykite šią komandą:

python server_main.py

Įsitikinkite, kad turite „config.py“, kurį sukūrėme paskutiniame veiksme, kitaip gausite klaidą

Išvestis turėtų būti maždaug tokia:

* Serviravimo kolbos programa „server_main“(tingus įkėlimas)

* Aplinka: gamyba ĮSPĖJIMAS: Tai kūrimo serveris. Nenaudokite jo gamyboje. Vietoj to naudokite gamybinį WSGI serverį. * Derinimo režimas: įjungtas * Veikia https://127.0.0.1:5000/ (paspauskite CTRL+C, kad išeitumėte) * Derintojo PIN kodas: 740-257-236

Tai reiškia, kad jūsų serveris tinkamai veikia jūsų vietiniame tinkle prievado 5000. Kad šis serveris būtų prieinamas iš išorinio tinklo, mes naudosime ngrok

Persiųskite vietinį IP į viešą adresą per ngrok

Eikite į katalogą, iš kurio atsisiuntėte „ngrok“per CMD/terminalą, ir vykdykite šią komandą:

ngrok http 5000

Išvestis turėtų būti maždaug tokia:

ngrok pagal @inconshreveable (norėdami išeiti paspauskite Ctrl+C)

Sesijos būsena internete Sesija baigiasi 7 valandos, 59 minutės Versija 2.3.35 Regionas Jungtinės Valstijos (JAV) Žiniatinklio sąsaja https://127.0.0.1:4040 Persiuntimas _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Persiuntimas _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Ryšiai ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00

Nukopijuokite HTTP nuorodą iš dalies „Forwading“(tik iki ngrok.io). (Į šį pavyzdį pridėjau _, kad būtų išvengta nurodymų perimti jį kaip nuorodą)

Konfigūruokite „Twilio“, kad jis naudotų naują adresą serverio užklausai persiųsti:

Dabar, kai sėkmingai persiuntėme savo serverį, kad jis būtų prieinamas viešai, turime sukonfigūruoti „Twilio“taip, kad kai užklausa pateikiama naudojant „Twilio Whatsapp“API, mes perduodame užklausą savo serveriui. Norėdami tai padaryti, turime atlikti šiuos veiksmus:

  1. Eikite į „Whatsilio“skyrių „Twilio“konsolėje
  2. Eikite į poskyrį „Sanbox“
  3. Teksto laukelyje „KADA ATSIŽVELGIA“įklijuokite HTTP nuorodą iš „ngrok“, nukopijuotą su /sms plėtiniu (NEKOPIUOKITE _ pradžioje ir pabaigoje):

_https://d44c955749bf.ngrok.io/sms_

Dabar „chatbot“viskas nustatyta. Kitame žingsnyje galime patikrinti, ar viskas veikia teisingai

5 žingsnis: išbandykite mūsų programą

Išbandykite mūsų programą
Išbandykite mūsų programą
Išbandykite mūsų programą
Išbandykite mūsų programą
Išbandykite mūsų programą
Išbandykite mūsų programą

Šiame žingsnyje atliksime šiuos veiksmus:

  1. Prisijunkite prie mūsų roboto naudodami prieigos kodą
  2. Išbandykite mūsų programą

Prisijunkite prie mūsų roboto naudodami prieigos kodą

Šiame projekte mes naudosime „Whatsilio“roboto „Twilio“„Whatsapp“smėlio dėžės numerį. Kiekvienam asmeniui šis skaičius bus skirtingas. Savo numerį galite rasti taip:

  • Prisijunkite prie savo „Twilio“paskyros
  • Eikite į „Twilio Console“-> „Whatsapp“skiltį -> „Smėlio dėžė“
  • Pamatysite savo „Twilio Sandbox“numerį su šiuo tekstu:

Pakvieskite savo draugus į savo smėlio dėžę. Paprašykite jų atsiųsti „WhatsApp“pranešimą adresu:

Dėl „Whatsapp“saugumo politikos visi, norintys pasikalbėti su automatiniu robotu per „Whatsapp“, turi aiškiai pasirinkti naudodami kodą. Savo kodą galite sužinoti žiūrėdami į tą pačią skiltį kaip ir „Twilio“smėlio dėžės numeris su tekstu:

Įsigiję „Twilio Sandbox Whatsapp“numerį ir pasirinkimo kodą, norėdami pradėti naudoti robotą, eikite į savo mobilųjį telefoną ir atlikite šiuos veiksmus:

  1. Išsaugokite „Twilio smėlio dėžės„ Whatsapp “numerį savo kontaktui pasirinkdami vardą (pvz.,„ CovBot “)
  2. Atidarykite „Whatsapp“ir nusiųskite šį pranešimą šiam kontaktui:

prisijungti

Turėtumėte pamatyti tokį pranešimą:

„Twilio Sandbox“: viskas paruošta….

Tai reiškia, kad esate prisijungę prie savo roboto ir pasiruošę jo paklausti

Išbandykite mūsų programą:

Norėdami išbandyti įvairias savo roboto funkcijas, kai prisijungsite, siųskite robotui tokį pranešimą:

Sveiki

Turėtumėte pamatyti šį tekstą:

Sveiki atvykę į „CoVbot“!

Paprastas pokalbių robotas, kuris paprastai, greitai ir lengvai gali pateikti naujausius COVID-19 atnaujinimus. Kadangi visi esame karantine, robotas gali būti naudojamas norint pasiūlyti įdomios veiklos, kad kuo geriau praleistume laiką namuose, kai stengiamės apsaugoti save, draugus ir šeimą. Tikimės, kad jums patiks ir bus naudinga! Norėdami pradėti, atsiųskite 4!

Dabar galite sekti parinktį ir išbandyti įvairias roboto funkcijas.

VISKAS! Jūsų „Whatsapp Chatbot“yra paruoštas !!!! Sveikinu

6 veiksmas: kaip tai veikia ir tolesnis tobulinimas:

Kaip tai veikia ir tolesnis tobulinimas
Kaip tai veikia ir tolesnis tobulinimas
Kaip tai veikia ir tolesnis tobulinimas
Kaip tai veikia ir tolesnis tobulinimas
Kaip tai veikia ir tolesnis tobulinimas
Kaip tai veikia ir tolesnis tobulinimas
Kaip tai veikia ir tolesnis tobulinimas
Kaip tai veikia ir tolesnis tobulinimas

Šis skyrius skirtas žmonėms, kurie turi tam tikrą python programavimo patirtį. Jei ne, galite praleisti šį skyrių

Kodo paaiškinimas

Pagrindinė kilpa:

Kai jūsų „Twilio“numeriu siunčiamas „Whatsapp“pranešimas, „Twilio“API jūsų serveriui pateikia POST užklausą. Serveris įdiegtas naudojant kolbos sistemą, todėl mes galime naudoti kolbos užklausos objektą, kad gautume duomenis, gautus POST užklausos metu. Remdamiesi duomenimis (šiuo atveju - skaičiais) nusprendžiame, kokią parinktį vartotojas pasirinko, ir pateikiame atitinkamą informaciją

COVID duomenys ir filmai bei TV laidos:

COVID 19, filmų ir TV laidų duomenys gaunami iš API. Aš naudoju užklausos „python“biblioteką duomenims gauti ir tada juos konvertuoju į JSON formatą. Tada aš tiesiog analizuoju svarbią informaciją. Filmų ir TV laidų atveju aš taip pat naudoju atsitiktinę python biblioteką, kad pasirinkčiau atsitiktinę TV laidą ir filmą

Išsami knygos informacija

Projekte naudojamas knygos pasiūlymo algoritmas yra tik žiniatinklio grandiklis. Nepavyko rasti jokios API, suteikiančios jums atsitiktinę knygą su išsamia informacija, todėl tiesiog nubraukiu svetainę naudodami „BeautifulSoup4“ir naudodamas „lxml“analizatorių išgaunu atitinkamą knygos informaciją

Išsami informacija apie submeniu:

Submeniu diegimas buvo šiek tiek sudėtingesnis nei kiti, nes „Whatsapp“pranešimai yra kaip SMS žinutės, kurios yra protokolas be būsenos. Norėdami tai išspręsti, naudoju dvi technikas:

  1. Visuotinių kintamųjų naudojimas pranešimo būsenai prisiminti - tai taikoma tik COVID 19 papildomai parinkčiai. Kai vartotojas pasirenka parinktį „COVID 19 būsena mano šalyje“, visuotinis kintamasis, pavadintas „nepilnas_žinutė“, yra nustatytas į „True“, kad būtų nurodyta, kad vis tiek reikia kito pranešimo, pagrįsto ankstesne parinktimi. Tada pradžioje yra patikrinimas, kuris patikrina, ar pranešimas pažymėtas kaip neužbaigtas, jei taip, jis daro prielaidą, kad pranešimas yra šalies pavadinimas COVID duomenims, ir perduoda informaciją teisingai funkcijai, o pasaulinio kintamojo nebaigtą pranešimą nustato kaip klaidingą
  2. „Twilio“slapukų ir kolbos sesijų naudojimas - slapukai ir kolbų seansai naudojami submeniu „Siūlyti karantino veiklą“, kad būtų įgyvendintas valstybingumas, kaip ir bet kuri interneto žiniatinklio programa šiais laikais, tačiau vietoj to, kad prisimintų tokius dalykus kaip jūsų vartotojo vardas arba prisimenate, kad atsimena dviejų skaičių konvertavimą. Jei jums patinka daugiau informacijos apie šią dalį, rekomendavau perskaityti šį nuostabų „Twilio“slapukų vadovą, kurį parašė „Twilio“komanda

Būsimi patobulinimai:

  1. Pasinaudokite „Python“ir dizaino modelių orientacija į objektą, kad pagerintumėte kodo architektūrą ir sausumą
  2. Pašalinkite visuotinius kintamuosius
  3. Klaidų tvarkymą galima patobulinti
  4. Automatiškai atnaujinkite „ngrok“adresą naudodami kukurūzus ir „Twilio CLI“
  5. Kodo dokumentacija

7 žingsnis: paskutinės pastabos

Tikiuosi, kad jums visiems patinka šis projektas. Tai yra mano pirmasis pamokomas dalykas, todėl, jei kažkas neaišku arba reikia daugiau paaiškinimų, praneškite man komentarų skiltyje ir aš galiu jums padėti. Taip pat, jei sukūrėte šį projektą naudodami kitą techniką ar funkcijų sąrašą, visi dalinkitės juo

Rekomenduojamas: