İçindekiler:

CovBot - COVID 19 Bilgi ve Daha Fazlası için WhatsApp Tabanlı Chatbot: 7 Adım
CovBot - COVID 19 Bilgi ve Daha Fazlası için WhatsApp Tabanlı Chatbot: 7 Adım

Video: CovBot - COVID 19 Bilgi ve Daha Fazlası için WhatsApp Tabanlı Chatbot: 7 Adım

Video: CovBot - COVID 19 Bilgi ve Daha Fazlası için WhatsApp Tabanlı Chatbot: 7 Adım
Video: CET Covid Robot | Our first implementation | CET CovBot v1.0 2024, Kasım
Anonim
Image
Image
Twilio Hesabı Oluşturun
Twilio Hesabı Oluşturun

CoVbot, Whatsapp tabanlı basit ve sezgisel bir sohbet robotudur. Botun ana özelliği:

Seçtiğiniz ülkedeki en son COVID-19 durumunu basit ve sezgisel bir şekilde verebilir.

Ek olarak, bot EVDE yapılacak eğlenceli aktiviteler önerebilir, örneğin:

  1. Bir Film Öner - En iyi 10 film listesinden, olay örgüsü ve süresi hakkında kısa bir genel bakış içeren, izlenecek bir film. Bu liste yazılımda sabit kodlanmış olmadığından, bu size her zaman mevcut trendlere dayalı en son güncellemeleri verecektir.
  2. Bir TV Şovu Öner - En popüler TV şovlarından, konu ve reytinglere kısa bir genel bakış ile izlenebilecek bir TV şovu. Bu liste yazılımda sabit kodlanmış olmadığından, bu size her zaman mevcut trendlere dayalı en son güncellemeleri verecektir.
  3. Bir Kitap Öner - Kitabın tanıtım yazısı ve kapak resmiyle birlikte En İyi 10 Kitap Listesinden okunacak bir kitap.
  4. Günlük antrenmanlar - Bu, CRANK gym tarafından Instagram Hesaplarında sağlanan 7 günlük antrenman programına dayalı bir videodur.

Bu Eğitilebilir Kitaptan hoşlanıyorsanız, lütfen İlk Öğe Yazar Yarışmasında ona oy vermeyi düşünün. (ve evet bu benim ilk talimatımdır, bu yüzden bir şey net değilse veya daha fazla açıklamaya ihtiyaç duyarsa lütfen yorum bölümünde bana bildirin, size yardımcı olabilirim:)

Gereçler

Bu proje yalnızca yazılım tabanlı bir projedir, bu nedenle bu talimatı bir dizüstü bilgisayar/masaüstü PC/macOS/Linux ve internet ile takip eden herkes bu projeyi tamamlayabilir. Ayrıca, biraz programlama deneyimi olan kişiler için kodu/süreci daha ayrıntılı olarak açıklamak için sonuna ayrıntılı bir bölüm ekleyeceğim, Lütfen bunun projeyi tamamlamak için gerekli olmadığını unutmayın.

Proje Zorluk Seviyesi:

Çok kolay değil ama çok zor değil

Kullanacağımız Donanım:

  • Windows/macOS/Linux çalıştıran bir dizüstü bilgisayar/masaüstü.
  • WhatsApp Messenger'ın yüklü olduğu bir cep telefonu

Kullanacağımız yazılım:

  1. Python Programlama Dili
  2. ngrok - sunucumuza ağımızın dışından erişmemizi sağlayan bir araçtır
  3. Seçtiğiniz editör: (örn. Notepad++, Sublime Text, Vim vb.)

Adım 1: Gerekli Yazılımı Kurun

Image
Image

Bu adımda aşağıdakileri yapacağız:

  1. Python> 3.6'yı kurun ve test edin
  2. Gerekli python kitaplıklarını kurun
  3. ngrok'u yükle

Her iki uygulama da yüklüyse bu adımı atlayabilirsiniz.

Python'u yükleyin:

Bu proje için tüm arka uç/sunucu kod tabanı Python 3.6'da yazılmıştır. Bu nedenle uygulamalarımızı çalıştırabilmemiz için bilgisayarımıza Python > 3.6 kurulu olması gerekmektedir. Windows ve macOS için python'un nasıl kurulacağına ilişkin CoreySchafer'ın öğreticisini izleyin

Aşağıdakileri cmd/Terminal'e yazarak her şeyin doğru şekilde kurulup kurulmadığını test edebilirsiniz:

python -c 'yazdır(f"Merhaba Dünya")'

Her şey doğru kurulmuşsa, ekrana Merhaba Dünya yazdırılmalıdır. Geçersiz bir sözdizimi hatası alırsanız, yanlış python sürümünü yüklemişsinizdir. Python >= 3.6 sürümünü yükleyin

Pip kullanarak gerekli python kitaplıklarını kurun:

Yazılımımızın çalışması için aşağıdaki python kitaplıklarını kullanacağız:

  1. Flask - Bu, sunucumuzun çerçevesidir.
  2. Twilio - Bu kitaplık, python'un WhatsApp ile iletişim kurması için bir yol sağlar
  3. İstek - Bu kitaplık, API'lerden veri istemek için kullanılır
  4. BeautifulSoup4 - Bu kitaplık, web sitelerinden bilgi sıyırmak için kullanılır
  5. lxml - Bu kitaplık, ilgili bilgileri bir web sitesinden çıkarmak için BeautifulSoup ile birlikte kullanılır

Bu kitaplıkları kurmak için aşağıdakileri yapabilirsiniz:

CMD/Terminal'i açın ve aşağıdaki komutu yazın:

pip yükleme şişesi, twilio, istek, güzelsoup4, lxml

VEYA

Gereksinimler.txt dosyasını indirin ve dosyanın bulunduğu dizinde bir terminal açın ve şunu yazın:

pip kurulumu -r gereksinimleri.txt

ngrok'u yükle

ngrok, yerel makinenizde çalışan bir sunucuyu internete açmanıza olanak tanır. Sadece ngrok'a sunucunuzun hangi portu dinlediğini söyleyin.

Kullanmakta olduğunuz işletim sistemi için ngrok'u yüklemek için ngrok web sitesindeki kılavuzu takip eder.

İpucu: Kılavuzun 3. adımı bu projeyle ilgili olmadığı için atlanabilir

2. Adım: Bir Twilio Hesabı Oluşturun

Bu adımda aşağıdakileri yapacağız:

  1. Twilio Hesabı için Kaydolun
  2. Twilio Konsolundaki faydalı bölümlere Hızlı Giriş

Üye olmak:

Bu projede python programımızı Whatsapp'a bağlamak için Twilio Whatsapp API'sini kullanacağız. Twilio API'yi kullanabilmek için önce Twilio'nun resmi web sitesinde bir hesap oluşturmamız gerekiyor. Deneme hesabı için Twilio, kullanmamız için 15 $ ücretsiz kredi sunuyor.

Hızlı Giriş:

Bir hesap oluşturduktan sonra, Twilio konsolunun bu proje için en ilginç bölümleri şunlardır:

Pano - Panodan kalan kredi miktarını görebilir, proje adınızı düzenleyebilir ve programlama dilini değiştirebilirsiniz.

Programlanabilir SMS bölümündeki Whatsapp alt bölümü - Konsolun Whatsapp bölümünden bot için katılım koduna, projede kullanacağımız Whatsapp sayısına botumuzla konuşmak için ve ayrıca webhook kurulumuna erişebilirsiniz.. Tüm bunlar hakkında daha fazla ayrıntı sonraki adımlarda açıklanacaktır.

3. Adım: COVID 19 Verileri, Filmler ve TV Şovu için API Anahtarını Alın

COVID 19 Verileri, Filmler ve TV Şovu için API Anahtarı Alın
COVID 19 Verileri, Filmler ve TV Şovu için API Anahtarı Alın
COVID 19 Verileri, Filmler ve TV Şovu için API Anahtarı Alın
COVID 19 Verileri, Filmler ve TV Şovu için API Anahtarı Alın

API anahtarı veya uygulama programlama arabirim anahtarı, bilgisayar uygulamaları tarafından geçirilen bir koddur. Program veya uygulama daha sonra kullanıcısını, geliştiricisini veya programı bir web sitesine çağırmak için API'yi veya uygulama programlama arayüzünü çağırır.

En son COVID 19 Durumu, Filmler ve TV Şovları hakkında bilgi almak için bir API kullanıyoruz. API'ye erişmek için her kullanıcı için kişisel olan bir anahtara ihtiyacınız vardır. Bu adımda, bu anahtarları alacağız

