Uygulamaları CEYD-A ile entegre etmek
Önceki yazılarda CEYD-A’yı kendi geliştirme ortamı ile geliştirmeye değinmiştik. Mevcut uygulama ortamlarınızı CEYD-A’nın geniş yelpazesine bağlayıp yapısından yararlanabilirsiniz. Bunun için 2 yol izlemek mümkün:
- MQTT desteği: Ses algılama ve konuşma yapısının sisteme entegre olduğu Android uygulaması CEYD-A üzerinden MQTT destekli CEYD komutlarıyla dış dünyaya bağlanmak.
- Web Servis desteği: Ses algılama ve konuşma yapısının CEYD-A’dan bağımsız olarak kullanıcı tarafından ek olarak geliştirildiği, CEYD-A’nın sadece metin formatında sağlanan soruları yorumlayıp yine metin olarak cevap döndürdüğü web servis yapısını kullanmak
MQTT desteği
MQTT (Message Queuing Telemetry Transport), yayınlama ve abone olma mantığına dayanan telemetri mesajlaşma protokolüdür. Makineler arası haberleşmede kullanılmaktadır. Benzer protokollerden ayrılan en önemli özelliği ise hafif (lightweight) olması ve bu sayede birçok platformda rahatlıkla kullanılabilmesidir.
PUBLISH ve SUBSCRIBE
MQTT de kullanılan bu iki işlemin CEYD-A yorumu şu şekildedir:
MQTTPUBLISHAUTH komutu ile cihaza bağlantı sağlanır ve yayınlanacak içerik gönderilir. Karşılığında cihazdan dinamik bir cevap beklenmez sadece bağlantı kurulup kurulmadığı bilgisi dönülür.
mqttpublishauth tcp://ipadres:port,konu,cihaz kimliği,yayınlanacak içerik,kullanıcı,şifre
MQTTSUBSCRIBEAUTH komutu ise gönderilen parametreler açısından ilk komut ile benzer yapıdadır. Sadece sonuç değeri olarak connected yerine abone (subscribe) olduğu cihazdan dönen değeri cevap olarak vermektedir ve dönen değer süreklilik sağlayabilir.
mqttsubscribeauth tcp://ipadres:port,konu,cihaz kimliği,yayınlanacak içerik,kullanıcı,şifre
Android üzerindeki CEYD-A, cihaz üzerinde çalıştığı için MQTT komutları cihaz üzerinde işlem görür ve cihaz MQTT sunucusu vasıtası ile diğer cihazlarla iletişim halinde olur. CEYD-A’nın kurulu olduğu cihaz üzerinde çalışabilmesi, aynı ağ üzerinde bulunan cihazlar ile etkileşim içinde olabilmesi adına bir avantajdır. Ayrıca dış dünyadaki MQTT sunucuları ile de bağlantı kurup diğer ağlardaki cihazlara da ulaşabilme imkanı vardır.
CEYD-A kullanarak sesinizle arabayı çalıştırmak, korna çalmak, silecekleri çalıştırmak, bagajı açmak, lambaları açmak, klimayı devreye almak mümkündür. Tabii ki yapılabilecekler bunlarla da sınırlı değil. CEYD-A’ nın yaptığı işlem sonrası sizi sesli bilgilendirmesi de cabası.
Web Servis Desteği
Web servis desteğinde ise Android üzerinde çalışan CEYD-A yapısının tam tersine CEYD-A ana sunucu üzerinde işlem görür. Web servis ile bağlanan istemci uygulamalar servis API vasıtası ile CEYD komutlarını sunucu üzerinde çalıştırırlar ve sonucunu alırlar. Bu yöntemde ses algılama, konuşma gibi teknik açıdan oluşan yük geliştiricinin oluşturduğu istemci uygulamadadır. Web servis sadece CEYD-A komutlarını sunucuda çalıştırıp sonuçlarını istemciye sağlamaktadır.
Web servis desteği ile ilgili detaylı bilgiye https://ceyda.docs.apiary.iosayfasından ulaşabilirsiniz.
Kendi uygulamalarınızı CEYD-A’nın hizmetinden yararlandırmak için username ve token bilgilerine ihtiyacınız olacaktır. Web servisi kişisel ve akademik amaçla kullanmak ücretsizdir. Sadece oluşacak taleplerden oluşacak yoğunluğu engellemek için kota sınırı eklenmiştir. Akademik çalışmalar için kota sınırı tamamen kaldırılabilir. Bunun için kota talebinde bulunmanız yeterlidir. Ticari kullanımlar için ise teklif alınması gereklidir.
Username ve token bilgileri için http://beta.ceyd-a.com/ sitesine ücretsiz oluşturulan kullanıcı bilgileriyle giriş yaptığınızda ekranda kullanıcı ve token bilgilerinizi görebilirsiniz. Ayrıca bu ekranda kendi yazdığınız CEYD kodlarını da deneyebilirsiniz.
Uygulamalarınız üzerinden CEYD-A’ya aşağıdaki örneklerdeki ulaşabilirsiniz.
ÖRNEK 1
ÖRNEK 2
Örneklerden görüleceği üzere POST yöntemi kullanarak web servise username,token ve code alanları ile ulaşıyoruz. Code alanında ister örnek 1deki gibi CEYD kodları, ister düz metin kullanabiliyoruz. Düz metin yorumlanıp cevap olarak döndürülüyor. Eğer type alanını text olarak atarsak sonuç bize answer alanında düz metin formatında dönecektir. Bu alan belirtilmemişse HTML formatında dönüş olacaktır. Cevap kısmındaki priorityyorumlanan cevabın hangi öncelikte döndüğüdür. Eğer aynı soru kalıbını kendi cevabımızla oluşturmak için komut oluşturacak isek önceliği bu değerden fazla olmalıdır ki tanımladığınız yeni komut devreye girsin. Tanımladığınız komutları https://kodla.ceyd-a.com sayfasından girebilirsiniz. Bu komutlar sadece sizin kullanıcı isminizde aktif hale gelecektir. Eğer komutunuz onaylanırsa tüm kullanıcılar da bu komut içeriğinden yararlanabilir. commandname alanı ise devreye giren komutun soru kelimesini belirtmektedir. Sizin yazacağınız komutlarda eğer bu komutu ezmek istiyorsanız aynı soru kelimesini kullanıp önceliği yüksek bir komut tanımlayabilirsiniz. Kendi komutlarınızı yazdıktan sonra code alanına komutlarımı yükle yazıp yeni bir POST isteği gönderirseniz size komutlarınız yüklenmiştir cevabı gelecektir. Bu işlem yeni tanımladığınız komutların devreye alındığını göstermektedir.
CEYD-A yapısını kullanan Telegram Botu Yazalım
Telegram, çoklu platform desteği sunan, Whatsapp uygulaması benzeri güvenli anlık mesajlaşma servisidir. Web servis yapısını kullanarak Python da yazılmış bir Telegram botunun kaynak kodunu aşağıda bulabilirsiniz. Örnek kodda CEYD-A USERNAME ve CEYD-A TOKEN CODE değerlerini kendi username ve tokenname bilgilerinizle değiştirebilirsiniz.
Ahmet Taşdemir’e CEYD-A ile Otomobil Kontrolü projesini geliştirdiği ve bu yazının gerçekleşmesinde olan katkılarından dolayı teşekkürlerimi bir borç bilirim.
Muzaffer YILDIRIM’ a CEYD-A altyapısını kullanan hazırladığı Telegram botu için teşekkürlerimi sunarım