CovBot - Chatbot Berasaskan WhatsApp untuk Maklumat & Lagi COVID 19: 7 Langkah
CovBot - Chatbot Berasaskan WhatsApp untuk Maklumat & Lagi COVID 19: 7 Langkah
Anonim
Image
Image
Buat Akaun Twilio
Buat Akaun Twilio

CoVbot adalah chatbot berasaskan Whatsapp yang ringkas dan intuitif. Ciri utama bot adalah:

Ia dapat memberi anda status terbaru COVID-19 di negara pilihan dengan cara yang mudah dan intuitif.

Selain itu, bot boleh mencadangkan aktiviti yang menyeronokkan untuk dilakukan di RUMAH seperti:

  1. Cadangkan Filem - Filem untuk ditonton dari senarai 10 filem Teratas, dengan gambaran keseluruhan pendek mengenai plot dan tempohnya. Oleh kerana senarai ini tidak dikodekan dalam perisian, ini akan selalu memberi anda kemas kini terkini berdasarkan trend semasa.
  2. Cadangkan Rancangan TV - Rancangan tv untuk ditonton dari rancangan TV yang paling popular, dengan gambaran keseluruhan ringkas mengenai plot dan penilaian. Oleh kerana senarai ini tidak dikodekan dalam perisian, ini akan selalu memberi anda kemas kini terkini berdasarkan trend semasa.
  3. Cadangkan Buku - Buku untuk dibaca dari Senarai Buku 10 Teratas, dengan gambar kabur dan kulit depan buku.
  4. Latihan harian - Ini berdasarkan video berdasarkan jadual latihan 7 hari yang disediakan oleh CRANK gym di Akaun Instagram mereka.

Sekiranya anda menikmati Instructable ini, pertimbangkan untuk memilihnya dalam Peraduan Pengarang Item Pertama. (dan ya ini adalah arahan pertama saya jadi jika ada sesuatu yang tidak jelas atau memerlukan penjelasan lebih lanjut, beritahu saya di bahagian komen dan saya dapat membantu anda:)

Bekalan

Projek ini adalah projek berasaskan perisian semata-mata, jadi sesiapa yang mengikuti instruksi ini dengan komputer riba / PC desktop / macOS / Linux dan internet dapat menyelesaikan projek ini. Saya juga akan memasukkan bahagian terperinci pada akhir untuk menjelaskan kod / proses dengan lebih terperinci bagi orang yang mempunyai pengalaman pengaturcaraan, Harap maklum bahawa ini tidak diperlukan untuk menyelesaikan projek

Tahap Kesukaran Projek:

Tidak terlalu mudah, tetapi tidak terlalu sukar

Perkakasan yang akan kami gunakan:

  • Komputer riba / desktop yang menjalankan Windows / macOS / Linux.
  • Telefon bimbit dengan WhatsApp Messenger dipasang

Perisian yang akan kami gunakan:

  1. Bahasa Pengaturcaraan Python
  2. ngrok - adalah alat yang digunakan untuk membolehkan kami mengakses pelayan kami dari luar rangkaian kami
  3. Editor pilihan anda: (mis. Notepad ++, Sublime Text, Vim dll)

Langkah 1: Pasang Perisian yang Diperlukan

Image
Image

Dalam langkah ini kita akan melakukan perkara berikut:

  1. Pasang Python> 3.6 dan uji
  2. Pasang pustaka python yang diperlukan
  3. Pasang ngrok

Sekiranya kedua-dua aplikasi dipasang, anda boleh melangkau langkah ini

Pasang Python:

Seluruh pangkalan data backend / pelayan untuk projek ini ditulis dalam Python 3.6. Oleh itu untuk menjalankan aplikasi kita perlu memasang Python> 3.6 pada komputer kita. Ikuti tutorial oleh CoreySchafer mengenai cara memasang python untuk Windows dan macOS

Anda boleh menguji semuanya dipasang dengan betul dengan menaip yang berikut di cmd / Terminal:

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