COVID 19 Verileri için API Anahtarı Alın:

  • RapidAPI hesabınız için oturum açın veya kaydolun.
  • Bundan sonra Gramzivi'nin COVID-19 API'sine gidin
  • API konsolunun "Başlık Parametreleri" bölümüne gidin.
  • API Anahtarınız "X-RapidAPI-Key" alanında görünür olmalıdır.

Filmler ve TV programı verileri için API Anahtarı alın:

  • TMDB hesabınız için oturum açın veya kaydolun
  • Bundan sonra ayarınıza gidin - API
  • "API Anahtarı (v3 yetkilendirme)" bölümüne gidin
  • API anahtarınız bunun altında görünmelidir

"config.py" dosyası oluşturun

Şimdi API anahtarlarımızı saklamak için bir config.py dosyası oluşturacağız. Bunlar için ayrı bir dosya oluşturuyoruz, çünkü API anahtarları gizli bilgilerdir ve projenizi paylaşırsanız API anahtarınızı paylaşmamalısınız.

  • Yeni bir proje dizini oluşturun
  • Yeni oluşturulan dizinin içinde "config.py" adında yeni bir dosya oluşturun.
  • Bu dosyayı istediğiniz bir düzenleyiciyle düzenleyin (Sublime, Notepad++) ve aşağıdaki metni kopyalayıp önceki adımda elde edilen ilgili bilgilerle değiştirin:

session_key = "secret" #Bu güvenli değil.. ama sadece test için sorun değil

rapid_api_key = "" api_key = ""

Dosya 'yı kaydet

Adım 4: Python ve Twilio'yu Ngrok Üzerinden Bağlayın

Bu adımda aşağıdakileri yapacağız:

  1. Kaynak kodunu indirin
  2. Programı çalıştırın ve yerel IP'yi ngrok aracılığıyla genel bir adrese iletin, böylece bir istekte bulunabiliriz
  3. İsteği sunucumuza iletmek için Twilio hesabımızı yapılandırın

Botun kaynak kodunu indirin:

Bu kurulumdaki tüm ekli dosyaları son adımda oluşturulan proje dizinine indirin.

Programı yürütün:

CMD/terminalde kaynak kodun bulunduğu dizine gidin ve aşağıdaki komutu çalıştırın:

python server_main.py

Son adımda oluşturduğumuz "config.py" dosyasına sahip olduğunuzdan emin olun, aksi takdirde hata alırsınız

Çıktı şöyle bir şey olmalıdır:

* Flask uygulaması "server_main" sunma (tembel yükleme)

* Ortam: üretim UYARI: Bu bir geliştirme sunucusudur. Bir üretim dağıtımında kullanmayın. Bunun yerine bir üretim WSGI sunucusu kullanın. * Hata ayıklama modu: açık * https://127.0.0.1:5000/ üzerinde çalışıyor (Çıkmak için CTRL+C tuşlarına basın) * Stat ile yeniden başlatılıyor * Hata ayıklayıcı aktif! * Hata Ayıklayıcı PIN'i: 740-257-236

Bu, sunucunuzun yerel ağınızda 5000 numaralı bağlantı noktasında doğru çalıştığı anlamına gelir. Bu sunucuyu yerel ağınızın dışından erişilebilir kılmak için ngrok kullanacağız.

Yerel IP'yi ngrok aracılığıyla genel bir adrese iletin

CMD/terminal aracılığıyla ngrok'u indirdiğiniz dizine gidin ve aşağıdaki komutu yürütün:

zenci http 5000

Çıktı şöyle bir şey olmalıdır:

@inconshreveable tarafından ngrok (çıkmak için Ctrl+C)

Oturum Durumu çevrimiçi Oturum Süresi Bitiyor Sürüm 2.3.35 Bölge Amerika Birleşik Devletleri (bize) Web Arayüzü https://127.0.0.1:4040 Yönlendirme _https://d44c955749bf.ngrok.io_ -> _https://localhost:5000_ Yönlendirme _https://d44c955749bf.ngrok.io_ -> _https://localhost:5000_ Bağlantılar ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00

HTTP bağlantısını "Yönlendirme" bölümünden kopyalayın (sadece ngrok.io'ya kadar). (Bu örnekte _'yi bir bağlantı olarak engelleme talimatı verilmesini önlemek için ekledim)

Twilio'yu sunucu isteğini şuraya iletmek için yeni adresi kullanacak şekilde yapılandırın:

Artık sunucumuzu herkese açık olarak erişilmek üzere başarıyla ilettiğimize göre, Twilio'yu, Twilio Whatsapp API kullanılarak bir istek yapıldığında, isteği sunucumuza iletecek şekilde yapılandırmamız gerekiyor. Bunu yapmak için aşağıdakileri yapmamız gerekir:

  1. Twilio'nun Konsolundaki Whatsapp bölümüne gidin
  2. "Sanbox" alt bölümüne gidin
  3. "Bir MESAJ GELDİĞİNDE" metin kutusuna /sms uzantısıyla kopyalanan ngrok'tan gelen HTTP bağlantısını yapıştırın (başlangıçta ve sonda _ KOPYALAMAYIN):

_https://d44c955749bf.ngrok.io/sms_

Artık chatbot için her şey ayarlandı. Bir sonraki adımda, her şeyin doğru çalışıp çalışmadığını test edebiliriz

Adım 5: Uygulamamızı Test Edin

Uygulamamızı Test Edin
Uygulamamızı Test Edin
Uygulamamızı Test Edin
Uygulamamızı Test Edin
Uygulamamızı Test Edin
Uygulamamızı Test Edin

Bu adımda aşağıdakileri yapacağız:

  1. Erişim kodunu kullanarak botumuza katılın
  2. uygulamamızı deneyin

Erişim kodunu kullanarak botumuza katılın

Bu projede Whatsapp botumuz için Twilio'nun Whatsapp Sandbox Numarasını kullanacağız. Her kişi için bu sayı farklı olacaktır. Numaranızı şu şekilde bulabilirsiniz:

  • Twilio Hesabınıza giriş yapın
  • Twilio Konsolu -> Whatsapp Bölümü -> Sandbox'a gidin
  • Twilio Sandbox numaranızı aşağıdaki metinle göreceksiniz:

Arkadaşlarınızı Sandbox'ınıza davet edin. Şu adrese bir WhatsApp mesajı göndermelerini isteyin:

Whatsapp'ın güvenlik politikası nedeniyle, Whatsapp aracılığıyla otomatik bir botla konuşmak isteyen herkesin bir kod kullanarak açıkça kaydolması gerekir. Twilio korumalı alan numaranızla aynı bölüme aşağıdaki metinle bakarak kodunuzu öğrenebilirsiniz:

Twilio Sandbox Whatsapp Numaranızı ve katılım kodunuzu aldıktan sonra, botu kullanmaya başlamak için cep telefonunuza gidin ve aşağıdakileri yapın:

  1. "Twilio Sandbox Whatsapp Numarasını" seçtiğiniz isim ile kişinize kaydedin (Örn. CovBot)
  2. Whatsapp'ı açın ve o kişiye aşağıdaki mesajı gönderin:

katılmak

Bunun gibi bir mesaj görmelisiniz:

Twilio Sandbox: Her şey hazır….

Bu, botunuzla bağlantı kurduğunuz ve ona soru sormaya hazır olduğunuz anlamına gelir

Uygulamamızı deneyin:

Bağlandıktan sonra botunuzun çeşitli özelliklerini test etmek için bota aşağıdaki mesajı gönderin:

Selam

Aşağıdaki metni görmelisiniz:

CoVbot'a hoş geldiniz!

COVID-19'un en son güncellemelerini basit, hızlı ve kolay bir şekilde verebilen basit bir sohbet robotu. Hepimiz karantinada olduğumuz için bot, kendimizi, arkadaşlarımızı ve ailemizi güvende tutmaya çalışırken evde geçirdiğimiz zamanı en iyi şekilde değerlendirmek için bazı eğlenceli aktiviteler önermek için kullanılabilir. Umarız beğenirsiniz ve faydalı bulursunuz! Başlamak için 4 gönder!

Artık botun farklı özelliklerini denemek için seçeneği takip edebilirsiniz.

BU KADAR! Whatsapp Chatbot'unuz hazır !!!! Tebrikler

Adım 6: Nasıl Çalışır ve Gelecekteki İyileştirme:

Nasıl Çalışır ve Gelecekteki İyileştirme
Nasıl Çalışır ve Gelecekteki İyileştirme
Nasıl Çalışır ve Gelecekteki İyileştirme
Nasıl Çalışır ve Gelecekteki İyileştirme
Nasıl Çalışır ve Gelecekteki İyileştirme
Nasıl Çalışır ve Gelecekteki İyileştirme
Nasıl Çalışır ve Gelecekteki İyileştirme
Nasıl Çalışır ve Gelecekteki İyileştirme

Bu bölüm, biraz python programlama deneyimi olan kişiler içindir. Eğer yapmazsan bu bölümü atlayabilirsin

Kod Açıklama

Ana döngü:

Twilio numaranıza bir Whatsapp mesajı gönderildiğinde, Twilio API, sunucunuza belirttiğiniz bir POST isteğinde bulunur. Sunucu, Flask çerçevesi kullanılarak uygulanır ve bu nedenle, POST isteği sırasında alınan verileri almak için Flask Request nesnesini kullanabiliriz. Verilere dayanarak (bu durumda sayılar) kullanıcının hangi seçeneği seçtiğine karar verir ve uygun bilgileri veririz.

COVID Verileri ve Filmler ve TV Şovları:

COVID 19, Filmler ve TV Şovları Verileri bir API'den alınır. Verileri almak için request python kitaplığını kullanıyorum ve ardından onu bir JSON biçimine dönüştürüyorum. Sonra sadece ilgili bilgileri ayrıştırırım. Filmler ve TV Şovu için, rastgele bir TV şovu ve Film seçmek için rastgele python kitaplığını da kullandım.

Kitap Detayları

Projede kullanılan kitap öneri algoritması sadece bir web kazıyıcıdır. Size ayrıntıları içeren rastgele bir kitap veren herhangi bir API bulamadım, bu yüzden BeautifulSoup4 kullanarak bir web sitesini kazıdım ve lxml ayrıştırıcısını kullanarak kitabın ilgili bilgilerini çıkardım

Alt Menü Detayları:

Whatsapp mesajları durumsuz bir protokol olan SMS'ler gibi olduğundan, alt menüleri uygulamak diğerlerinden biraz daha zordu. Bunu çözmek için iki teknik kullandım:

  1. Mesajın durumunu hatırlamak için Global Değişkenleri kullanma - Bu yalnızca COVID 19 Alt seçeneği için uygulanır. Bunda, bir kullanıcı "Ülkemdeki COVID 19'un durumu seçeneğini" seçtiğinde, incomplete_message adlı global bir değişken, önceki seçeneğe dayalı başka bir mesajın hala gerekli olduğunu belirtmek için True olarak ayarlanır. Ardından, başlangıçta bir mesajın eksik olarak işaretlenip işaretlenmediğini kontrol eden bir kontrol vardır, eğer öyleyse mesajın COVID verilerinin ülke adı olduğunu varsayar ve bilgileri doğru işleve iletir ve global değişken eksik mesajını Yanlış olarak ayarlar.
  2. Twilio Çerezlerini ve Flask Oturumlarını Kullanma - Çerezler ve Flask Oturumları, durum bilgisi uygulamak için "Karantina Etkinliği Öner" alt menüsünde kullanılır, tıpkı bugünlerde internetteki herhangi bir web uygulamasının kullandığı gibi, ancak kullanıcı adınız gibi şeyleri hatırlamak yerine veya hesap, İki sayı arasındaki dönüşümü hatırlar. Bu bölüm hakkında daha fazla bilgi almak isterseniz, Twilio Ekibi tarafından yazılan Twilio Çerezleri hakkındaki bu harika kılavuzu okumanızı tavsiye ederim.

Gelecekteki İyileştirmeler:

  1. Kod mimarisini ve KURUluğu geliştirmek için Python'un Nesne Yönelimliliğinden ve Tasarım Kalıplarından yararlanın
  2. Genel değişkenleri kaldır
  3. Hata İşleme iyileştirilebilir
  4. Mısır ve Twilio CLI kullanarak ngrok adresini otomatik olarak güncelleyin
  5. Kod Dokümantasyonu

7. Adım: Son Notlar

Umarım hepiniz bu projeyi beğenirsiniz. Bu benim ilk talimatım, bu yüzden bir şey net değilse veya daha fazla açıklamaya ihtiyaç duyarsa, yorum bölümünde bana bildirin, size yardımcı olabilirim. Ayrıca bu projeyi farklı bir teknik veya özellik listesi ile yaptıysanız hepsini paylaşın

Önerilen: