Mündəricat:

CovBot - COVID 19 Məlumatı və Daha çoxu üçün WhatsApp əsaslı bir Chatbot: 7 addım
CovBot - COVID 19 Məlumatı və Daha çoxu üçün WhatsApp əsaslı bir Chatbot: 7 addım

Video: CovBot - COVID 19 Məlumatı və Daha çoxu üçün WhatsApp əsaslı bir Chatbot: 7 addım

Video: CovBot - COVID 19 Məlumatı və Daha çoxu üçün WhatsApp əsaslı bir Chatbot: 7 addım
Video: CET Covid Robot | Our first implementation | CET CovBot v1.0 2024, Iyul
Anonim
Image
Image
Twilio Hesabı yaradın
Twilio Hesabı yaradın

CoVbot, Whatsapp əsaslı sadə və intuitiv bir chatbotdur. Botun əsas xüsusiyyəti:

Sadə və intuitiv bir şəkildə, seçdiyiniz ölkədə ən son COVID-19 statusu verə bilər.

Əlavə olaraq, bot evdə etmək üçün əyləncəli fəaliyyətlər təklif edə bilər, məsələn:

  1. Film təklif et - Süjet və müddətə qısa bir baxış olan ən yaxşı 10 film siyahısından izləmək üçün bir film. Bu siyahı proqram təminatında kodlaşdırılmadığından, bu, hər zaman mövcud tendensiyalara əsaslanan ən son yeniləmələri verəcəkdir.
  2. Bir TV Şousu təklif edin - Süjet və reytinqlərə qısa bir baxış olan ən populyar TV şoularından izləmək üçün bir TV şousu. Bu siyahı proqram təminatında kodlaşdırılmadığından, bu, hər zaman mövcud tendensiyalara əsaslanan ən son yeniləmələri verəcəkdir.
  3. Kitab Təklif et - Kitabın ləkəsi və üz qabığı ilə Top 10 Kitab Siyahısından oxumaq üçün bir kitab.
  4. Gündəlik məşqlər-Bu, CRANK idman zalı tərəfindən İnstaqram hesablarında təqdim olunan 7 günlük məşq proqramına əsaslanan bir videodur.

Bu Təlimat kitabından zövq alırsınızsa, zəhmət olmasa Birinci Maddə Müəllif Müsabiqəsində səs verməyi düşünün. (və bəli, bu mənim ilk təlimatımdır, buna görə bir şey aydın deyilsə və ya daha çox izaha ehtiyacınız varsa, şərh bölməsində mənə bildirin və mən sizə kömək edə bilərəm:)

Təchizat

Bu layihə yalnız proqram təminatına əsaslanan bir layihədir, buna görə də bu təlimatı bir dizüstü kompüter/masaüstü PC/macOS/Linux və internetlə izləyən hər kəs bu layihəni tamamlaya bilər. Bəzi proqramlaşdırma təcrübəsi olan insanlar üçün kodu/prosesi daha ətraflı izah etmək üçün sonunda ətraflı bir bölmə də daxil edəcəyəm, unutmayın ki, bu layihəni tamamlamaq üçün lazım deyil.

Layihə Çətinlik Səviyyə:

Çox asan deyil, amma çox çətin deyil

İstifadə edəcəyimiz avadanlıq:

  • Windows/macOS/Linux ilə işləyən bir dizüstü kompüter/masa üstü.
  • WhatsApp Messenger quraşdırılmış mobil telefon

İstifadə edəcəyimiz proqram:

  1. Python Proqramlaşdırma Dili
  2. ngrok - serverimizə şəbəkəmiz xaricindən daxil olmağımıza imkan verən bir vasitədir
  3. Seçdiyiniz redaktor: (məsələn, Notepad ++, Yüksək Mətn, Vim və s.)

Addım 1: Lazımi Proqramı Qurun

Image
Image

Bu mərhələdə aşağıdakıları edəcəyik:

  1. Python> 3.6 yükləyin və sınayın
  2. Lazım olan python kitabxanalarını quraşdırın
  3. Ngrok quraşdırın

Hər iki tətbiq quraşdırılıbsa, bu addımı atlaya bilərsiniz

Python quraşdırın:

Bu layihə üçün bütün arxa/server kod bazası Python 3.6 -da yazılmışdır. Buna görə tətbiqlərimizi işə salmaq üçün kompüterimizdə Python> 3.6 yüklü olmalıdır. Windows və macOS üçün pythonun necə qurulacağına dair CoreySchafer təlimatını izləyin

Aşağıdakıları cmd/Terminala yazaraq hər şeyin düzgün qurulduğunu yoxlaya bilərsiniz:

python -c 'çap (f "Hello World")'

Hər şey düzgün qurulubsa, ekranda Hello World yazılmalıdır. Yanlış bir sintaksis xətası alsanız, səhv bir python versiyasını yükləmisiniz. Python> = 3.6 versiyasını quraşdırın

Pip istifadə edərək lazımlı python kitabxanalarını quraşdırın:

Proqramımızı işlətmək üçün aşağıdakı python kitabxanalarından istifadə edəcəyik:

  1. Şüşə - Bu, serverimizin çərçivəsidir
  2. Twilio - Bu kitabxana, pitonun WhatsApp ilə ünsiyyət qurması üçün bir yol təqdim edir
  3. İstək - Bu kitabxana API -lərdən məlumat istəmək üçün istifadə olunur
  4. BeautifulSoup4 - Bu kitabxana saytlardan məlumatları silmək üçün istifadə olunur
  5. lxml - Bu kitabxana, bir web saytından müvafiq məlumatları çıxarmaq üçün BeautifulSoup ilə birlikdə istifadə olunur

Bu kitabxanaları quraşdırmaq üçün aşağıdakıları edə bilərsiniz:

CMD/Terminalı açın və aşağıdakı əmri yazın:

pip flask, twilio, request, beautifulsoup4, lxml quraşdırın

OR

Requirements.txt faylını yükləyin və faylın olduğu qovluqda bir terminal açın və yazın:

pip install -r tələbləri.txt

Ngrok quraşdırın

ngrok, yerli maşında işləyən bir serveri internetə çıxarmağa imkan verir. Yalnız ngrok -a serverinizin hansı portu dinlədiyini söyləyin.

İstifadə etdiyiniz əməliyyat sistemi üçün ngrok qurmaq üçün ngrok veb saytındakı təlimatı izləyin.

İpucu: Kılavuzun 3 -cü addımı bu layihə ilə əlaqəli deyil, buna görə də atlana bilər

Addım 2: Twilio Hesabı yaradın

Bu mərhələdə aşağıdakıları edəcəyik:

  1. Twilio Hesabına Qeydiyyat
  2. Twilio Konsolunun faydalı bölmələrinə sürətli giriş

Abunə olun:

Bu layihədə, piton proqramımızı Whatsapp -a bağlamaq üçün Twilio Whatsapp API -dən istifadə edəcəyik. Twilio API -dən istifadə etmək üçün əvvəlcə Twilio -nun rəsmi saytında bir hesab yaratmalıyıq. Bir sınaq hesabı üçün Twilio, istifadə etməyimiz üçün 15 dollarlıq pulsuz kredit təklif edir.

Tez Giriş:

Bir hesab yaratdıqdan sonra Twilio konsolunun bu layihə üçün ən maraqlı bölmələri bunlardır:

Tablosuna - Tablosundan, hələ də qoyduğunuz kreditin miqdarını görə bilərsiniz, layihənizin adını düzəldə və proqramlaşdırma dilini dəyişə bilərsiniz.

Proqramlaşdırıla bilən SMS bölməsindəki Whatsapp alt bölməsi - Konsolun Whatsapp bölməsindən, botun qoşulma koduna, botumuzla danışmaq üçün layihədə istifadə edəcəyimiz Whatsapp sayına və həmçinin webhookun qurulmasına daxil ola bilərsiniz.. Bütün bunlar haqqında daha çox təfərrüatlar növbəti addımlarda izah ediləcəkdir

Addım 3: COVID 19 Məlumatları, Filmləri və TV Şousu üçün API Açarını əldə edin

COVID 19 Məlumatları, Filmləri və TV Şousu üçün API Açarını əldə edin
COVID 19 Məlumatları, Filmləri və TV Şousu üçün API Açarını əldə edin
COVID 19 Məlumatları, Filmləri və TV Şousu üçün API Açarını əldə edin
COVID 19 Məlumatları, Filmləri və TV Şousu üçün API Açarını əldə edin

Bir API açarı və ya tətbiq proqramlaşdırma interfeysi açarı, kompüter tətbiqləri tərəfindən qəbul edilən bir koddur. Proqram və ya tətbiq, istifadəçisini, inkişaf etdiricisini və ya veb saytına zəng proqramını təyin etmək üçün API və ya tətbiq proqramlaşdırma interfeysini çağırır.

Ən son COVID 19 Status, Filmlər və TV Şouları haqqında məlumat almaq üçün bir API istifadə edirik. API -yə daxil olmaq üçün hər bir istifadəçi üçün fərdi bir açar lazımdır. Bu addımda bu açarları alacağıq

COVID 19 Məlumatları üçün API Açarını əldə edin:

  • RapidAPI hesabınıza daxil olun və ya qeydiyyatdan keçin.
  • Bundan sonra Gramzivi tərəfindən COVID-19 API-yə keçin
  • API konsolunun "Başlıq Parametrləri" bölməsinə gedin.
  • API Açarınız "X-RapidAPI-Açar" sahəsində görünməlidir.

Filmlər və TV şou məlumatları üçün API Açarını əldə edin:

  • TMDB hesabınıza daxil olun və ya qeydiyyatdan keçin
  • Bundan sonra parametrlərinizə keçin - API
  • "API Açarı (v3 auth)" bölməsinə keçin.
  • API açarınız aşağıda görünməlidir

"Config.py" faylını yaradın

İndi API açarlarımızı saxlamaq üçün config.py faylı yaradacağıq. Bunun üçün ayrı bir fayl yaradırıq, çünki API açarları məxfi məlumatdır və layihənizi paylaşırsınızsa, API açarınızı paylaşmamalısınız.

  • Yeni bir layihə kataloqu yaradın
  • Yeni yaradılan kataloqun içərisində "config.py" adlı yeni bir fayl yaradın
  • Bu faylı seçdiyiniz bir redaktorla (Sublime, Notepad ++) düzəldin və aşağıdakı mətni əvvəlki addımda əldə edilmiş müvafiq məlumatlarla kopyalayın və əvəz edin:

session_key = "gizli" #Bu təhlükəsiz deyil.. ancaq test üçün hər şey yaxşıdır

rapid_api_key = "" api_key = ""

Faylı qeyd edin

Addım 4: Nthrok vasitəsilə Python və Twilio -ya qoşulun

Bu addımda aşağıdakıları edəcəyik:

  1. Mənbə kodunu yükləyin
  2. Proqramı icra edin və ngrok vasitəsi ilə yerli IP -ni ümumi bir ünvana yönləndirin ki, biz ondan sorğu edə bilək
  3. Sorğunu serverimizə yönləndirmək üçün Twilio hesabımızı konfiqurasiya edin

Bot üçün mənbə kodunu yükləyin:

Bu quruluşdakı bütün əlavə edilmiş faylları son addımda yaradılan layihə qovluğuna yükləyin.

Proqramı icra edin:

CMD/terminaldakı mənbə kodunun qovluğuna gedin və aşağıdakı əmri yerinə yetirin:

python server_main.py

Son addımda yaratdığımız "config.py" -nin olduğundan əmin olun, əks halda bir səhv alacaqsınız

Çıxış belə bir şey olmalıdır:

* "Server_main" Flask tətbiqinə xidmət (tənbəl yükləmə)

* Ətraf mühit: istehsal XƏBƏRDARLIQ: Bu bir inkişaf serveridir. İstehsal yerləşdirməsində istifadə etməyin. Bunun əvəzinə istehsal WSGI serverindən istifadə edin. * Debug rejimi: aktivdir * https://127.0.0.1:5000/ üzərində işləyir (çıxmaq üçün CTRL+C düymələrini basın) * Stat ilə yenidən başladın * Debugger aktivdir! * Hata Ayıklayıcı PIN: 740-257-236

Bu, serverinizin 5000 portunda yerli şəbəkənizdə düzgün işlədiyi deməkdir. Bu serveri yerli şəbəkəniz xaricindən əlçatan etmək üçün ngrok istifadə edəcəyik.

Ngrok vasitəsilə yerli IP -ni ümumi ünvana yönləndirin

CMD/terminal vasitəsilə ngrok yüklədiyiniz qovluğa gedin və aşağıdakı əmri yerinə yetirin:

ngrok http 5000

Çıxış belə bir şey olmalıdır:

ngrok @inconshreveable (çıxmaq üçün Ctrl+C)

Sessiya Vəziyyəti Onlayn Sessiya 7 saat 59 dəqiqə Sürüm 2.3.35 Region Amerika Birləşmiş Ştatları (us) Web İnterfeysi https://127.0.0.1:4040 Göndərmə _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Göndərmə _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Əlaqələr ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00

HTTP bağlantısını "Forwading" hissəsindən kopyalayın (ngrok.io saytına qədər). (Bağlantı olaraq ələ keçirilməməsi üçün bu nümunəyə _ əlavə etdim)

Twilio -nu server sorğusunu yönləndirmək üçün yeni ünvandan istifadə etmək üçün konfiqurasiya edin:

Serverimizi açıq şəkildə əldə etmək üçün uğurla yönləndirdiyimiz üçün Twilio -nu elə konfiqurasiya etməliyik ki, Twilio Whatsapp API -dən istifadə edərək sorğu göndərildikdə sorğunu serverimizə göndərək. Bunu etmək üçün aşağıdakıları etməliyik:

  1. Twilio Konsolundakı Whatsapp bölməsinə keçin
  2. "Sanbox" bölməsinə keçin
  3. "MESAJ GELDİĞİNDƏ" mətn qutusuna /sms uzantısı ilə kopyalanan ngrok -dan HTTP bağlantısını yapışdırın (əvvəli və sonunda KOPYALAMAYIN):

_https://d44c955749bf.ngrok.io/sms_

İndi chatbot üçün hər şey qurulub. Növbəti addımda hər şeyin düzgün işlədiyini yoxlaya bilərik

Addım 5: Tətbiqimizi sınayın

Tətbiqimizi sınayın
Tətbiqimizi sınayın
Tətbiqimizi sınayın
Tətbiqimizi sınayın
Tətbiqimizi sınayın
Tətbiqimizi sınayın

Bu addımda aşağıdakıları edəcəyik:

  1. Giriş kodunu istifadə edərək botumuza qoşulun
  2. Tətbiqimizi sınayın

Giriş kodunu istifadə edərək botumuza qoşulun

Bu layihədə, Whatsapp botumuz üçün Twilio -nun Whatsapp Sandbox nömrəsini istifadə edəcəyik. Hər bir insan üçün bu rəqəm fərqli olacaq. Nömrənizi bu şəkildə tapa bilərsiniz:

  • Twilio Hesabınıza daxil olun
  • Twilio Console -> Whatsapp Bölməsi -> Sandbox'a gedin
  • Twilio Sandbox nömrənizi aşağıdakı mətnlə görəcəksiniz:

Dostlarınızı Sandbox -a dəvət edin. Onlardan WhatsApp mesajı göndərmələrini xahiş edin:

Whatsapp-ın təhlükəsizlik siyasəti səbəbindən Whatsapp vasitəsi ilə avtomatlaşdırılmış botla danışmaq istəyən hər kəsin açıq şəkildə kod istifadə etməsi lazımdır. Kodunuzu Twilio sandbox nömrənizlə eyni hissəyə baxaraq öyrənə bilərsiniz:

Twilio Sandbox Whatsapp nömrənizi və qoşulma kodunu əldə etdikdən sonra, botdan istifadə etməyə başlamaq üçün cib telefonunuza keçin və aşağıdakıları edin:

  1. Seçdiyiniz adla əlaqənizdəki "Twilio Sandbox Whatsapp nömrəsini" qeyd edin (məsələn, CovBot)
  2. Whatsapp -ı açın və bu əlaqəyə aşağıdakı mesajı göndərin:

qoşulmaq

Belə bir mesaj görməlisiniz:

Twilio Sandbox: Hər şey hazırdır ….

Bu, botunuzla əlaqə qurduğunuz və qs soruşmağa hazır olduğunuz deməkdir

Tətbiqimizi sınayın:

Bağlandıqdan sonra botunuzun müxtəlif xüsusiyyətlərini sınamaq üçün bota aşağıdakı mesajı göndərin:

Salam

Aşağıdakı mətni görməlisiniz:

CoVbot -a xoş gəldiniz!

Ən son COVID-19 yeniləmələrini sadə, sürətli və asan bir şəkildə verə bilən sadə bir chatbot. Hamımız karantinə alındığından, özümüzü, dostlarımızı və ailənizi təhlükəsiz saxlamağa çalışdığımız üçün evdə vaxtımızı səmərəli keçirmək üçün bəzi əyləncəli fəaliyyətlər təklif etmək üçün istifadə edilə bilər. Ümid edirik ki, bundan zövq alırsınız və faydalı hesab edirsiniz! Başlamaq üçün 4 göndərin!

İndi botun fərqli xüsusiyyətlərini sınamaq üçün seçimə əməl edə bilərsiniz.

BU BELƏDİR! Whatsapp Chatbotunuz hazırdır !!!! Təbriklər

Addım 6: Necə Çalışır və Gələcək Təkmilləşdirmə:

Necə Çalışır və Gələcək Təkmilləşdirmə
Necə Çalışır və Gələcək Təkmilləşdirmə
Necə Çalışır və Gələcək Təkmilləşdirmə
Necə Çalışır və Gələcək Təkmilləşdirmə
Necə Çalışır və Gələcək Təkmilləşdirmə
Necə Çalışır və Gələcək Təkmilləşdirmə
Necə Çalışır və Gələcək Təkmilləşdirmə
Necə Çalışır və Gələcək Təkmilləşdirmə

Bu bölmə bəzi python proqramlaşdırma təcrübəsi olan insanlar üçündür. Əks təqdirdə bu bölməni atlaya bilərsiniz

Kodun izahı

Əsas Döngə:

Twilio nömrənizə bir Whatsapp mesajı göndərildikdə, Twilio API serverinizə göstərdiyiniz POST sorğusu göndərir. Server Flask çərçivəsindən istifadə etməklə həyata keçirilir və buna görə də POST sorğusu zamanı alınan məlumatları əldə etmək üçün Flask Request obyektindən istifadə edə bilərik. Məlumatlara əsaslanaraq (bu vəziyyətdə ədədlər) istifadəçinin hansı seçimi seçdiyinə qərar veririk və müvafiq məlumatı veririk

COVID Məlumatları və Filmləri və TV Şouları:

COVID 19, Filmlər və TV Şouları Məlumatları API -dən alınır. Məlumat almaq və sonra JSON formatına çevirmək üçün sorğu python kitabxanasından istifadə edirəm. Sonra yalnız müvafiq məlumatları təhlil edirəm. Filmlər və TV Şousu üçün təsadüfi bir televiziya şousu və Film seçmək üçün təsadüfi piton kitabxanasından da istifadə etdim

Kitab Təfərrüatları

Layihədə istifadə olunan kitab təklif alqoritmi yalnız bir veb kazıyıcıdır. Sizə təsadüfi bir kitab verən heç bir API tapa bilmədim, buna görə BeautifulSoup4 istifadə edərək və lxml ayrıştırıcısından istifadə edərək kitabın müvafiq məlumatlarını çıxarıram.

Alt Menyu Təfərrüatları:

Whatsapp mesajları vətəndaşlığı olmayan bir protokol olan SMS-lərə bənzədiyi üçün alt menyuların tətbiq edilməsi digərlərindən biraz daha çətin idi. Bunu həll etmək üçün iki texnikadan istifadə etdim:

  1. Mesajın vəziyyətini xatırlamaq üçün Qlobal Dəyişənlərdən istifadə - Bu yalnız COVID 19 Alt seçimi üçün tətbiq olunur. Bir istifadəçi "Ölkəmdə COVID 19 Status seçimi" ni seçdikdə, tamamlanmamış_message adlı bir qlobal dəyişən, əvvəlki seçimə əsaslanan başqa bir mesajın hələ də lazım olduğunu göstərmək üçün Doğru olaraq təyin olunur. Daha sonra başlanğıcda bir mesajın natamam olaraq işarələnib -işarələnmədiyini yoxlayan bir mesaj var ki, bu mesajın COVID məlumatları üçün ölkə adı olduğunu qəbul edir və məlumatı düzgün funksiyaya ötürür və qlobal dəyişən natamam mesajı False olaraq təyin edir.
  2. Twilio Çerezleri və Şüşə Sessiyalarından istifadə - Çərəzlər və Şüşə Sessiyaları, hal -hazırda internetdəki hər hansı bir veb tətbiqinin bu günlərdə istifadə etdiyi kimi, istifadəçi adınız kimi şeyləri xatırlamaq əvəzinə, "Karantin Fəaliyyəti Təklif et" alt menyusunda istifadə olunur. və ya hesab iki ədəd arasındakı dönüşümü xatırlayır. Bu hissə haqqında daha çox məlumat istəyirsinizsə, Twilio Komandası tərəfindən yazılmış Twilio Çerezləri haqqında bu möhtəşəm bələdçini oxumağı məsləhət görürəm.

Gələcək Təkmilləşdirmələr:

  1. Kod arxitekturasını və DRYness -i yaxşılaşdırmaq üçün Python və Dizayn Nümunələrinin Obyekt yönümlülüyündən istifadə edin
  2. Qlobal dəyişənləri silin
  3. Hata İdarəetmə təkmilləşdirilə bilər
  4. Qarğıdalı və Twilio CLI istifadə edərək ngrok ünvanını avtomatik olaraq yeniləyin
  5. Kod Sənədləri

Addım 7: Son Qeydlər

Ümid edirəm hamınız bu layihəni bəyənəcəksiniz. Bu mənim ilk təlimatımdır, buna görə bir şey aydın deyilsə və ya daha çox izaha ehtiyacınız varsa, şərh bölməsində mənə bildirin və mən sizə kömək edə bilərəm. Ayrıca, bu layihəni fərqli bir texnika və ya xüsusiyyət siyahısı ilə etmisinizsə, hamısı paylaşın

Tövsiyə: