R’de kendi Slack botlarınızı ve web API’lerinizi oluşturun

R’de kendi Slack botlarınızı ve web API’lerinizi oluşturun

Slack’in en büyük çekiciliklerinden biri, çok genişletilebilir olmasıdır. Ana amacı grup işbirliği olsa da, eklenti uygulamalar iş analitiğiyle ilgili soruları yanıtlamaktan Jira ve Trello gibi araçlardan proje güncellemeleri sunmaya kadar her şeyi yapabilir.

Ticari üçüncü taraflardan ve açık kaynak geliştiricilerinden düzinelerce önceden yapılandırılmış Slack botu olsa da, kendi kodunuzu yazmak zor değil.

Bunun PHP ve Python’da nasıl yapılacağına dair öğreticiler zaten var. Ancak finans, hava durumu, hükümet bilgileri ve daha fazlasıyla ilgili verileri kolayca içe aktaran bazı R işlevlerinden yararlanmak ve bunlardan bazılarını Slack’in “özel eğik çizgi komutları” dediği şeye eklemek istedim. Bunlar, kullanıcıların sorgulara aşağıdaki gibi basit biçimlerle yanıt almalarını sağlar: /weather veya /stockprice.

Mevcut hisse senedi fiyatlarını almak için R’de özel bir Slack eğik çizgi komut botunu şu şekilde oluşturdum. Aynı teknikler, R ile içe aktarabileceğiniz ve işleyebileceğiniz diğer herhangi bir bilgi türü için de kullanılabilir.

Adım 1: R ile hisse senedi fiyatlarını bulun

R’de güncel bir hisse senedi fiyatı almak gülünç derecede kolaydır. quantmod paketini şununla kurun: install.packages("quantmod") ve sonra koş quantmod::getQuote("stocksymbol"). Örneğin, quantmod::getQuote("MSFT") en son Microsoft hisse senedi fiyatını döndürür. Sonuçlar bir R veri çerçevesi olarak geri gelir:

              Trade Time   Last Change % Change  Open  High   Low   Volume

Bunu bir metin yanıtına dönüştürmenizi öneririm, böylece kullanıcının en son fiyatı ve değişikliği görmesi daha kolay olur. Sonuç veri çerçevesindeki ilk öğe, raporlanan hisse senedi fiyatının zamanıdır; ikinci öğe (“Son” sütunu), mevcut en son fiyattır. Fiyatı iade etmenin yanı sıra, bir fiyatın mevcut olmaması durumunda insan tarafından okunabilir bir yanıt olması için muhtemelen biraz hata denetimi eklemek istersiniz. Bunu yapmak için basit bir R işlevi:

Şimdi bu işlevi, Slack gibi başka bir hizmetin sorgulayabileceği bir şeye, başka bir deyişle, URL aracılığıyla kullanılabilen bir API’ye dönüştürmemiz gerekecek.

2. Adım: R’de bir API kurun

FastRWeb projesini kullanmak veya R’yi PHP ve kabuk komut dosyaları aracılığıyla çalıştırmak gibi, R komut dosyalarını bir URL’den çalıştırılabilir hale getirmenin birkaç yolunu araştırdım. Ancak hepsinin kurulumu ve kurulumu, yalnızca basit bir Slack komutunu çalıştırmaya değecek kadar karmaşık görünüyordu. Sonra, herhangi bir R işlevini bir API’ye dönüştürebilen R tesisatçı paketini hatırladım. Tesisatçı, bir RStudio yazılım mühendisi ve Trestle Technology adlı bir start-up’ın başkanı olan Jeff Allen tarafından oluşturuldu ve R ile bir API oluşturmanın çok kolay ve zarif bir yolu.

Bunun yerel olarak ayarlanması kolaydır. ile paketi kurun install.packages("plumber")ve ardından işlevinizin başlangıcının hemen üzerindeki satıra aşağıdaki kodu ekleyin: #* @get /stockquote.

newGetQuote işlevi şimdi şöyle görünür:

 #* @get /stockquote   } 

bu #* işlevi bir API uç noktasına dönüştürmek için özel bir tesisatçı yorumudur. @get veri okumak için bir HTTP GET isteği olması gerektiği anlamına gelir. Tesisatçı da destekler @post, @put ve @delete. bu /stockquote sonrasında @get API’nin hangi yola yanıt vermesi gerektiğini belirtir. kullanma stockquote API URL biçiminin https://www.myurl.com/stockquote olacağı anlamına gelir. karakter dizisinden sonra / hisse senedi fiyatı, tekliflerim veya başka bir şey olabilirdi.

Bunu bir R dosyası olarak kaydedin. (Benimkini stockfunction.R olarak adlandırdım, ancak ona herhangi bir ad verebilirsiniz.)

İkinci bir R dosyası, bir tesisatçı sunucusu başlatmak ve stockfunction.R dosyasını (veya API-ize etmek istediğiniz işleve sahip dosyayı ne adlandırdıysanız) çalıştırmak için kod içermelidir. Bu ikinci dosya tesisatçı kitaplığını yükler, plumb() işleviyle stockfunction.R kodundan bir tesisatçı nesnesi oluşturur ve sunucunun dinleyeceği bağlantı noktasını ayarlar. Bu kod şöyle görünür:

Myserver.R adını verdiğim bu ikinci dosyadaki tüm kodu çalıştırır ve ardından URL’ye giderseniz https://localhost:8000/stockquote?thesymbol=MSFT bir tarayıcıda, tarayıcınızda hisse senedi fiyatını görmelisiniz.

Ardından, bu kodu Slack’in erişebileceği bir sisteme dağıtmamız gerekiyor.

Leave a Reply

Your email address will not be published. Required fields are marked *

*