CovBot - Chatbot Berbasis WhatsApp untuk Info COVID 19 & Lainnya: 7 Langkah
CovBot - Chatbot Berbasis WhatsApp untuk Info COVID 19 & Lainnya: 7 Langkah
Anonim
Image
Image
Buat Akun Twilio
Buat Akun Twilio

CoVbot adalah chatbot berbasis Whatsapp yang sederhana dan intuitif. Fitur utama bot adalah:

Ini dapat memberi Anda status terbaru COVID-19 di negara pilihan dengan cara yang sederhana dan intuitif.

Selain itu, bot dapat menyarankan aktivitas menyenangkan untuk dilakukan DI RUMAH seperti:

  1. Sarankan Film - Film untuk ditonton dari daftar 10 film Teratas, dengan ikhtisar singkat tentang plot dan durasi. Karena daftar ini tidak di-hardcode dalam perangkat lunak, ini akan selalu memberi Anda pembaruan terbaru berdasarkan tren saat ini.
  2. Sarankan Acara TV - Acara tv untuk ditonton dari acara TV paling populer, dengan ikhtisar singkat tentang plot dan peringkat. Karena daftar ini tidak di-hardcode dalam perangkat lunak, ini akan selalu memberi Anda pembaruan terbaru berdasarkan tren saat ini.
  3. Sarankan Buku - Buku untuk dibaca dari Daftar 10 Buku Teratas, dengan uraian dan gambar sampul buku.
  4. Latihan harian - Ini adalah video berdasarkan jadwal latihan 7 hari yang disediakan oleh CRANK gym di Akun Instagram mereka.

Jika Anda menyukai Instruksi ini, harap pertimbangkan untuk memilihnya dalam Kontes Penulis Item Pertama. (dan ya ini adalah instruksi pertama saya jadi jika ada sesuatu yang tidak jelas atau membutuhkan penjelasan lebih lanjut, beri tahu saya di bagian komentar dan saya dapat membantu Anda:)

Perlengkapan

Proyek ini semata-mata proyek berbasis perangkat lunak, jadi siapa pun yang mengikuti instruksi ini dengan laptop/desktop PC/macOS/Linux dan internet dapat menyelesaikan proyek ini. Saya juga akan menyertakan bagian terperinci seperti di bagian akhir untuk menjelaskan kode/proses secara lebih rinci untuk orang-orang dengan beberapa pengalaman pemrograman, Harap dicatat ini tidak diperlukan untuk menyelesaikan proyek

Tingkat Kesulitan Proyek:

Tidak terlalu mudah, tapi tidak terlalu sulit

Perangkat Keras yang akan kami gunakan:

  • Laptop/desktop yang menjalankan Windows/macOS/Linux.
  • Ponsel dengan WhatsApp Messenger terpasang

Software yang akan kita gunakan:

  1. Bahasa Pemrograman Python
  2. ngrok - adalah alat yang digunakan untuk memungkinkan kami mengakses server kami dari luar jaringan kami
  3. Editor pilihan Anda: (misalnya Notepad++, Sublime Text, Vim, dll)

Langkah 1: Instal Perangkat Lunak yang Diperlukan

Image
Image

Dalam langkah ini kita akan melakukan hal berikut:

  1. Instal Python > 3.6 dan ujilah
  2. Instal pustaka python yang diperlukan
  3. Instal ngrok

Jika Anda telah menginstal kedua aplikasi, Anda dapat melewati langkah ini

Instal Python:

Seluruh basis kode backend/server untuk proyek ini ditulis dengan Python 3.6. Oleh karena itu untuk menjalankan aplikasi kita, kita perlu menginstal Python > 3.6 di komputer kita. Ikuti tutorial oleh CoreySchafer tentang cara menginstal python untuk Windows dan macOS

Anda dapat menguji semuanya diinstal dengan benar dengan mengetikkan yang berikut di cmd/Terminal:

python -c 'print(f"Halo Dunia")'