Sekiranya semuanya dipasang dengan betul, maka Hello World harus dicetak di skrin. Sekiranya anda mendapat ralat sintaks yang tidak betul, maka anda memasang python versi yang salah. Pasang versi python> = 3.6

Pasang perpustakaan python yang diperlukan menggunakan pip:

Kami akan menggunakan perpustakaan python berikut untuk menjadikan perisian kami berfungsi:

  1. Flask - Ini adalah kerangka untuk pelayan kami
  2. Twilio - Perpustakaan ini menyediakan cara untuk python berkomunikasi dengan WhatsApp
  3. Permintaan - Perpustakaan ini digunakan untuk meminta data dari API
  4. BeautifulSoup4 - Perpustakaan ini digunakan untuk mengikis maklumat dari laman web
  5. lxml - Perpustakaan ini digunakan bersama dengan BeautifulSoup untuk mengekstrak maklumat yang berkaitan dari laman web

Untuk memasang perpustakaan ini, anda boleh melakukan perkara berikut:

Buka CMD / Terminal dan ketik arahan berikut:

pip pasang termos, twilio, request, beautifulsoup4, lxml

ATAU

Muat turun fail requirements.txt dan buka terminal di direktori di mana failnya dan ketik:

memasang pip -r syarat.txt

Pasang ngrok

ngrok membolehkan anda mendedahkan pelayan yang menggunakan mesin tempatan anda ke internet. Cukup beritahu ngrok port mana yang didengarkan oleh pelayan anda.

Ikuti panduan di laman web ngrok untuk memasang ngrok untuk sistem operasi yang anda gunakan.

Petua: Langkah 3 panduan tidak relevan untuk projek ini sehingga boleh dilangkau

Langkah 2: Buat Akaun Twilio

Dalam langkah ini kita akan melakukan perkara berikut:

  1. Mendaftar untuk Akaun Twilio
  2. Pengenalan Pantas untuk bahagian berguna di Twilio's Console

Daftar:

Dalam projek ini, kami akan menggunakan Twilio Whatsapp API untuk menghubungkan program python kami ke Whatsapp. Untuk dapat menggunakan Twilio API, pertama-tama kita perlu membuat akaun di laman web rasmi Twilio. Untuk akaun percubaan Twilio menawarkan kredit percuma $ 15 untuk kita gunakan.

Pengenalan Pantas:

Setelah anda membuat akaun, bahagian konsol Twilio yang paling menarik untuk projek ini adalah:

Papan Pemuka - Dari papan pemuka, anda dapat melihat jumlah kredit yang masih ada, anda dapat mengedit nama projek anda dan menukar bahasa pengaturcaraan

Subseksyen Whatsapp di bahagian SMS yang Dapat Diprogramkan - Dari bahagian Whatsapp pada konsol, anda boleh mendapatkan akses ke kod penyertaan untuk bot, jumlah Whatsapp yang akan kami gunakan dalam projek untuk bercakap dengan bot kami dan juga penyiapan webhook. Maklumat lebih lanjut mengenai semua ini akan dijelaskan dalam langkah seterusnya

Langkah 3: Dapatkan Kunci API untuk Data, Filem dan Rancangan TV COVID 19

Dapatkan Kunci API untuk Data, Filem dan Rancangan TV COVID 19
Dapatkan Kunci API untuk Data, Filem dan Rancangan TV COVID 19
Dapatkan Kunci API untuk Data, Filem dan Rancangan TV COVID 19
Dapatkan Kunci API untuk Data, Filem dan Rancangan TV COVID 19

Kunci API atau kunci antara muka pengaturcaraan aplikasi adalah kod yang diteruskan oleh aplikasi komputer. Program atau aplikasi kemudian memanggil API atau antara muka pengaturcaraan aplikasi untuk mengenal pasti pengguna, pembangun atau program panggilan ke laman web.

Kami menggunakan API untuk mendapatkan maklumat mengenai Status, Filem dan Rancangan TV COVID 19 terkini. Untuk mengakses API, anda memerlukan kunci yang bersifat peribadi bagi setiap pengguna. Dalam langkah ini, kita akan mendapat kunci ini

Dapatkan Kunci API untuk Data COVID 19:

  • Log masuk atau daftar ke akaun RapidAPI anda.
  • Selepas itu pergi ke COVID-19 API oleh Gramzivi
  • Tatal ke bawah ke bahagian "Parameter Header" pada konsol API.
  • Kunci API anda harus kelihatan di medan "Kunci X-RapidAPI".

Dapatkan Kunci API untuk filem dan data rancangan tv:

  • Log masuk atau daftar untuk akaun TMDB anda
  • Selepas itu pergi ke tetapan anda - API
  • Tatal ke bawah ke bahagian "Kunci API (pengesahan v3)"
  • Kunci API anda mesti kelihatan di bawahnya

Buat fail "config.py"

Kami sekarang akan membuat fail config.py untuk menyimpan kunci API kami. Kami membuat fail yang berasingan untuk ini, kerana kunci API adalah maklumat sulit dan jika anda berkongsi projek anda, anda tidak seharusnya berkongsi kunci API anda.

  • Buat direktori projek baru
  • Di dalam direktori yang baru dibuat, buat fail baru yang disebut "config.py"
  • Edit fail ini dengan editor pilihan anda (Sublime, Notepad ++) dan salin dan ganti teks berikut dengan maklumat yang relevan yang diperoleh pada langkah sebelumnya:

session_key = "rahsia" #Ini tidak selamat.. tetapi hanya untuk ujian, tidak mengapa

cepat_api_key = "" api_key = ""

Simpan fail

Langkah 4: Sambungkan Python dan Twilio Via Ngrok

Dalam langkah ini kita akan melakukan perkara berikut:

  1. Muat turun kod sumber
  2. Jalankan program dan teruskan IP tempatan ke alamat umum melalui ngrok sehingga kami dapat mengajukan permintaan kepadanya
  3. Konfigurasikan akaun Twilio kami untuk meneruskan permintaan ke pelayan kami

Muat turun kod sumber untuk bot:

Muat turun semua fail yang dilampirkan dalam persediaan ini ke dalam direktori projek yang dibuat pada langkah terakhir.

Jalankan program:

Pergi ke direktori kod sumber di CMD / terminal dan laksanakan perintah berikut:

pelayan python_main.py

Pastikan mempunyai "config.py" yang kita buat pada langkah terakhir, jika tidak, anda akan mendapat ralat

Hasilnya mestilah seperti ini:

* Melayan aplikasi Flask "server_main" (pemalas malas)

* Persekitaran: pengeluaran PERINGATAN: Ini adalah pelayan pembangunan. Jangan menggunakannya dalam pengeluaran pengeluaran. Sebagai gantinya, gunakan pelayan WSGI pengeluaran. * Mod debug: hidup * Berjalan pada https://127.0.0.1:5000/ (Tekan CTRL + C untuk berhenti) * Mulakan semula dengan stat * Debugger aktif! * PIN Debugger: 740-257-236

Ini bermaksud pelayan anda berjalan dengan betul di rangkaian tempatan anda di port 5000. Untuk menjadikan pelayan ini dapat diakses dari luar rangkaian tempatan anda, kami akan menggunakan ngrok

Majukan IP tempatan ke alamat awam melalui ngrok

Pergi ke direktori di mana anda memuat turun ngrok melalui CMD / terminal dan laksanakan perintah berikut:

ngrok http 5000

Hasilnya mestilah seperti ini:

ngrok oleh @inconshreveable (Ctrl + C untuk berhenti)

Status Sesi dalam talian Sesi Tamat 7 jam, 59 minit Versi 2.3.35 Wilayah Amerika Syarikat (kami) Antaramuka Web https://127.0.0.1:4040 Meneruskan _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Memajukan _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Sambungan ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00

Salin pautan HTTP dari bahagian "Forwading" (hanya sehingga ngrok.io). (Saya telah menambahkan _ dalam contoh ini untuk mengelakkan arahan memintasnya sebagai pautan)

Konfigurasikan Twilio untuk menggunakan alamat baru untuk meneruskan permintaan pelayan ke:

Setelah berjaya menghantar pelayan kami untuk diakses secara terbuka, kami perlu mengkonfigurasi Twilio sehingga apabila permintaan dibuat menggunakan API Whatsapp Twilio kami meneruskan permintaan tersebut ke pelayan kami. Untuk melakukan ini, kita perlu melakukan perkara berikut:

  1. Pergi ke bahagian Whatsapp di Twilio's Console
  2. Navigasi ke bahagian "Sanbox"
  3. Dalam kotak teks "KETIKA MESEJ DATANG" tampal pautan HTTP dari ngrok yang disalin dengan pelanjutan / sms (JANGAN SALIN _ pada awal dan akhir):

_https://d44c955749bf.ngrok.io/sms_

Sekarang semua untuk chatbot telah disediakan. Pada langkah seterusnya, kita dapat menguji apakah semuanya berfungsi dengan betul

Langkah 5: Uji Aplikasi Kami

Uji Permohonan Kami
Uji Permohonan Kami
Uji Permohonan Kami
Uji Permohonan Kami
Uji Permohonan Kami
Uji Permohonan Kami

Dalam langkah ini kita akan melakukan perkara berikut:

  1. Sertailah bot kami menggunakan kod akses
  2. Cuba aplikasi kami

Sertailah bot kami menggunakan kod akses

Dalam projek ini, kami akan menggunakan Nombor Kotak Pasir Whatsapp Twilio untuk bot Whatsapp kami. Bagi setiap orang, nombor ini akan berbeza. Anda boleh mendapatkan nombor anda seperti ini:

  • Log masuk ke Akaun Twilio anda
  • Pergi ke Twilio Console -> Bahagian Whatsapp -> Kotak Pasir
  • Anda akan melihat nombor Kotak Pasir Twilio anda dengan teks berikut:

Jemput rakan anda ke Kotak Pasir anda. Minta mereka menghantar pesanan WhatsApp ke:

Oleh kerana polisi keselamatan Whatsapp, setiap orang yang ingin bercakap dengan bot automatik melalui Whatsapp perlu memilih secara jelas menggunakan kod. Anda boleh mengetahui kod anda dengan melihat di bahagian yang sama dengan nombor kotak pasir Twilio anda dengan teks:

Setelah memperoleh nombor Whatsapp Twilio Sandbox dan kod pilihan anda, untuk mula menggunakan bot, pergi ke telefon bimbit anda dan lakukan perkara berikut:

  1. Simpan "Nombor Whatsapp Kotak Pasir Twilio" ke kenalan anda dengan nama pilihan anda (Cg. CovBot)
  2. Buka Whatsapp dan hantarkan mesej berikut ke kenalan itu:

sertai

Anda akan melihat mesej seperti ini:

Kotak Pasir Twilio: Anda sudah siap….

Ini bermakna anda telah berhubung dengan bot anda dan bersedia untuk menanyakannya

Cuba aplikasi kami:

Untuk menguji pelbagai ciri bot anda setelah anda berhubung, hantarkan mesej berikut ke bot:

Hai

Anda harus melihat teks berikut:

Selamat datang ke CoVbot!

Chatbot ringkas yang dapat memberikan kemas kini terbaru COVID-19 dengan cara yang mudah, cepat & mudah. Oleh kerana kita semua dikuarantin, bot tersebut dapat digunakan untuk menyarankan beberapa aktiviti yang menyenangkan untuk memanfaatkan sepanjang masa di rumah ketika kita berusaha untuk menjaga keselamatan diri, rakan dan keluarga. Kami harap anda menikmatinya dan menganggapnya berguna! Hantar 4 untuk memulakan!

Sekarang anda boleh mengikuti pilihan untuk mencuba pelbagai ciri bot.

ITU ITU! Whatsapp Chatbot anda sudah siap !!!! Selamat bertunang

Langkah 6: Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan:

Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan
Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan
Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan
Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan
Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan
Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan
Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan
Bagaimana Ia Berfungsi dan Penambahbaikan Masa Depan

Bahagian ini adalah untuk orang yang mempunyai pengalaman pengaturcaraan python. Sekiranya tidak, anda boleh melangkau bahagian ini

Penjelasan Kod

Gelung Utama:

Apabila mesej Whatsapp dihantar ke nombor Twilio anda, API Twilio membuat permintaan POST ke pelayan anda yang anda tentukan. Pelayan dilaksanakan menggunakan kerangka Flask dan oleh itu kami dapat menggunakan objek Flask Request untuk mengambil data yang diterima semasa permintaan POST. Berdasarkan data (Angka dalam hal ini) kami memutuskan pilihan apa yang telah dipilih pengguna dan memberikan maklumat yang sesuai

Data COVID dan Filem dan Rancangan TV:

Data COVID 19, Filem dan Rancangan TV diambil dari API. Saya menggunakan python request untuk mendapatkan data dan kemudian menukarnya menjadi format JSON. Kemudian saya menghuraikan maklumat yang berkaitan. Untuk Tayangan Filem dan TV, saya juga menggunakan perpustakaan python rawak untuk memilih rancangan TV dan Filem rawak

Butiran Buku

Algoritma cadangan buku yang digunakan dalam projek hanyalah pengikis web. Saya tidak dapat menjumpai sebarang API yang memberi anda buku rawak dengan perincian, jadi saya hanya mengikis laman web menggunakan BeautifulSoup4 dan menggunakan parser lxml saya mengekstrak maklumat buku yang relevan

Butiran Sub Menu:

Melaksanakan sub-menu sedikit lebih rumit daripada yang lain kerana mesej Whatsapp seperti SMS yang merupakan protokol tanpa status. Untuk menyelesaikannya, saya telah menggunakan dua teknik:

  1. Menggunakan Pembolehubah Global untuk mengingat keadaan mesej - Ini hanya dilaksanakan untuk Sub-pilihan COVID 19. Dalam hal ini apabila pengguna memilih "Status COVID 19 di negara saya" pemboleh ubah global bernama incomplete_message ditetapkan ke True untuk menunjukkan maka pesanan lain berdasarkan pilihan sebelumnya masih diperlukan. Kemudian ada pemeriksaan di awal yang memeriksa apakah pesan ditandai sebagai tidak lengkap jika demikian, menganggap pesan itu adalah nama negara untuk data COVID dan menyampaikan maklumat tersebut ke fungsi yang betul dan menetapkan mesej global yang tidak lengkap berubah menjadi Salah
  2. Menggunakan Twilio Cookies and Flask Session - Cookies and Flask Session digunakan dalam submenu "Cadangkan Aktiviti Kuarantin" untuk melaksanakan kewarasan, seperti mana aplikasi web di internet menggunakannya hari ini, tetapi bukannya mengingat perkara seperti nama pengguna anda atau akaun itu ingat penukaran antara Dua nombor. Sekiranya anda mahukan lebih banyak maklumat mengenai bahagian ini, saya mengesyorkan membaca panduan hebat ini mengenai Twilio Cookies yang ditulis oleh Pasukan Twilio

Penambahbaikan Masa Depan:

  1. Manfaatkan Objek Berorientasikan Python dan Corak Reka Bentuk untuk meningkatkan seni bina kod dan KERING
  2. Keluarkan pemboleh ubah global
  3. Kesalahan Pengendalian dapat diperbaiki
  4. Kemas kini alamat ngrok secara automatik menggunakan jagung dan Twilio CLI
  5. Dokumentasi Kod

Langkah 7: Nota Akhir

Saya harap anda semua menyukai projek ini. Ini adalah arahan pertama saya, jadi Sekiranya ada sesuatu yang tidak jelas atau memerlukan penjelasan lebih lanjut, beritahu saya di bahagian komen dan saya boleh membantu anda. Juga jika anda membuat projek ini dengan teknik atau senarai ciri yang berbeza, semuanya kongsikan

Disyorkan: