Chatbotlar, Siri, Google Home, Amazon Echo derken yavaş yavaş hayatımıza kişisel asistanlar, dudak okuyup yanıt veren araçlar, hatta söylediklerimizden duygu analizi yapan yazılımlar girmeye başlıyor.

Bu yazımda ChatBot için kullanılabilecek bir Bot yapımını adım adım izleyeceğiz. Yazının sonunda ise yazılım geliştirme tecrübesine sahip birisi kolayca yapay zeka'ya sahip bir uygulama geliştirebiliyor olacak.

Başrolde WIT.AI

Wit.ai genç bir startup açık bir platform ve 65 bin adet yazılım geliştiricinin kullandığı Facebook tarafından satın almış bir platform.

İşte biz developer'lara Bot Engine ve Intent parsing hizmeti veriyor. Elbette eğittiğiniz kadar parsing yapabileceğiniz zekaya sahip bir yazılım. Aynı zamanda API desteği de var.

Intent Parsing ne demek?

Şöyle açıklayalım, siz Siri 'ye "Merhaba Siri" dediğinizde size Selam Erhan gibi bir yanıt veriyor. Sebebi ise sizin Siri'ye yazdığınız ilk metindeki Selamlama ifadesi aslında Siri için bir Intent.

Selamlama Intent'lerine şöyle bir bakalım mı:
Selam, Selamın Aleyküm, Napıyon, Nassın, Mirabaaaa, Hellooüüü ...

İşte Wit.ia'ın tam olarak yaptığı bu. Siz bir metin verdiğinizde öğrendiği kadarıyla o metnin ne anlama geldiğini size verebiliyor.

Diğer Intent'lere birer Örnek Lütfen

Elbette, Yarın İstanbul'da hava durumu nasıl? Cümlesine Wit.AI'nin çözümleyebilmesi için öncelikle Intent'lerimizi bir bulmak gerekiyor.

Yarın: Zaman Inten'i
İstanbul: Yer Hava Durumu: Aradığımız Özellik
Nasıl: Soru cümlesi.

Peki Training/Eğitim'i Nasıl Yapıyoruz?

Wit.AI ekranını açıyoruz. Ben şimdi selamlama intent'ini öğreteceğim.

İlk olarak Merhaba yazarak aşağı tarafta UserDefinedIntent bölümüne daha sonra kullanmak üzere bir intent ismi veriyorum. Benim İntent'lerimin ismi ise Merhaba, olsun. Sonra da Validate diyorum. Ve devam ediyorum. Hello yazıyorum ve bu sefer daha önce benim için eklediği Merhaba intent'i tekrar yazmıyor seçiyorum. Ve buna benzer Selamlama cümleciklerini yazarak hepsi için eğitiyorum.

Bu uygulamayı bir çocuk gibi düşünün. İstanbul'da yaşamış ve hiç Anadolu'lu bir insanla konuşmamış çocuğa "Neörüyon" dediğinizde size nasıl şaşkın bakıyorsa Wit.ai'deki botumuz da şaşkın bakar. Bunun için vakit buldukça eğitiyoruz :)

Bu arada hazır Intent'ler de var. Neler var bir bakalım.

Bakın neler neler var. Yani bir kişi, konum, matematiksel bir ifade bir kişinin yaşı gibi hazır intent'leri kullanarak da uygulamamızı kolayca geliştirebiliyoruz.

API Kullanımı

Şimdi artık bir kullanıcının metinsel olarak birşey yazdığında bana gerçekten Merhaba ve Selamlama içeren bir mesaj attığını anlayabiliyor muyum diye bakalım.

Api Dökümanlarında kullanmı için şöyle yazılmış:

$ curl \
      -H 'Authorization: Bearer $TOKEN' \
      'https://api.wit.ai/message?v=20160526&q=hello'
where $TOKEN is your app token, which can be found under Settings in the Wit console.

Demişler. Ayarlar ekranından Bearer bölümündeki $Token yerine geçecek değeri bulabilirsiniz.

Hemen deniyorum. Ben denemek için PostMan kullanıyorum.

Header olarak Authorization ifadesini gönderiyorum. Servis GET ile çalışıyor. Domain'e de query parametresi olarak q=metin şeklinde gönderiyorum.

https://api.wit.ai/message?v=20161128&q=Selamlar

İçin yanıt harika

{
  "msg_id": "62998489-8aa2-44ea-beaa-de9929faa00c",
  "_text": "Selamlar",
  "entities": {
    "location": [
      {
        "confidence": 0.8667837408568836,
        "type": "value",
        "value": "Selamlar",
        "suggested": true
      }
    ],
    "intent": [
      {
        "confidence": 0.9951803803183454,
        "value": "Merhaba"
      }
    ]
  }
}

Ben biraz güzel eğittim sanırım. Şunu da deneyelim.

https://api.wit.ai/message?v=20161128&q=Melabaaa

Sonuç

{
  "msg_id": "9715a86b-2b8b-439f-8312-40ad88953ccc",
  "_text": "Melabaaa",
  "entities": {
    "location": [
      {
        "confidence": 0.9405584610738275,
        "type": "value",
        "value": "Melabaaa",
        "suggested": true
      }
    ],
    "intent": [
      {
        "confidence": 0.8749241900392043,
        "value": "Merhaba"
      }
    ]
  }
}

Güzel zaten biraz daha zorlarsanız INTENT dönmediğini göreceksiniz.

İlerleyen makalelerde baya insan gibi konuştuğumuz bir haber arama botu yazacağız.