Obsah:

CovBot - chatbot na bázi WhatsApp pro COVID 19 Informace a další: 7 kroků
CovBot - chatbot na bázi WhatsApp pro COVID 19 Informace a další: 7 kroků

Video: CovBot - chatbot na bázi WhatsApp pro COVID 19 Informace a další: 7 kroků

Video: CovBot - chatbot na bázi WhatsApp pro COVID 19 Informace a další: 7 kroků
Video: ПРИЛОЖЕНИЕ ДЛЯ ПЕРЕВОДА СУБТИТРОВ ВИДЕО НА YOUTUBE + ОЗВУЧКА 2024, Listopad
Anonim
Image
Image
Vytvořte si účet Twilio
Vytvořte si účet Twilio

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:

  1. 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ů.
  2. 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ů.
  3. Navrhnout knihu - kniha ke čtení ze seznamu nejlepších 10 knih s přehledem a titulním obrázkem knihy.
  4. 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:

  1. Programovací jazyk Python
  2. ngrok - je nástroj, který nám umožňuje přístup k serveru mimo naši síť
  3. Editor podle vašeho výběru: (např. Poznámkový blok ++, Sublime Text, Vim atd.)

Krok 1: Nainstalujte požadovaný software

Image
Image

V tomto kroku provedeme následující:

  1. Nainstalujte Python> 3.6 a otestujte jej
  2. Nainstalujte požadované knihovny pythonu
  3. 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:

  1. Flask - Toto je rámec pro náš server
  2. Twilio - Tato knihovna poskytuje způsob, jakým může python komunikovat s WhatsApp
  3. Požadavek - Tato knihovna slouží k vyžádání dat z rozhraní API
  4. BeautifulSoup4 - Tato knihovna slouží k oškrabávání informací z webových stránek
  5. 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í:

  1. Zaregistrujte si účet Twilio
  2. 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

Získejte klíč API pro data, filmy a televizní pořady COVID 19
Získejte klíč API pro data, filmy a televizní pořady COVID 19
Získejte klíč API pro data, filmy a televizní pořady COVID 19
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í:

  1. Stáhněte si zdrojový kód
  2. Spusťte program a přes ngrok přepošlete místní IP na veřejnou adresu, abychom na ni mohli podat požadavek
  3. 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í:

  1. Přejděte do sekce Whatsapp na konzole Twilio
  2. Přejděte do podsekce „Sanbox“
  3. 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

Otestujte naši aplikaci
Otestujte naši aplikaci
Otestujte naši aplikaci
Otestujte naši aplikaci
Otestujte naši aplikaci
Otestujte naši aplikaci

V tomto kroku provedeme následující:

  1. Připojte se k našemu robotovi pomocí přístupového kódu
  2. 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í:

  1. Uložte si „Whatsapp číslo Twilio Sandbox“ke svému kontaktu s výběrem jména (např. CovBot)
  2. 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í:

Jak to funguje a budoucí zlepšení
Jak to funguje a budoucí zlepšení
Jak to funguje a budoucí zlepšení
Jak to funguje a budoucí zlepšení
Jak to funguje a budoucí zlepšení
Jak to funguje a budoucí zlepšení
Jak to funguje a budoucí zlepšení
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:

  1. 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
  2. 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í:

  1. Využijte Object Orientedness of Python a Design Patterns ke zlepšení architektury kódu a DRYness
  2. Odebrat globální proměnné
  3. Zpracování chyb lze zlepšit
  4. Automaticky aktualizujte adresu ngrok pomocí kukuřice a Twilio CLI
  5. 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: