2016 yılının Mart ayında açık kaynak kod olarak Microsoft’un geliştirdiği Microsoft Bot Framework kullanılarak chatbot oluşturulabilir veya oluşturulan chatbotlardan yararlanarak siz de rakipleriniz arasında bir adım öne çıkabilirsiniz.
İçerikler
Microsoft Bot Framework Neler Sağlıyor?
Microsoft’un geliştirdiği bu frameworkü kullanarak Skype, Web, Telegram, Facebook Messenger, Slack, SMS vb. bir çok uygulama üzerinde çalışacak bot geliştirebilirsiniz. Kendi web sitenize ekleyeceğiniz kod ile kullanıcıların kısa zamanda önemli bilgilere ulaşmasını sağlayabilirsiniz. Yapay zeka ürünü olan Chat Bot’lar ile sınırsız sayıda işlemler yapabilirsiniz. Dilerseniz hava durumunu sorgulayıp, dilerseniz bir sağlık bilgisine ulaşabilirsiniz. İsterseniz bir fotoğraf yükleyerek bu fotoğrafın kime benzediğini bulabilir, seyahata çıkmadan önce yol durumunu sorgulayabilirsiniz. Günlük dolar kurlarını bir mesaj ile öğrenebilirsiniz, yemek siparişi verebilir, bir uyarı mekanizaması kurarak size belirli bir zamanda SMS veya E-Mail göndermesini isteyebilirsiniz.
ChatBot Nedir?
Kısaca açıklamak gerekirse Chatbot, uygulamalara göndermiş olduğunuz mesajlara uygun olarak size bir mantık çerçevesinde geri dönüş yapmasını sağlayan sistemdir. Aslında MSN Messenger dönemine yetişenlerin hatırlayacağı üzere o dönem de BOT’lar bu kadar akıllı olmasa da mevcuttu. Gelişen teknoloji ve yeni kullanılan mesajlaşma uygulamalarının artması sonucunda tekrardan popüler olmaya başlamıştır.
Microsoft Bot Framework ile geliştirilen tüm botların listesine buradan ulaşabilirsiniz.
ChatBot Entegrasyon?
Skype, Telegram, Messenger, Whatsapp ve daha fazla mesajlaşma uygulamasına kolayca entegre edilebilir. Kendi web sitesiniz için farklı bir BOT yaparak kullanıcı deneyimini artırabilirsiniz.
Microsoft’un Azure üzerinde hayata geçirdiği Azure Bot Servis ile hazır proje dosyaları kullanılarak çok fazla kod yazma ihtiyacı hissetmeden kendi ChatBot’larınızı oluşturabilirsiniz.
ChatBot mantığı aslında basit bir düzenek üzerine kurulu. Kullanılan BOT Framework ile oluşturulan ChatBot bir son endpoint diye tabir edilen “Son nokta”ya bağlanıyor. Siz mesajlaşma uygulamanıza ve web sitenize eklediğiniz ChatBot ile, kullanıcılardan gelen bilgiler ile bu endpoint vasıtasıyla geri bildirimde bulunur. ChatBot’a yazı gönderebileceğiniz gibi müzik, resim, video, konum gibi öğeler de göndererek onlar hakkında işlem yapmasını sağlayabilirsiniz.
Microsoft Bot Framework ile Nasıl Bot Yapılır?
Bot yapmadan önce geliştirme ortamımızı hazırlamamız gerekiyor. Kısaca aşağıdaki adımlarla geliştirme ortamını hazırlıyoruz;
- Microsoft Bot Framework Application Project Template dosyasını buradan indirin.
- İndirilen dosyayı açarak Belgelerim / Visual Studio 201x / Templates / Project Templates / Visual C# klasörüne kopyalayın(klasör olarak).
- Visual Studio’yu açın File / New / Project menüsünü izleyin. C# altında Bot Aplication template göreceksiniz.
- Eksik dosyaları tamamlaması için öncelikle projeyi Build edin ardından çalıştırın. Aşağıdaki gibi bir ekran sizi karşılıyor olacak. Bu ekran geldiyse sorunsuz olarak kurulum tamamlanmıştır.
- Son olarak ChatBot’u gerçek anlamda test edebilmemiz için buradan Bot Framework -Emulator‘ü yükleyip kurun. Şu anda bu yazıyı yazarken en güncel Emulator sürümü 3.5.34 idi.
Emulator’u çalıştırarak adres satırındaki adresi ve sonrasında api/messages ekleyin ve çalıştırın artık ChatBot’a soru sorabilirsiniz. Varsayılan olarak yazdığınız kelimenin karakter sayısını size döndürecektir.
ChatBot İlk Örnek
Kurumlarımızı tamamladık, çalıştığına emin olduk hatta yazdığımızı yanıt verdiğini gördük. Şimdi ufak bir kaç düzenleme yapalım.
Visual Studio Sulution Explorer’da Bot dosyasını gördüğümüz yerde Dialogs / RootDialog.cs dosyası asıl işi yapan dosyadır. Yani yazdığımız yazıya cevap verdiği alandır. Bu class dosyasında yapılan tüm işlemler Bot’a yansımaktadır. Default olarak 26. satırda yer alan bizim yazdığımız kelimenin kaç karakter olduğunu veriyor. Kullanıcı tarafından gönderilen mesaj activity.Text içerisinde tutulmaktadır.
RootDialog.cs dosyası içerisinde bulunan MessageReceivedAsync fonksiyonu asıl işlemlerin yapıldığı alandır. Oradaki tüm kodları silerek aşağıdaki kodları eklemeniz halinde il plaka kodlarının cevaplarını size sunan bir bot yapabilirsiniz. Bu örnekler çoğaltılabilir. SQL’e bağlantı yaparak daha fazla işlem yapabilirsiniz.
var activity = await result as Activity;
string reply = string.Empty;
switch (activity.Text)
{
case "İstanbul Plaka":
reply = "34";
break;
case "Trabzon Plaka":
reply = "61";
break;
case "Kars Plaka":
reply = "36";
break;
case "İzmir Plaka":
reply = "35";
break;
default :
reply = "Kusura bakma bunu anlayamadım!";
break;
}
//return our reply to the user
await context.PostAsync($"Cevabım: "+reply+"");
context.Wait(MessageReceivedAsync);
Siz de hızlı şekilde soru cevap botu oluşturmak için ayrıca QnA Maker sayfasından yararlanabilirsiniz.
Botlarımızı Akıllı Hale Getirelim
Microsoft Azure üzerinde sunulan Cognitive Services ile yazdığınız Botları daha akıllı hale getirebilirsiniz.
Görüntü tanıma, bilgi tanıma, dil, konuşma tanıma ve arama API’leri mevcuttur. Bu apilerin kullanılması limitlenmiştir. Limit aşıldığında ücretlendirme yapılabilmektedir.
ChatBot Kayıt Ettirme
Yaptığınız botları kayıt ettirmek için Microsoft Bot Framework Register sayfasından Microsoft hesabınız ile oturum açarak kayıt işlemini yapabilirsiniz.
Botları uygulama ve web sitesinden kullanabilmek için Register sayfasından sırasıyla aşağıdaki işlemleri gerçekleştirmek durumundasınız.
- Bot Profile sayfasında Display Name(Bot İsmi), Bot Hadler(Benzersiz Bot ismi), Description(Bot açıklaması) kısımlarını doldurun ve uygun bir ikon seçin.
- Configuration kısmından Create Microsoft App ID and Password butona tıklayarak Microsoft hesabımız(msn, microsoft vb.) ile giriş yapın. Bu sayfada uygulama adı ve uygulama kimliği gelecektir.
- Devam etmek için bir uygulama parolası oluşturun butonuna basın ve devam edin. Ekranınızda Yeni Parola Oluşturuldu ibaresi gelecek. Buradaki parolayı bir yere kayıt edin. Tamam butonuna tıklayın ve gelen ekranda Sonlandır ve Bot Framework’e geri dön butona basın.
- Kayıt ekranına döndüğünüzde en altta sözleşmenin yanındaki check işaretini tıklayarak kabul edin ve Register butona tıklayın. Herşey doğruysa botun oluşturulduğunda dair bilgiyi alacaksınız ve bot sayfanızda şu an aktif halde olduğunu göreceksiniz.
- Artık Web projenize dönerek Web.config dosyasında BotId, MicrosoftAppId ve MicrosoftAppPassword‘a ilgili parametreleri girebilirsiniz.
Artık botumuz hazır, dilediğiniz yerle entegre edilebilir durumda. Keyifli sohbetler :)
Microsoft bot framework ile oluşturduğumuz botu facebook a bağladığımızda verileri (kullanıcı bilgileri, ne yazdığı gibi.) nereye kaydediyor o datalara nasıl ulaşabiliyoruz. Ve bu botu geliştirmek için yazılan metinlerin cevabı yoksa bunları kaydediyor mu?
Açıkcası bu konu hakkında pek bir fikrim bulunmuyor maalesef.