Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Asenna vaadittu ohjelmisto
- Vaihe 2: Luo Twilio -tili
- Vaihe 3: Hanki API -avain COVID 19 -datalle, elokuville ja TV -ohjelmille
- Vaihe 4: Yhdistä Python ja Twilio Via Ngrokin kautta
- Vaihe 5: Testaa sovelluksemme
- Vaihe 6: Miten se toimii ja parannus tulevaisuudessa:
- Vaihe 7: Viimeiset huomautukset
Video: CovBot - WhatsApp -pohjainen Chatbot COVID 19 -informaatioon ja muuta: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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:
- 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.
- 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.
- Ehdota kirjaa - Kirja, joka luetaan kymmenen parhaan kirjaluettelon joukosta.
- 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:
- Python -ohjelmointikieli
- ngrok - työkalu, jonka avulla voimme käyttää palvelinta verkon ulkopuolelta
- Valitsemasi editori: (esim. Notepad ++, Sublime Text, Vim jne.)
Vaihe 1: Asenna vaadittu ohjelmisto
Tässä vaiheessa teemme seuraavaa:
- Asenna Python> 3.6 ja testaa se
- Asenna tarvittavat python -kirjastot
- 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:
- Pullo - Tämä on palvelimemme kehys
- Twilio - Tämä kirjasto tarjoaa tavan pythonille kommunikoida WhatsAppin kanssa
- Pyyntö - Tätä kirjastoa käytetään tietojen pyytämiseen sovellusliittymistä
- BeautifulSoup4 - Tätä kirjastoa käytetään tietojen keräämiseen verkkosivustoilta
- 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:
- Rekisteröidy Twilio -tilille
- 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
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:
- Lataa lähdekoodi
- Suorita ohjelma ja välitä paikallinen IP julkiseen osoitteeseen ngrokin kautta, jotta voimme tehdä pyynnön sille
- 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:
- Siirry Twilio -konsolin Whatsapp -osioon
- Siirry Sanbox -osioon
- 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
Tässä vaiheessa teemme seuraavan:
- Liity bottiimme käyttämällä pääsykoodia
- 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:
- Tallenna "Twilio Sandbox Whatsapp -numero" yhteystietoihisi valitsemallasi nimellä (esim. CovBot)
- 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:
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:
- 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
- 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:
- Hyödynnä Python- ja Design Pattern -objektiivisuuntautuneisuutta koodiarkkitehtuurin ja DRYnessin parantamiseksi
- Poista globaalimuuttujat
- Virheiden käsittelyä voidaan parantaa
- Päivitä ngrok -osoite automaattisesti maissin ja Twilio CLI: n avulla
- 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:
Älykäs moottoripyörän HUD-prototyyppi (vaiheittainen navigointi ja paljon muuta): 9 vaihetta
Älykäs moottoripyörän HUD-prototyyppi (vaiheittainen navigointi ja paljon muuta): Hei! Tämä Instructables on tarina siitä, miten suunnittelin ja rakensin HUD (Heads-Up Display) -alustan, joka on suunniteltu asennettavaksi moottoripyöräkypäriin. Se on kirjoitettu "kartat" -kilpailun yhteydessä. Valitettavasti en pystynyt lopettamaan kokonaan
Muuta Raspberry Pi Bluetooth -majakoksi: 4 vaihetta
Muuta Raspberry Pi Bluetooth -majakoksi: Bluetooth on yksi innovatiivisista tekniikoista tiedonsiirtoon langattomasti, kodin automaatiojärjestelmien rakentamiseen, muiden laitteiden hallintaan jne. Tässä ohjeessa yritän muuttaa Raspberry Pi: n Bluetooth -majakoksi. Vaatimukset Raspberry PiBleuIO (A Bl
Muuta HP49G-graafinen laskin -intervalometriksi Canon Eos: 4 vaihetta
Käännä HP49G-graafinen laskin -intervalometriksi Canon Eos: Disparador autom à /photos/cacholongo/Tarvittavat komponentit: 2n3904, Resistencia 2,2k; Diodo 1n4001, Cable de conexi à ƒ  & su
Johdanto - Muuta Raspberry Pi GPS -seurantapalvelimeksi: 12 vaihetta
Johdanto - Muuta Raspberry Pi GPS -seurantapalvelimeksi: Tässä oppaassa näytän sinulle, miten Traccarin GPS -seurantaohjelmisto asennetaan Raspberry Pi -laitteeseen, joka vastaanottaa tietoja yhteensopivista laitteista Internetin välityksellä ja kirjaa sijaintinsa kartalle reaaliajassa seuranta ja myös toiston seuranta
Eve, Arduino Chatbot: 14 vaihetta (kuvilla)
Eve, Arduino Chatbot: Hei DIYrs, onko ollut tapauksia, joissa olet todella halunnut jakaa tunteesi jonkun kanssa, eikä luotettavaa ollut lähellä? Nykypäivän kiireisessä maailmassa tämä on yleinen esimerkki. No, chatbot voi auttaa sinua tuntemaan olosi paremmaksi. Ja se johtaa