Obsah:
- Zásoby
- Krok 1: Nainstalujte požadovaný software
- Krok 2: Vytvořte si účet Twilio
- Krok 3: Získejte klíč API pro data, filmy a televizní pořady COVID 19
- Krok 4: Připojte Python a Twilio přes Ngrok
- Krok 5: Otestujte naši aplikaci
- Krok 6: Jak to funguje a budoucí zlepšení:
- Krok 7: Závěrečné poznámky
Video: CovBot - chatbot na bázi WhatsApp pro COVID 19 Informace a další: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
CoVbot je jednoduchý a intuitivní chatbot založený na Whatsapp. Hlavní vlastností robota je:
Jednoduchým a intuitivním způsobem vám může poskytnout nejnovější stav COVID-19 ve zvolené zemi.
Kromě toho může robot navrhnout zábavné aktivity, které můžete dělat DOMA, jako například:
- Navrhnout film - film ke shlédnutí ze seznamu 10 nejlepších filmů s krátkým přehledem zápletky a trvání. Protože tento seznam není napevno zakódován v softwaru, vždy vám poskytne nejnovější aktualizace na základě aktuálních trendů.
- Navrhnout televizní pořad - televizní pořad ke sledování z nejpopulárnějších televizních pořadů s krátkým přehledem zápletky a hodnocení. Protože tento seznam není napevno zakódován v softwaru, vždy vám to poskytne nejnovější aktualizace na základě aktuálních trendů.
- Navrhnout knihu - kniha ke čtení ze seznamu nejlepších 10 knih s přehledem a titulním obrázkem knihy.
- Denní tréninky-Toto video je založeno na 7denním tréninkovém plánu poskytovaném tělocvičnou CRANK na jejich účtu Instagram.
Pokud se vám tento Instructable líbí, zvažte prosím jeho hlasování v soutěži autorů prvního bodu. (a ano, toto je můj první pokyn, takže pokud něco není jasné nebo potřebuje další vysvětlení, dejte mi prosím vědět v sekci komentáře a já vám mohu pomoci:)
Zásoby
Tento projekt je výhradně softwarovým projektem, takže tento projekt může dokončit kdokoli, kdo se bude řídit tímto návodem pomocí přenosného/stolního počítače/macOS/Linux a internetu. Na konci také zahrnu podrobnou část, abych podrobněji vysvětlil kód/proces pro lidi s určitou zkušeností s programováním. Vezměte prosím na vědomí, že to není nutné k dokončení projektu
Úroveň obtížnosti projektu:
Není to moc snadné, ale ani moc těžké
Hardware, který použijeme:
- Notebook/stolní počítač se systémem Windows/macOS/Linux.
- Mobilní telefon s nainstalovaným WhatsApp Messenger
Software, který budeme používat:
- Programovací jazyk Python
- ngrok - je nástroj, který nám umožňuje přístup k serveru mimo naši síť
- Editor podle vašeho výběru: (např. Poznámkový blok ++, Sublime Text, Vim atd.)
Krok 1: Nainstalujte požadovaný software
V tomto kroku provedeme následující:
- Nainstalujte Python> 3.6 a otestujte jej
- Nainstalujte požadované knihovny pythonu
- Nainstalujte ngrok
Pokud máte obě aplikace nainstalované, můžete tento krok přeskočit
Nainstalujte Python:
Celá kódová základna backendu/serveru pro tento projekt je napsána v Pythonu 3.6. Abychom mohli spouštět naše aplikace, musíme mít v počítači nainstalován Python> 3.6. Postupujte podle pokynů CoreySchafer, jak nainstalovat python pro Windows a macOS
Můžete otestovat, zda je vše správně nainstalováno, zadáním následujícího příkazu do cmd/Terminal:
python -c 'print (f "Hello World")'
Pokud bylo vše správně nainstalováno, měl by být Hello World vytištěn na obrazovce. Pokud se vám zobrazí neplatná chyba syntaxe, máte nainstalovanou špatnou verzi pythonu. Nainstalujte si verzi pythonu> = 3.6
Nainstalujte požadované knihovny pythonu pomocí pip:
Aby náš software fungoval, použijeme následující knihovny pythonu:
- Flask - Toto je rámec pro náš server
- Twilio - Tato knihovna poskytuje způsob, jakým může python komunikovat s WhatsApp
- Požadavek - Tato knihovna slouží k vyžádání dat z rozhraní API
- BeautifulSoup4 - Tato knihovna slouží k oškrabávání informací z webových stránek
- lxml - Tato knihovna se používá v kombinaci s aplikací BeautifulSoup k extrahování příslušných informací z webových stránek
Chcete -li nainstalovat tyto knihovny, můžete provést následující:
Otevřete CMD/Terminal a zadejte následující příkaz:
pip install flask, twilio, request, beautifulsoup4, lxml
NEBO
Stáhněte si soubor requirements.txt a otevřete terminál v adresáři, kde je soubor, a zadejte:
pip install -r requirements.txt
Nainstalujte ngrok
ngrok vám umožňuje vystavit server běžící na vašem místním počítači internetu. Stačí říct ngrok, na jakém portu váš server poslouchá.
Podle pokynů na webu ngrok nainstalujte ngrok pro operační systém, který používáte.
Tip: Krok 3 průvodce není pro tento projekt relevantní, lze jej tedy přeskočit
Krok 2: Vytvořte si účet Twilio
V tomto kroku provedeme následující:
- Zaregistrujte si účet Twilio
- Rychlý úvod do užitečných sekcí na konzole Twilio
Přihlásit se:
V tomto projektu budeme používat rozhraní Twilio Whatsapp API k připojení našeho programu python k Whatsapp. Abychom mohli používat Twilio API, musíme si nejprve vytvořit účet na oficiálních webových stránkách Twilio. Na zkušební účet Twilio nabízí bezplatný kredit 15 USD, který můžeme použít.
Rychlý úvod:
Jakmile si vytvoříte účet, nejzajímavější sekce konzoly Twilio pro tento projekt jsou:
Hlavní panel - Na hlavním panelu můžete vidět částku kreditu, který vám ještě zbývá, můžete upravit název projektu a změnit programovací jazyk
Podsekce Whatsapp v sekci Programovatelné SMS - V sekci Whatsapp v konzole můžete získat přístup ke kódu pro připojení robota, k počtu Whatsapp, které v projektu použijeme k rozhovoru s naším robotem, a také k nastavení webhooku. Další podrobnosti o všech těchto budou popsány v dalších krocích
Krok 3: Získejte klíč API pro data, filmy a televizní pořady COVID 19
Klíč API nebo klíč rozhraní pro programování aplikací je kód, který je předáván počítačovými aplikacemi. Program nebo aplikace pak zavolá rozhraní API nebo rozhraní pro programování aplikací, aby identifikovala svého uživatele, vývojáře nebo program pro volání na web.
K získávání informací o nejnovějším stavu COVID 19, filmech a televizních pořadech používáme API. Pro přístup k API potřebujete klíč, který je pro každého uživatele osobní. V tomto kroku získáme tyto klíče
Získejte klíč API pro data COVID 19:
- Přihlaste se nebo si zaregistrujte svůj účet RapidAPI.
- Poté přejděte na COVID-19 API od Gramzivi
- Přejděte dolů do sekce „Parametry záhlaví“konzoly API.
- Váš klíč API by měl být viditelný v poli „X-RapidAPI-Key“.
Získejte klíč API pro data filmů a televizních pořadů:
- Přihlaste se nebo si zaregistrujte svůj účet TMDB
- Poté přejděte do svého nastavení - API
- Přejděte dolů do sekce „Klíč API (ověření v3)“
- Pod ním by měl být viditelný váš klíč API
Vytvořte soubor „config.py“
Nyní vytvoříme soubor config.py pro uložení našich klíčů API. Vytvoříme pro ně samostatný soubor, protože klíče API jsou důvěrné informace a pokud sdílíte svůj projekt, neměli byste sdílet svůj klíč API.
- Vytvořte nový adresář projektu
- V nově vytvořeném adresáři vytvořte nový soubor s názvem „config.py“
- Upravte tento soubor editorem podle vašeho výběru (Sublime, Notepad ++) a zkopírujte a nahraďte následující text příslušnými informacemi získanými v předchozím kroku:
session_key = "tajemství" #To není bezpečné.. ale jen pro test je to v pořádku
rapid_api_key = "" api_key = ""
Uložte soubor
Krok 4: Připojte Python a Twilio přes Ngrok
V tomto kroku provedeme následující:
- Stáhněte si zdrojový kód
- Spusťte program a přes ngrok přepošlete místní IP na veřejnou adresu, abychom na ni mohli podat požadavek
- Nakonfigurujte náš účet Twilio, aby předal požadavek na náš server
Stáhněte si zdrojový kód pro robota:
Stáhněte si přiložený soubor v tomto nastavení do adresáře projektu vytvořeného v posledním kroku.
Spustit program:
Přejděte do adresáře zdrojového kódu v CMD/terminálu a spusťte následující příkaz:
python server_main.py
Ujistěte se, že máte soubor „config.py“, který jsme vytvořili v posledním kroku, jinak se zobrazí chyba
Výstup by měl být něco takového:
* Aplikace v baňce „server_main“(opožděné načítání)
* Prostředí: výroba VAROVÁNÍ: Toto je vývojový server. Nepoužívejte jej v produkčním nasazení. Místo toho použijte produkční server WSGI. * Režim ladění: zapnuto * Spuštěno na https://127.0.0.1:5000/ (pro ukončení stiskněte CTRL+C) * Restartování pomocí statu * Debugger je aktivní! * PIN ladicího programu: 740-257-236
To znamená, že váš server běží správně ve vaší místní síti na portu 5000. Aby byl tento server přístupný mimo vaši místní síť, použijeme ngrok
Předejte místní IP na veřejnou adresu prostřednictvím ngrok
Přejděte do adresáře, kam jste si stáhli ngrok přes CMD/terminál, a spusťte následující příkaz:
ngrok http 5000
Výstup by měl být něco takového:
ngrok od @inconshreveable (Ctrl+C pro ukončení)
Stav relace online Relace vyprší 7 hodin, 59 minut Verze 2.3.35 Region Spojené státy americké (nás) Webové rozhraní https://127.0.0.1:4040 Přesměrování _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Přesměrování _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Connections ttl opn rt1 rt5 p50 p90 0 0 0,00 0,00 0,00 0,00
Zkopírujte odkaz HTTP z části „Forwading“(jen do ngrok.io). (V tomto příkladu jsem přidal _, abych se vyhnul instrukcím, aby jej zachytil jako odkaz)
Konfigurujte Twilio tak, aby používalo novou adresu k přesměrování požadavku serveru na:
Nyní, když jsme úspěšně předali náš server k veřejnému přístupu, musíme Twilio nakonfigurovat tak, aby při podání požadavku pomocí API Twilio Whatsapp požadavek přeposlal na náš server. K tomu musíme udělat následující:
- Přejděte do sekce Whatsapp na konzole Twilio
- Přejděte do podsekce „Sanbox“
- Do textového pole „KDYŽ přijde ZPRÁVA“vložte odkaz HTTP z ngroku zkopírovaný s příponou /sms (NEKOPÍROVAT _ na začátku a na konci):
_https://d44c955749bf.ngrok.io/sms_
Nyní je vše pro chatbota nastaveno. V dalším kroku můžeme vyzkoušet, zda vše funguje správně
Krok 5: Otestujte naši aplikaci
V tomto kroku provedeme následující:
- Připojte se k našemu robotovi pomocí přístupového kódu
- Vyzkoušejte naši aplikaci
Připojte se k našemu robotovi pomocí přístupového kódu
V tomto projektu použijeme Twilio's Whatsapp Sandbox Number pro našeho robota Whatsapp. U každé osoby bude toto číslo jiné. Své číslo najdete takto:
- Přihlaste se ke svému účtu Twilio
- Přejděte na Twilio Console -> Sekce Whatsapp -> Sandbox
- Zobrazí se vaše číslo Twilio Sandbox s následujícím textem:
Pozvěte své přátele do svého Sandboxu. Požádejte je, aby poslali zprávu WhatsApp na:
Kvůli zásadám zabezpečení Whatsapp se každý, kdo chce mluvit s automatizovaným robotem přes Whatsapp, musí výslovně přihlásit pomocí kódu. Svůj kód můžete zjistit tak, že se podíváte do stejné sekce jako číslo vašeho sandboxu Twilio s textem:
Poté, co jste získali své Whatsapp číslo Twilio Sandbox a přihlašovací kód, začněte robota používat na svém mobilním telefonu a proveďte následující:
- Uložte si „Whatsapp číslo Twilio Sandbox“ke svému kontaktu s výběrem jména (např. CovBot)
- Otevřete Whatsapp a pošlete tomuto kontaktu následující zprávu:
připojit
Měli byste vidět tuto zprávu:
Twilio Sandbox: Vše je připraveno …
To znamená, že jste se spojili se svým robotem a jste připraveni se ho zeptat
Vyzkoušejte naši aplikaci:
Chcete -li otestovat různé funkce svého robota po připojení, odešlete robotovi následující zprávu:
Ahoj
Měli byste vidět následující text:
Vítejte v CoVbot!
Jednoduchý chatbot, který může poskytovat nejnovější aktualizace COVID-19 jednoduchým, rychlým a snadným způsobem. Jelikož jsme všichni v karanténě, lze pomocí robota navrhnout nějaké zábavné aktivity, abychom si co nejvíce užili čas doma, protože se snažíme udržet sebe, přátele a rodinu v bezpečí. Doufáme, že se vám bude líbit a bude pro vás užitečné! Chcete -li začít, pošlete 4!
Nyní můžete sledovat možnost vyzkoušet si různé funkce robota.
A JE TO! Váš Whatsapp Chatbot je připraven !!!! Gratulujeme
Krok 6: Jak to funguje a budoucí zlepšení:
Tato část je pro lidi, kteří mají nějaké zkušenosti s programováním pythonu. Pokud ne, můžete tuto sekci přeskočit
Vysvětlení kódu
Hlavní smyčka:
Když je na vaše číslo Twilio odeslána zpráva Whatsapp, API Twilio vytvoří požadavek POST na váš server, který jste zadali. Server je implementován pomocí rámce Flask, a tak můžeme použít objekt Flask Request k načtení dat přijatých během požadavku POST. Na základě údajů (v tomto případě čísel) rozhodneme, jakou možnost uživatel zvolil, a poskytneme příslušné informace
Data a filmy a televizní pořady COVID:
Data COVID 19, filmy a televizní pořady se načítají z API. K získání dat a jejich převedení do formátu JSON používám knihovnu python požadavku. Poté pouze analyzuji příslušné informace. U filmů a televizních pořadů jsem také použil knihovnu náhodných pythonů k výběru náhodného televizního pořadu a filmu
Podrobnosti o knize
Algoritmus návrhu knihy použitý v projektu je pouze webová škrabka. Nemohl jsem najít žádné API, které by vám poskytlo náhodnou knihu s podrobnostmi, a tak jsem oškrábal web pomocí aplikace BeautifulSoup4 a pomocí analyzátoru lxml extrahoval příslušné informace o knize
Podrobnosti podnabídky:
Implementace dílčích nabídek byla o něco složitější než ostatní, protože zprávy Whatsapp jsou jako SMS, což je protokol bez státní příslušnosti. K vyřešení tohoto problému jsem použil dvě techniky:
- Použití globálních proměnných k zapamatování stavu zprávy - Toto je implementováno pouze pro dílčí možnost COVID 19. V tomto případě, když uživatel zvolí možnost „Stav COVID 19 v mé zemi“, je globální proměnná s názvem neúplná_zpráva nastavena na hodnotu True, což znamená, že je stále zapotřebí další zpráva na základě předchozí možnosti. Pak je na začátku kontrola, která zkontroluje, zda je zpráva označena jako neúplná, pokud ano, předpokládá, že zpráva je název země pro data COVID a předá informace správné funkci a nastaví neúplnou zprávu globální proměnné na False
- Používání cookies Twilio a relací v baňkách - Cookies a relace v baňkách se používají v podnabídce „Navrhnout karanténní aktivitu“k implementaci aktuálnosti, stejně jako ji dnes používá jakákoli webová aplikace na internetu, ale místo toho, aby si pamatovala věci jako vaše uživatelské jméno nebo si to zapamatujte převod mezi dvěma čísly. Pokud máte rádi více informací o této části, doporučil jsem si přečíst tuto úžasnou příručku o souborech cookie Twilio napsaných týmem Twilio
Budoucí vylepšení:
- Využijte Object Orientedness of Python a Design Patterns ke zlepšení architektury kódu a DRYness
- Odebrat globální proměnné
- Zpracování chyb lze zlepšit
- Automaticky aktualizujte adresu ngrok pomocí kukuřice a Twilio CLI
- Dokumentace kódu
Krok 7: Závěrečné poznámky
Doufám, že se vám tento projekt líbí. Toto je můj první pokyn, takže pokud něco není jasné nebo potřebuje další vysvětlení, dejte mi vědět v sekci komentáře a já vám mohu pomoci. Pokud jste tento projekt vytvořili pomocí jiné techniky nebo seznamu funkcí, sdílejte jej všichni
Doporučuje:
Další informace o akceleraci a ubidotech, využití Arduino YÚN: 6 kroků
Níže jsou uvedeny údaje o zrychlení a ubidotech, použití Arduino YÚN: Arduino Y Ú Není základna mikrokontroléru v ATmega32u4 a Atheros AR9331. Další možnosti a možnosti zpracování jednoho ze základních operačních systémů Linux OpenWrt, El Arduino Y Ú N cuenta with any version llamada OpenWrt-Yun
Automatické měření teploty a hlasové informace: 5 kroků (s obrázky)
Automatické měření teploty a hlasu: Poslední den celý svět bojuje s virem Covid19. První kontrola ovlivněných osob (nebo podezřelých z ovlivnění) je měření tělesné teploty. Tento projekt je tedy vytvořen pro model, který dokáže automaticky měřit tělesnou teplotu a informovat pomocí
Bezdotykový systém automatického mytí rukou na bázi Raspberry Pi pro Covid-19: 4 kroky
Bezdotykový systém automatického mytí rukou na bázi Raspberry Pi pro Covid-19: Jedná se o jednoduchý systém mytí rukou využívající snímače Pir a desku Raspberry Pi. Tato aplikace je určena hlavně pro hygienické účely. Model lze umístit na veřejná místa, nemocnice, nákupní centra atd
Jak exportovat nejdůležitější informace Kindle (včetně osobních dokumentů): 6 kroků
Jak exportovat Kindle Highlights (včetně osobních dokumentů): Toto byl původně můj blogový příspěvek. Uvědomil jsem si, že píšu spoustu příspěvků pro kutily, které jsou vhodné pro vytváření instrukcí, a tak jsem si myslel, že příspěvky zveřejním zde. Původní příspěvky si můžete přečíst na mém blogu zde. Instruktivní mají včely
Jak získat hudbu z TÉMĚŘ JAKÉKOLI stránky (Haha) (Dokud ji můžete slyšet, můžete ji získat Dobře, pokud je vložena do formátu Flash, který možná nebudete schopni) UPRAVENO !!!!! Přidané informace: 4 kroky
Jak získat hudbu z TÉMĚŘ JAKÉKOLI stránky (Haha) (Dokud ji můžete slyšet, můžete ji získat … Dobře, pokud je vložena do formátu Flash, který možná nebudete schopni) UPRAVENO !!!!! Přidané informace: pokud někdy přejdete na webovou stránku a přehraje skladbu, která se vám líbí a kterou chcete, pak je zde návod, který pro vás není moje chyba, pokud něco pokazíte (jediný způsob, jak k tomu dojde, je, pokud začnete bezdůvodně mazat věci ) dokázal jsem získat hudbu pro