Jika semuanya terinstal dengan benar, maka Hello World akan tercetak di layar. Jika Anda mendapatkan kesalahan sintaks yang tidak valid, berarti Anda menginstal versi python yang salah. Instal versi python >= 3.6

Instal pustaka python yang diperlukan menggunakan pip:

Kami akan menggunakan pustaka python berikut untuk membuat perangkat lunak kami berfungsi:

  1. Flask - Ini adalah kerangka kerja untuk server kami
  2. Twilio - Pustaka ini menyediakan cara bagi python untuk berkomunikasi dengan WhatsApp
  3. Permintaan - Pustaka ini digunakan untuk meminta data dari API
  4. BeautifulSoup4 - Pustaka ini digunakan untuk mengikis informasi dari situs web
  5. lxml - Pustaka ini digunakan dalam kombinasi dengan BeautifulSoup untuk mengekstrak informasi yang relevan dari situs web

Untuk menginstal perpustakaan ini, Anda dapat melakukan hal berikut:

Buka CMD/Terminal dan ketik perintah berikut:

pip install flask, twilio, request, beautifulsoup4, lxml

ATAU

Unduh file requirements.txt dan buka terminal di direktori tempat file tersebut berada dan ketik:

pip install -r requirements.txt

Instal ngrok

ngrok memungkinkan Anda untuk mengekspos server yang berjalan di mesin lokal Anda ke internet. Cukup beri tahu ngrok port apa yang didengarkan server Anda.

Ikuti panduan di situs ngrok untuk menginstal ngrok untuk sistem operasi yang Anda gunakan.

Tip: Langkah 3 dari panduan ini tidak relevan untuk proyek ini sehingga dapat dilewati

Langkah 2: Buat Akun Twilio

Dalam langkah ini kita akan melakukan hal berikut:

  1. Mendaftar untuk Akun Twilio
  2. Pengenalan Cepat ke bagian berguna di Konsol Twilio

Mendaftar:

Dalam proyek ini, kami akan menggunakan Twilio Whatsapp API untuk menghubungkan program python kami ke Whatsapp. Untuk dapat menggunakan Twilio API kita harus membuat akun terlebih dahulu di situs resmi Twilio. Untuk akun percobaan Twilio menawarkan kredit gratis $15 untuk kami gunakan.

Pengantar Cepat:

Setelah Anda membuat akun, Bagian paling menarik dari konsol Twilio untuk proyek ini adalah:

Dasbor - Dari dasbor, Anda dapat melihat jumlah kredit yang masih tersisa, Anda dapat mengedit nama proyek dan mengubah bahasa pemrograman

Subbagian Whatsapp di bagian SMS yang Dapat Diprogram - Dari bagian Whatsapp di konsol, Anda bisa mendapatkan akses ke kode bergabung untuk bot, nomor Whatsapp yang akan kami gunakan dalam proyek untuk berbicara dengan bot kami dan juga pengaturan webhook. Rincian lebih lanjut tentang semua ini akan dijelaskan pada langkah selanjutnya

Langkah 3: Dapatkan Kunci API untuk Data, Film, dan Acara TV COVID 19

Dapatkan Kunci API untuk Data, Film, dan Acara TV COVID 19
Dapatkan Kunci API untuk Data, Film, dan Acara TV COVID 19
Dapatkan Kunci API untuk Data, Film, dan Acara TV COVID 19
Dapatkan Kunci API untuk Data, Film, dan Acara TV COVID 19

Kunci API atau kunci antarmuka pemrograman aplikasi adalah kode yang diteruskan oleh aplikasi komputer. Program atau aplikasi kemudian memanggil API atau antarmuka pemrograman aplikasi untuk mengidentifikasi penggunanya, pengembang, atau memanggil program ke situs web.

Kami menggunakan API untuk mendapatkan informasi Status, Film, dan Acara TV COVID 19 terbaru. Untuk mengakses API, Anda memerlukan kunci yang bersifat pribadi untuk setiap pengguna. Pada langkah ini, kita akan mendapatkan kunci-kunci ini

Dapatkan Kunci API untuk Data COVID 19:

  • Masuk atau daftar untuk akun RapidAPI Anda.
  • Setelah itu pergi ke COVID-19 API oleh Gramzivi
  • Gulir ke bawah ke bagian "Parameter Header" di konsol API.
  • Kunci API Anda harus terlihat di bidang "X-RapidAPI-Key".

Dapatkan Kunci API untuk film dan data acara tv:

  • Masuk atau daftar untuk akun TMDB Anda
  • Setelah itu pergi ke pengaturan Anda - API
  • Gulir ke bawah ke bagian "Kunci API (auth v3)"
  • Kunci API Anda akan terlihat di bawahnya

Buat file "config.py"

Kami sekarang akan membuat file config.py untuk menyimpan kunci API kami. Kami membuat file terpisah untuk ini, karena kunci API adalah informasi rahasia dan jika Anda membagikan proyek Anda, Anda tidak boleh membagikan kunci API Anda.

  • Buat direktori proyek baru
  • Di dalam direktori yang baru dibuat, buat file baru bernama "config.py"
  • Edit file ini dengan editor pilihan Anda (Sublime, Notepad++) dan salin dan ganti teks berikut dengan informasi relevan yang diperoleh pada langkah sebelumnya:

session_key = "rahasia" #Ini tidak aman.. tapi hanya untuk tes tidak apa-apa

rapid_api_key = "" api_key = ""

Simpan filenya

Langkah 4: Hubungkan Python dan Twilio Melalui Ngrok

Dalam langkah ini kita akan melakukan hal berikut:

  1. Unduh kode sumbernya
  2. Jalankan program dan teruskan IP lokal ke alamat publik melalui ngrok sehingga kami dapat membuat permintaan untuk itu
  3. Konfigurasikan akun Twilio kami untuk meneruskan permintaan ke server kami

Unduh kode sumber untuk bot:

Unduh semua file terlampir dalam pengaturan ini ke direktori proyek yang dibuat pada langkah terakhir.

Jalankan programnya:

Buka direktori kode sumber di CMD/terminal dan jalankan perintah berikut:

python server_main.py

Pastikan untuk memiliki "config.py" yang kami buat pada langkah terakhir atau Anda akan mendapatkan kesalahan

Outputnya harus seperti ini:

* Melayani aplikasi Flask "server_main" (malas loading)

* Lingkungan: produksi PERINGATAN: Ini adalah server pengembangan. Jangan menggunakannya dalam penyebaran produksi. Gunakan server WSGI produksi sebagai gantinya. * Mode Debug: aktif * Berjalan di https://127.0.0.1:5000/ (Tekan CTRL+C untuk keluar) * Restart dengan stat * Debugger aktif! * PIN Debugger: 740-257-236

Ini berarti server Anda berjalan dengan benar di jaringan lokal Anda pada port 5000. Untuk membuat server ini dapat diakses dari luar jaringan lokal Anda, kami akan menggunakan ngrok

Teruskan IP lokal ke alamat publik melalui ngrok

Buka direktori tempat Anda mengunduh ngrok melalui CMD/terminal dan jalankan perintah berikut:

ngrok http 5000

Outputnya harus seperti ini:

ngrok oleh @inconshreveable (Ctrl+C untuk keluar)

Status Sesi online Sesi Berakhir 7 jam, 59 menit Versi 2.3.35 Wilayah Amerika Serikat (AS) Antarmuka Web https://127.0.0.1:4040 Penerusan _https://d44c955749bf.ngrok.io_ -> _https://localhost:5000_ Meneruskan _https://d44c955749bf.ngrok.io_ -> _https://localhost:5000_ Koneksi ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00

Salin tautan HTTP dari bagian "Meneruskan" (sampai ngrok.io). (Saya telah menambahkan _ dalam contoh ini untuk menghindari instruksi untuk mencegatnya sebagai tautan)

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

Sekarang kami telah berhasil meneruskan server kami untuk diakses secara publik, kami perlu mengonfigurasi Twilio sedemikian rupa sehingga ketika permintaan dibuat menggunakan Twilio Whatsapp API, kami meneruskan permintaan tersebut ke server kami. Untuk melakukan ini, kita perlu melakukan hal berikut:

  1. Buka bagian Whatsapp di Twilio's Console
  2. Arahkan ke subbagian "Sanbox"
  3. Di kotak teks "KETIKA PESAN DATANG" rekatkan tautan HTTP dari ngrok yang disalin dengan ekstensi /sms (JANGAN SALIN _ di awal dan akhir):

_https://d44c955749bf.ngrok.io/sms_

Sekarang semuanya untuk chatbot sudah diatur. Pada langkah selanjutnya, kita dapat menguji apakah semuanya berfungsi dengan benar

Langkah 5: Uji Aplikasi Kami

Uji Aplikasi Kami
Uji Aplikasi Kami
Uji Aplikasi Kami
Uji Aplikasi Kami
Uji Aplikasi Kami
Uji Aplikasi Kami

Dalam langkah ini kita akan melakukan hal berikut:

  1. Bergabunglah dengan bot kami menggunakan kode akses
  2. Cobalah aplikasi kami

Bergabunglah dengan bot kami menggunakan kode akses

Dalam proyek ini, kami akan menggunakan Nomor Kotak Pasir Whatsapp Twilio untuk bot Whatsapp kami. Untuk setiap orang, jumlah ini akan berbeda. Anda dapat menemukan nomor Anda seperti ini:

  • Masuk ke Akun Twilio Anda
  • Buka Konsol Twilio -> Bagian Whatsapp -> Kotak Pasir
  • Anda akan melihat nomor Twilio Sandbox Anda dengan teks berikut:

Undang teman Anda ke Sandbox Anda. Minta mereka untuk mengirim pesan WhatsApp ke:

Karena kebijakan keamanan Whatsapp, setiap orang yang ingin berbicara dengan bot otomatis melalui Whatsapp harus secara eksplisit memilih menggunakan kode. Anda dapat mengetahui kode Anda dengan melihat di bagian yang sama dengan nomor kotak pasir Twilio Anda dengan teks:

Setelah Anda memperoleh Nomor Whatsapp Twilio Sandbox dan kode keikutsertaan, untuk mulai menggunakan bot, buka ponsel Anda dan lakukan hal berikut:

  1. Simpan "Nomor Whatsapp Twilio Sandbox" ke kontak Anda dengan nama pilihan Anda (Misalnya CovBot)
  2. Buka Whatsapp dan kirim pesan berikut ke kontak tersebut:

Ikuti

Anda akan melihat pesan seperti ini:

Twilio Sandbox: Anda sudah siap….

Ini berarti Anda telah terhubung dengan bot Anda dan siap untuk menanyakannya qs

Cobalah aplikasi kami:

Untuk menguji berbagai fitur bot Anda setelah Anda terhubung, kirim pesan berikut ke bot:

Hai

Anda akan melihat teks berikut:

Selamat datang di CoVbot!

Chatbot sederhana yang dapat memberikan update terbaru COVID-19 dengan cara yang sederhana, cepat & mudah. Karena kita semua dikarantina, bot dapat digunakan untuk menyarankan beberapa kegiatan menyenangkan untuk memanfaatkan waktu kita sebaik-baiknya di rumah saat kita berusaha menjaga diri, teman, dan keluarga tetap aman. Kami harap Anda menikmatinya dan merasa berguna! Kirim 4 untuk memulai!

Sekarang Anda dapat mengikuti opsi untuk mencoba berbagai fitur bot.

ITU DIA! Chatbot Whatsapp Anda sudah siap!!!! Selamat

Langkah 6: Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan:

Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan
Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan
Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan
Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan
Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan
Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan
Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan
Bagaimana Cara Kerjanya dan Peningkatan di Masa Depan

Bagian ini untuk orang-orang yang memiliki pengalaman pemrograman python. Jika tidak, Anda dapat melewati bagian ini

Penjelasan Kode

Putaran Utama:

Ketika pesan Whatsapp dikirim ke nomor Twilio Anda, API Twilio membuat permintaan POST ke server Anda yang Anda tentukan. Server diimplementasikan menggunakan framework Flask sehingga kita dapat menggunakan objek Flask Request untuk mengambil data yang diterima selama permintaan POST. Berdasarkan data (Angka dalam hal ini) kami memutuskan opsi apa yang telah dipilih pengguna dan memberikan informasi yang sesuai

Data COVID dan Film dan Acara TV:

Data COVID 19, Film, dan Acara TV diambil dari API. Saya menggunakan perpustakaan python permintaan untuk mendapatkan data dan kemudian mengubahnya menjadi format JSON. Kemudian saya hanya mengurai informasi yang relevan. Untuk Film dan Acara TV, saya juga menggunakan perpustakaan python acak untuk memilih acara TV dan Film acak

Detail Buku

Algoritma saran buku yang digunakan dalam proyek ini hanyalah scraper web. Saya tidak dapat menemukan API apa pun yang memberi Anda buku acak dengan detail, jadi saya hanya mengikis situs web menggunakan BeautifulSoup4 dan menggunakan parser lxml, saya mengekstrak informasi buku yang relevan

Detail Sub Menu:

Menerapkan sub-menu sedikit lebih rumit daripada yang lain karena pesan Whatsapp seperti SMS yang merupakan protokol tanpa kewarganegaraan. Untuk mengatasi ini saya telah menggunakan dua teknik:

  1. Menggunakan Variabel Global untuk mengingat status pesan - Ini hanya diterapkan untuk Sub-opsi COVID 19. Dalam hal ini ketika pengguna memilih "Status COVID 19 di opsi negara saya", variabel global bernama complete_message diatur ke True untuk menunjukkan bahwa pesan lain berdasarkan opsi sebelumnya masih diperlukan. Kemudian ada tanda centang di awal yang memeriksa apakah sebuah pesan ditandai tidak lengkap jika demikian diasumsikan bahwa pesan tersebut adalah nama negara untuk data COVID dan meneruskan informasi ke fungsi yang benar dan mengatur variabel global pesan tidak lengkap ke False
  2. Menggunakan Twilio Cookies and Flask Sessions - Cookies dan Flask Sessions digunakan di sub-menu "Sarankan Aktivitas Karantina" untuk menerapkan statefulness, sama seperti aplikasi web apa pun di internet yang menggunakannya akhir-akhir ini, tetapi alih-alih mengingat hal-hal seperti nama pengguna Anda atau akun itu mengingat konversi antara Dua angka. Jika Anda menyukai informasi lebih lanjut tentang bagian ini, saya sarankan untuk membaca panduan mengagumkan tentang Cookie Twilio yang ditulis oleh Tim Twilio

Perbaikan di Masa Depan:

  1. Manfaatkan Object Orientedness of Python dan Design Patterns untuk meningkatkan arsitektur kode dan DRYness
  2. Hapus variabel global
  3. Penanganan Kesalahan dapat ditingkatkan
  4. Perbarui alamat ngrok secara otomatis menggunakan jagung dan Twilio CLI
  5. Dokumentasi Kode

Langkah 7: Catatan Akhir

Saya harap Anda semua menyukai proyek ini. Ini adalah instruksi pertama saya, jadi Jika ada sesuatu yang tidak jelas atau membutuhkan penjelasan lebih lanjut, beri tahu saya di bagian komentar, dan saya dapat membantu Anda. Juga jika Anda membuat proyek ini dengan teknik atau daftar fitur yang berbeda, bagikan semuanya

Direkomendasikan: