CEYD ile Komut İçinde Komut Tanımlama

Cenker Sisman
Deep Learning Türkiye
2 min readMar 8, 2019

CEYD gelecek sürümde birçok yazılımcının rüyalarını süsleyen bir özelliğe adım atacak. Ona sesle söyleyeceğiniz düz cümle ile zincirleme chatbot komutları oluşturabilecek. Bu şekilde ileride CEYD-A’ya ne yapacağını sözle anlatıp ona istediğiniz uygulamaları yazdırmanız mümkün olacak.

CEYD-A’nın kendisine komut tanımlatmak istemez miydiniz? Bir başka deyişle CEYD-A geliştirici kimliğine bürünüp bizim komutlarımızla kendi komutlarını oluşturacak. Bu işi bir kez yapıp gerekli komutlar oluşacak ve artık istenilen formatta cümle söylediğimizde kendisi gerekli cevapları bu oluşan komutlarla verecek.
CEYD dilindeki cmdaddresponsewithpatterns komutu ile bunu oluşturmak mümkün.

Aşağıda (CÜMLE) dediğimde (SORU) diye sor sonra o yerin (CEVAP) söyle formatında bir cümle söylediğimizde bizim yerimize kendisi gerekli chatbot komutlarını oluşturacak.
Örneğin, Hava kaç derece? dediğimde, Hangi ilçe? diye sor, sonra o yerin hava derecesini söyle ya da Havadisleri oku! dediğimde, Hangi gazete? diye sor, sonra onun haberlerini oku gibi
Şimdi detayları inceleyelim:
cmdaddresponsewithpatterns komutu 3 parametre almakta. İlk parametre SORU KELİMESİ, sizin ona söyleyeceğiniz ilk tetikleyici cümle olacak. Örneğimizde Hava kaç derece buna karşılık geliyor.
İkinci parametrenin, yani SORU ŞABLONUNUN içini boş bırakalım. Anlamı bu yeni komut cümlesinin formatı her ifade olabilir demek bir başka deyişle cümlemize bir kısıtlama veya parametre koymadık demek.
Üçüncü parametre CEVAP ise çalıştırılacak cevap komutunu belirtmekte. cmdaskandfollow CEYD diline yeni katılan komutlardan ve amacı chatbot yapımı için zincirleme komutlar oluşturmak.
Adından da belli olduğu gibi önce o soruyor ask ve cevabımızı aldıktan sonra cevabı başka bir komuta yönlendirip takip ediyor follow. Bir nevi iki komutu zincirliyor. Bu komutun daha detaylı açıklamasını diğer yazımda sizlerle paylaşıyor olacağım. İsimlendirmeyi bu şekilde yapmamın sebebi amacına uyabilmesi

$1, $2 ve $3 şablondaki parantezler içinde gösterilen şablon gruplarını ifade etmekte ve cevap içinde direkt kullanılabilmekte. $8 ise sadece cmdaskandfollow’a özgü bir parametre ve önceki komutun bizim verdiğimiz cevabını ifade etmekte ve bunu yeni komuta taşımakta. cümledeki ‘o yerin’ ifadesini $8 ile değiştirmemizin amacı da bu aslında. cmdreplace ile değişiklik olduğunda O yerin kaç derece olduğunu söyle! yerine $8 kaç derece olduğunu söyle olarak follow komutu oluşacak yani biz “İzmir” cevabı verdiysek önce $8 için İzmir atanacak, İzmir kaç derece olduğunu söyle komutu çalışacak ve sonucu ekrana yansıyacak.

Komutun son hali aşağıdaki gibi. Artık CEYD-A sizin için küçük chatbot komutları yazabilir.

Kullanım örneği aşağıdadır.

--

--

Cenker Sisman
Deep Learning Türkiye

Senior Software Architect in OTI Holding, Owner of CEYD-A Turkish Mobile Assistant, Istanbul Technical University Computer Engineering M.Sc.