İçindekiler:
- Gereçler
- Adım 1: Gerekli Yazılımı Kurun
- 2. Adım: Bir Twilio Hesabı Oluşturun
- 3. Adım: COVID 19 Verileri, Filmler ve TV Şovu için API Anahtarını Alın
- Adım 4: Python ve Twilio'yu Ngrok Üzerinden Bağlayın
- Adım 5: Uygulamamızı Test Edin
- Adım 6: Nasıl Çalışır ve Gelecekteki İyileştirme:
- 7. Adım: Son Notlar
Video: CovBot - COVID 19 Bilgi ve Daha Fazlası için WhatsApp Tabanlı Chatbot: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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:
- 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.
- 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.
- Bir Kitap Öner - Kitabın tanıtım yazısı ve kapak resmiyle birlikte En İyi 10 Kitap Listesinden okunacak bir kitap.
- 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:
- Python Programlama Dili
- ngrok - sunucumuza ağımızın dışından erişmemizi sağlayan bir araçtır
- Seçtiğiniz editör: (örn. Notepad++, Sublime Text, Vim vb.)
Adım 1: Gerekli Yazılımı Kurun
Bu adımda aşağıdakileri yapacağız:
- Python> 3.6'yı kurun ve test edin
- Gerekli python kitaplıklarını kurun
- 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:
- Flask - Bu, sunucumuzun çerçevesidir.
- Twilio - Bu kitaplık, python'un WhatsApp ile iletişim kurması için bir yol sağlar
- İstek - Bu kitaplık, API'lerden veri istemek için kullanılır
- BeautifulSoup4 - Bu kitaplık, web sitelerinden bilgi sıyırmak için kullanılır
- 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:
- Twilio Hesabı için Kaydolun
- 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
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:
- Kaynak kodunu indirin
- Programı çalıştırın ve yerel IP'yi ngrok aracılığıyla genel bir adrese iletin, böylece bir istekte bulunabiliriz
- İ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:
- Twilio'nun Konsolundaki Whatsapp bölümüne gidin
- "Sanbox" alt bölümüne gidin
- "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
Bu adımda aşağıdakileri yapacağız:
- Erişim kodunu kullanarak botumuza katılın
- 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:
- "Twilio Sandbox Whatsapp Numarasını" seçtiğiniz isim ile kişinize kaydedin (Örn. CovBot)
- 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:
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:
- 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.
- 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:
- Kod mimarisini ve KURUluğu geliştirmek için Python'un Nesne Yönelimliliğinden ve Tasarım Kalıplarından yararlanın
- Genel değişkenleri kaldır
- Hata İşleme iyileştirilebilir
- Mısır ve Twilio CLI kullanarak ngrok adresini otomatik olarak güncelleyin
- 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:
Daha Az Alanda Daha Fazla Marul Yetiştirmek Veya Uzayda Marul Yetiştirmek, (Daha Fazla veya Daha Az).: 10 Adım
Daha Az Alanda Daha Fazla Marul Yetiştirmek Veya… Uzayda Büyüyen Marul, (Daha Fazla veya Daha Az).: Bu, Instructables aracılığıyla gönderilen Growing Beyond Earth, Maker Yarışması'na profesyonel bir başvurudur. Uzay mahsulü üretimi için tasarım yapmaktan ve ilk Instructable'ımı göndermekten daha fazla heyecanlanamazdım. Başlamak için yarışma bizden
El Kısayol Denetleyicisi (Photoshop + Daha Fazlası için) [Arduino]: 4 Adım
El Kısayol Denetleyicisi (Photoshop + Daha Fazlası için) [Arduino]: En son Photoshop'ta kullanmak için küçük bir kontrol paneli oluşturdum. Harikalar yarattı ve hala kullanıyorum! Ancak sadece beş düğme ve kullanışlı boyut ve opaklık kadranları ile oldukça sınırlıdır. Hâlâ kendimi klavyeye çok uzanırken buldum… Yani
Oynak Basınca Duyarlı Pedler (Dijital Oyun Alanları - ve Daha Fazlası için): 11 Adım (Resimlerle)
Oynak Basınca Duyarlı Pedler (Dijital Oyun Alanları - ve Daha Fazlası için): Bu, dijital oyuncaklar veya oyunlar oluşturmak için kullanılabilecek, basınca duyarlı bir pedin nasıl yapıldığını gösteren bir Talimattır. Büyük ölçekli kuvvete duyarlı bir direnç olarak kullanılabilir ve eğlenceli olmasına rağmen daha ciddi projeler için kullanılabilir
Hızlandırılmış, Portreler ve Daha Fazlası için Büyük LED "halka" Işığı: 11 Adım (Resimlerle)
Hızlandırılmış, Portreler ve Daha Fazlası için Büyük LED "halka" Işığı…: Birkaç güne yayılan çok sayıda hızlandırılmış video çekiyorum, ancak kıskaç ışıklarının verdiği düzensiz ışıktan nefret ediyorum - özellikle geceleri. Büyük bir halka ışık çok pahalı - bu yüzden elimdeki malzemelerle tek bir akşamda kendim bir şeyler yapmaya karar verdim.
Evcil Hayvan Maması (köpek, Kedi, Tavuk vb.), Top Fırlatma ve Daha Fazlası İçin Otomatik Mancınık!: 4 Adım (Resimli)
Evcil Hayvan Maması (köpek, Kedi, Tavuk, Vb), Fırlatma Topları ve Daha Fazlası için Otomatik Mancınık!: Merhaba ve ilk Eğitilebilir Kitabıma hoş geldiniz! Köpeğimiz yemeğini SEVİYOR, kelimenin tam anlamıyla hepsini saniyeler içinde yiyecek. Bunu yavaşlatmanın yollarını arıyordum, içinde yiyecek olan toplardan arka bahçeye atmaya kadar. Şaşırtıcı bir şekilde, o