Sisällysluettelo:

CovBot - WhatsApp -pohjainen Chatbot COVID 19 -informaatioon ja muuta: 7 vaihetta
CovBot - WhatsApp -pohjainen Chatbot COVID 19 -informaatioon ja muuta: 7 vaihetta

Video: CovBot - WhatsApp -pohjainen Chatbot COVID 19 -informaatioon ja muuta: 7 vaihetta

Video: CovBot - WhatsApp -pohjainen Chatbot COVID 19 -informaatioon ja muuta: 7 vaihetta
Video: Whatsapp Ecommerce Chatbot (shopping, payment, confirmation) 2024, Marraskuu
Anonim
Image
Image
Luo Twilio -tili
Luo Twilio -tili

CoVbot on yksinkertainen ja intuitiivinen Whatsapp -pohjainen chatbot. Botin pääominaisuus on:

Se voi antaa sinulle viimeisimmän COVID-19-tilan valintamaassa yksinkertaisella ja intuitiivisella tavalla.

Lisäksi botti voi ehdottaa hauskoja aktiviteetteja AT HOME: ssa, kuten:

  1. Ehdota elokuvaa - katsottava elokuva Top 10 -elokuvien luettelosta, jossa on lyhyt yleiskuva juonesta ja kestosta. Koska tämä luettelo ei ole kovakoodattu ohjelmistoissa, saat aina viimeisimmät päivitykset, jotka perustuvat nykyisiin suuntauksiin.
  2. Ehdota TV -ohjelmaa - Suosituimpien TV -ohjelmien katsottava tv -ohjelma lyhyellä yleiskatsauksella juonesta ja luokituksista. Koska tämä luettelo ei ole kovakoodattu ohjelmistoissa, saat aina uusimmat päivitykset tämänhetkisten trendien perusteella.
  3. Ehdota kirjaa - Kirja, joka luetaan kymmenen parhaan kirjaluettelon joukosta.
  4. Päivittäiset harjoitukset-Tämä on video, joka perustuu 7 päivän harjoitusaikatauluun, jonka CRANK kuntosali tarjoaa Instagram-tilillään.

Jos pidät tästä Instructable -ohjelmasta, harkitse äänestämistä sen puolesta First Item Author Contest -kilpailussa. (ja kyllä, tämä on ensimmäinen ohjeeni, joten jos jotain on epäselvää tai tarvitset lisäselvityksiä, kerro siitä minulle kommenttiosassa, niin voin auttaa sinua:)

Tarvikkeet

Tämä projekti on yksinomaan ohjelmistopohjainen projekti, joten jokainen, joka seuraa tätä ohjetta kannettavan/pöytätietokoneen/macOS/Linuxin ja Internetin avulla, voi suorittaa tämän projektin loppuun. Liitän loppuun myös yksityiskohtaisen osan selittääkseni koodin/prosessin yksityiskohtaisemmin ihmisille, joilla on jonkin verran ohjelmointikokemusta. Huomaa, että tätä ei tarvita projektin loppuun saattamiseksi

Projektin vaikeustaso:

Ei kovin helppoa, mutta ei kovin vaikeaa

Laitteisto, jota käytämme:

  • Kannettava tietokone/pöytäkone, jossa on Windows/macOS/Linux.
  • Matkapuhelin, johon on asennettu WhatsApp Messenger

Käyttämämme ohjelmisto:

  1. Python -ohjelmointikieli
  2. ngrok - työkalu, jonka avulla voimme käyttää palvelinta verkon ulkopuolelta
  3. Valitsemasi editori: (esim. Notepad ++, Sublime Text, Vim jne.)

Vaihe 1: Asenna vaadittu ohjelmisto

Image
Image

Tässä vaiheessa teemme seuraavaa:

  1. Asenna Python> 3.6 ja testaa se
  2. Asenna tarvittavat python -kirjastot
  3. Asenna ngrok

Jos molemmat sovellukset on asennettu, voit ohittaa tämän vaiheen

Asenna Python:

Koko projektin tausta-/palvelinkooditietokanta on kirjoitettu Python 3.6: ssa. Siksi sovellusten suorittamiseksi meidän on asennettava tietokoneellemme Python> 3.6. Seuraa CoreySchaferin opetusohjelmaa pythonin asentamisesta Windowsille ja macOS: lle

Voit testata, että kaikki on asennettu oikein kirjoittamalla cmd/terminaaliin seuraava:

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

Jos kaikki on asennettu oikein, Hello World tulisi tulostaa näytölle. Jos saat virheellisen syntaksivirheen, sinulla on väärä python -versio asennettuna. Asenna python -versio> = 3.6

Asenna tarvittavat python -kirjastot pipillä:

Käytämme seuraavia python -kirjastoja ohjelmistomme toimimiseksi:

  1. Pullo - Tämä on palvelimemme kehys
  2. Twilio - Tämä kirjasto tarjoaa tavan pythonille kommunikoida WhatsAppin kanssa
  3. Pyyntö - Tätä kirjastoa käytetään tietojen pyytämiseen sovellusliittymistä
  4. BeautifulSoup4 - Tätä kirjastoa käytetään tietojen keräämiseen verkkosivustoilta
  5. lxml - Tätä kirjastoa käytetään yhdessä BeautifulSoupin kanssa asiaankuuluvien tietojen poimimiseksi verkkosivustolta

Voit asentaa nämä kirjastot seuraavasti:

Avaa CMD/Terminal ja kirjoita seuraava komento:

pip -asennuspullo, twilio, request, beautifulsoup4, lxml

TAI

Lataa vaatimukset.txt -tiedosto ja avaa päätehakemisto, jossa tiedosto on, ja kirjoita:

pip install -r vaatimukset.txt

Asenna ngrok

ngrokin avulla voit paljastaa paikallisessa koneessa käynnissä olevan palvelimen Internetiin. Kerro vain ngrokille, mitä porttia palvelimesi kuuntelee.

Asenna ngrok käyttämääsi käyttöjärjestelmää varten noudattamalla ngrok -verkkosivuston opasta.

Vinkki: Oppaan vaihe 3 ei liity tähän projektiin, joten se voidaan ohittaa

Vaihe 2: Luo Twilio -tili

Tässä vaiheessa teemme seuraavaa:

  1. Rekisteröidy Twilio -tilille
  2. Nopea johdanto Twilion konsolin hyödyllisiin osioihin

Kirjaudu:

Tässä projektissa käytämme Twilio Whatsapp -sovellusliittymää python -ohjelman liittämiseen Whatsappiin. Voidaksemme käyttää Twilio -sovellusliittymää meidän on ensin luotava tili Twilion virallisella verkkosivustolla. Kokeilutilille Twilio tarjoaa 15 dollarin ilmaisen luoton, jota voimme käyttää.

Nopea esittely:

Kun olet luonut tilin, tämän projektin Twilio -konsolin mielenkiintoisimmat osiot ovat:

Kojelauta - Näet koontinäytöstä jäljellä olevan luoton määrän, voit muokata projektin nimeä ja vaihtaa ohjelmointikieltä

Whatsapp -osa Ohjelmoitavat tekstiviestit -osiossa - Konsolin Whatsapp -osiosta pääset käsiksi botin liittymiskoodiin, Whatsapp -numeroon, jota käytämme projektissa puhuaksemme botillemme, ja myös webhookin määrittämiseen. Lisätietoja kaikista näistä kuvataan seuraavissa vaiheissa

Vaihe 3: Hanki API -avain COVID 19 -datalle, elokuville ja TV -ohjelmille

Hanki API -avain COVID 19 -datalle, elokuville ja TV -ohjelmille
Hanki API -avain COVID 19 -datalle, elokuville ja TV -ohjelmille
Hanki API -avain COVID 19 -datalle, elokuville ja TV -ohjelmille
Hanki API -avain COVID 19 -datalle, elokuville ja TV -ohjelmille

API -avain tai sovellusohjelmointirajapinnan avain on koodi, jonka tietokoneohjelmat välittävät. Ohjelma tai sovellus kutsuu sitten sovellusliittymän tai sovellusohjelmointirajapinnan tunnistaakseen käyttäjän, kehittäjän tai kutsuvan ohjelman verkkosivustolle.

Käytämme sovellusliittymää saadaksemme tietoja uusimmasta COVID 19 -tilasta, elokuvista ja TV -ohjelmista. Sovellusliittymään pääsemiseksi tarvitset avaimen, joka on henkilökohtainen jokaiselle käyttäjälle. Tässä vaiheessa saamme nämä avaimet

Hanki API -avain COVID 19 -datalle:

  • Kirjaudu sisään tai rekisteröidy RapidAPI -tilillesi.
  • Siirry sen jälkeen Gramzivin COVID-19-sovellusliittymään
  • Vieritä alas API -konsolin Otsikkoparametrit -osioon.
  • API-avaimesi pitäisi näkyä X-RapidAPI-Key-kentässä.

Hae API -avain elokuville ja TV -ohjelmatiedoille:

  • Kirjaudu sisään tai rekisteröidy TMDB -tiliisi
  • Siirry sen jälkeen asetukseesi - API
  • Vieritä alas kohtaan "API -avain (v3 -todennus)"
  • API -avaimesi pitäisi näkyä sen alapuolella

Luo "config.py" -tiedosto

Luomme nyt config.py -tiedoston, joka tallentaa API -avaimemme. Luomme näille erillisen tiedoston, koska sovellusliittymäavaimet ovat luottamuksellisia tietoja, ja jos jaat projektisi, älä jaa sovellusliittymäavaintasi.

  • Luo uusi projektihakemisto
  • Luo juuri luodun hakemiston sisälle uusi tiedosto nimeltä "config.py"
  • Muokkaa tätä tiedostoa haluamallasi editorilla (Sublime, Notepad ++) ja kopioi ja korvaa seuraava teksti asiaankuuluvilla tiedoilla, jotka on saatu edellisessä vaiheessa:

session_key = "salainen" #Tämä ei ole turvallista.. mutta vain testin vuoksi se on ok

rapid_api_key = "" api_key = ""

Tallenna tiedosto

Vaihe 4: Yhdistä Python ja Twilio Via Ngrokin kautta

Tässä vaiheessa teemme seuraavan:

  1. Lataa lähdekoodi
  2. Suorita ohjelma ja välitä paikallinen IP julkiseen osoitteeseen ngrokin kautta, jotta voimme tehdä pyynnön sille
  3. Määritä Twilio -tilimme välittämään pyyntö palvelimellemme

Lataa botin lähdekoodi:

Lataa kaikki tämän asetuksen liitteenä oleva tiedosto viimeisessä vaiheessa luotuun projektihakemistoon.

Suorita ohjelma:

Siirry lähdekoodin hakemistoon CMD/päätelaitteessa ja suorita seuraava komento:

python server_main.py

Varmista, että sinulla on "config.py", jonka loimme viimeisessä vaiheessa, muuten saat virheilmoituksen

Tuloksen pitäisi olla jotain tällaista:

* Tarjoilupulssisovellus "server_main" (laiska lataus)

* Ympäristö: tuotanto VAROITUS: Tämä on kehityspalvelin. Älä käytä sitä tuotannon käyttöönotossa. Käytä sen sijaan tuotanto -WSGI -palvelinta. * Virheenkorjaustila: päällä * Käynnissä osoitteessa https://127.0.0.1:5000/ (Lopeta painamalla CTRL+C) * Käynnistä uudelleen statilla * Vianmääritys on aktiivinen! * Virheenkorjauksen PIN-koodi: 740-257-236

Tämä tarkoittaa, että palvelimesi toimii oikein paikallisverkossasi portissa 5000. Jotta saisit tämän palvelimen käyttöösi paikallisen verkon ulkopuolelta, käytämme ngrokia

Välitä paikallinen IP julkiseen osoitteeseen ngrokin kautta

Siirry hakemistoon, josta latasit ngrokin CMD/päätelaitteen kautta ja suorita seuraava komento:

ngrok http 5000

Tuloksen pitäisi olla jotain tällaista:

ngrok by @inconshreveable (lopeta Ctrl+C)

Istunnon tila verkossa Istunto vanhenee 7 tuntia, 59 minuuttia Versio 2.3.35 Alue Yhdysvallat (us) Verkkokäyttöliittymä https://127.0.0.1:4040 Välitys _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Edelleenlähetys _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00

Kopioi HTTP -linkki "Forwading" -osiosta (vain ngrok.io). (Olen lisännyt _ tässä esimerkissä välttääkseni ohjeen siepata sen linkiksi)

Määritä Twilio käyttämään uutta osoitetta palvelinpyyntöjen edelleenlähettämiseen:

Nyt kun olemme onnistuneesti välittäneet palvelimemme julkisesti käytettäväksi, meidän on määritettävä Twilio siten, että kun pyyntö tehdään Twilio Whatsapp -sovellusliittymän avulla, välitämme pyynnön palvelimellemme. Tätä varten meidän on tehtävä seuraava:

  1. Siirry Twilio -konsolin Whatsapp -osioon
  2. Siirry Sanbox -osioon
  3. Liitä "WHEN VESTI TULOSSA" -tekstikenttään HTTP -linkki ngrokista, joka on kopioitu /sms -laajennuksella (ÄLÄ KOPIOI _ alussa ja lopussa):

_https://d44c955749bf.ngrok.io/sms_

Nyt kaikki chatbotia varten on määritetty. Seuraavassa vaiheessa voimme testata, toimiiko kaikki oikein

Vaihe 5: Testaa sovelluksemme

Testaa sovellustamme
Testaa sovellustamme
Testaa sovellustamme
Testaa sovellustamme
Testaa sovelluksemme
Testaa sovelluksemme

Tässä vaiheessa teemme seuraavan:

  1. Liity bottiimme käyttämällä pääsykoodia
  2. Kokeile sovellustamme

Liity bottiimme käyttämällä pääsykoodia

Tässä projektissa käytämme Twilion Whatsapp Sandbox -numeroa Whatsapp -botillemme. Jokaiselle henkilölle tämä luku on erilainen. Löydät numerosi näin:

  • Kirjaudu sisään Twilio -tilillesi
  • Siirry Twilio -konsoliin -> Whatsapp -osio -> Hiekkalaatikko
  • Näet Twilio Sandbox -numerosi, jossa on seuraava teksti:

Kutsu ystäväsi hiekkalaatikkoosi. Pyydä heitä lähettämään WhatsApp -viesti osoitteeseen:

Whatsappin suojauskäytännön vuoksi kaikkien, jotka haluavat puhua automaattiselle botille Whatsappin kautta, on nimenomaisesti otettava käyttöön koodi. Voit selvittää koodisi katsomalla samasta osiosta kuin Twilio -hiekkalaatikkosi numero ja teksti:

Kun olet hankkinut Twilio Sandbox Whatsapp -numerosi ja valinnaisen koodisi, voit aloittaa botin käytön siirtymällä matkapuhelimeesi ja toimimalla seuraavasti:

  1. Tallenna "Twilio Sandbox Whatsapp -numero" yhteystietoihisi valitsemallasi nimellä (esim. CovBot)
  2. Avaa Whatsapp ja lähetä yhteyshenkilölle seuraava viesti:

liittyä seuraan

Sinun pitäisi nähdä tällainen viesti:

Twilio Sandbox: Kaikki on valmista….

Tämä tarkoittaa, että olet muodostanut yhteyden bottiisi ja valmis kysymään sitä qs

Kokeile sovellustamme:

Jos haluat testata botin eri ominaisuuksia yhteyden muodostamisen jälkeen, lähetä botille seuraava viesti:

Hei

Sinun pitäisi nähdä seuraava teksti:

Tervetuloa CoVbotiin!

Yksinkertainen chatbot, joka voi tarjota uusimmat COVID-19-päivitykset yksinkertaisella, nopealla ja helpolla tavalla. Koska olemme kaikki karanteenissa, botin avulla voidaan ehdottaa hauskoja aktiviteetteja, jotta voimme hyödyntää kotona vietettyä aikaa mahdollisimman tehokkaasti, kun pyrimme pitämään itsemme, ystävät ja perheen turvassa. Toivomme, että pidät siitä ja pidät siitä hyödyllistä! Lähetä 4 aloittaaksesi!

Nyt voit seurata vaihtoehtoa kokeilla botin eri ominaisuuksia.

SE SIITÄ! Whatsapp Chatbot on valmis !!!! Onnittelut

Vaihe 6: Miten se toimii ja parannus tulevaisuudessa:

Kuinka se toimii ja tulevaa parantamista
Kuinka se toimii ja tulevaa parantamista
Kuinka se toimii ja tulevaa parantamista
Kuinka se toimii ja tulevaa parantamista
Kuinka se toimii ja tulevaa parantamista
Kuinka se toimii ja tulevaa parantamista
Kuinka se toimii ja tulevaa parantamista
Kuinka se toimii ja tulevaa parantamista

Tämä osio on tarkoitettu ihmisille, joilla on jonkin verran kokemusta python -ohjelmoinnista. Jos et, voit ohittaa tämän osion

Koodin selitys

Pääsilmukka:

Kun Whatsapp -viesti lähetetään Twilio -numeroosi, Twilio -sovellusliittymä tekee POST -pyynnön määrittämällesi palvelimelle. Palvelin on toteutettu Flask -kehyksen avulla, joten voimme käyttää Flask Request -objektia noutamaan POST -pyynnön aikana vastaanotetut tiedot. Tietojen (tässä tapauksessa numerot) perusteella päätämme, minkä vaihtoehdon käyttäjä on valinnut, ja annamme tarvittavat tiedot

COVID -data, elokuvat ja TV -ohjelmat:

COVID 19, elokuvat ja TV -ohjelmatiedot haetaan sovellusliittymästä. Käytän pyyntöpython -kirjastoa tietojen hankkimiseen ja muuntamiseen sitten JSON -muotoon. Sitten jäsennän vain olennaiset tiedot. Elokuville ja TV -ohjelmille käytin myös satunnaista python -kirjastoa satunnaisen TV -ohjelman ja elokuvan valitsemiseen

Kirjan tiedot

Projektissa käytetty kirjaehdotusalgoritmi on vain web -kaavin. En löytänyt mitään sovellusliittymää, joka antaisi sinulle satunnaisen kirjan, jossa on yksityiskohtia, joten kaavin vain verkkosivuston käyttämällä BeautifulSoup4: ää ja poimin kirjan asiaankuuluvat tiedot lxml -jäsennyksellä

Alivalikon tiedot:

Alivalikoiden toteuttaminen oli hieman hankalampaa kuin muut, koska Whatsapp-viestit ovat kuin tekstiviestejä, jotka ovat tilaton protokolla. Tämän ratkaisemiseksi olen käyttänyt kahta tekniikkaa:

  1. Yleisten muuttujien käyttäminen viestin tilan muistamiseen - Tämä on käytössä vain COVID 19 -vaihtoehdossa. Tässä tilanteessa, kun käyttäjä valitsee "COVID 19 -tila maassani -vaihtoehdon", globaali muuttuja nimeltä epätäydellinen_viesti asetetaan arvoon Tosi ilmoittamaan, että tarvitaan edelleen edellisen vaihtoehdon mukainen viesti. Sitten alussa on tarkistus, joka tarkistaa, onko viesti merkitty epätäydelliseksi, jos oletetaan, että viesti on COVID -datan maan nimi ja välittää tiedot oikealle toiminnolle ja asettaa globaalin muuttujan epätäydellisen viestin arvoksi False
  2. Twilio -evästeiden ja pulloistuntojen käyttäminen - Evästeitä ja pulloistuntoja käytetään "Ehdota karanteenitoimintoa" -alivalikossa tilaisuuden lisäämiseksi, aivan kuten mikä tahansa Internetin verkkosovellus käyttää sitä nykyään, mutta sen sijaan, että muistaisi esimerkiksi käyttäjänimesi tai muistaa kahden numeron välisen muunnoksen. Jos haluat lisätietoja tästä osasta, suosittelen lukemaan tämän mahtavan Twilio -evästeiden oppaan, jonka Twilio -tiimi on kirjoittanut

Tulevat parannukset:

  1. Hyödynnä Python- ja Design Pattern -objektiivisuuntautuneisuutta koodiarkkitehtuurin ja DRYnessin parantamiseksi
  2. Poista globaalimuuttujat
  3. Virheiden käsittelyä voidaan parantaa
  4. Päivitä ngrok -osoite automaattisesti maissin ja Twilio CLI: n avulla
  5. Koodidokumentaatio

Vaihe 7: Viimeiset huomautukset

Toivottavasti pidät tästä projektista. Tämä on ensimmäinen ohjeeni, joten jos jokin asia on epäselvä tai kaipaa lisäselvityksiä, kerro siitä minulle kommenttiosassa, niin voin auttaa sinua. Myös jos teit tämän projektin eri tekniikalla tai ominaisuusluettelolla, jaa kaikki

Suositeltava: