beakr – Uma pequena estrutura da web para R

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

[ad_1]

[This article was first published on R, and kindly contributed to R-bloggers]. (Você pode relatar problemas sobre o conteúdo desta página aqui)


Quer compartilhar seu conteúdo em R-bloggers? clique aqui se você tiver um blog, ou aqui se não tiver.

O que é o beakr?

copo é uma estrutura da web minimalista e sem opinião para desenvolver e implantar serviços da web com R. Ele foi projetado para tornar o mais simples possível para cientistas de dados e engenheiros escreverem rapidamente aplicativos, serviços e APIs da web sem se preocupar com detalhes de nível inferior ou efeitos colaterais de alto nível. Em outras palavras, copo é feito para ser explícito, robusto, e escalável – e as baterias não estão incluídas.

copo é construído sobre httpuv pacote – que é construído sobre as bibliotecas C libuv e http-parser. Por enquanto copo será estável para a maioria dos casos de uso, não é necessariamente recomendado para construir aplicativos da web extensos e não foi projetado para ser uma estrutura da web com desempenho especial. Se você está procurando uma estrutura da web com recursos completos, consulte Shiny, django, etc. copo é inspirado nas estruturas minimalistas e amplamente expansíveis oferecidas por Express.js e Flask.

copo adota uma abordagem programática para criar serviços da web e a estrutura se concentra apenas na funcionalidade do protocolo HTTP principal (por exemplo POST, GET, PUT, etc.). Para ilustrar, podemos criar um aplicativo “Hello World” com copo com apenas algumas linhas de código.

library(beakr)
beakr %
  httpGET("/hello", function(req, res, err) {
    "Hello, world!"
  }) %>% 
  listen() 

A execução deste script servirá o aplicativo (por padrão em host = 127.0.0.1 e port = 25118) Quando um cliente aponta para o caminho /hello uma solicitação GET é feita ao servidor. o copo instância é ouvindo e lida com uma resposta definida do servidor – neste caso, a resposta mostrará uma página HTML com o texto simples “Olá, mundo!”.

Leia Também  nnlib2Rcpp: um pacote R (nother) para redes neurais

Então, para que serve o beakr?

copo é simples e flexível e, como tal, é mais adequado para simplicidade. É uma ótima ferramenta para criar serviços da web de forma rápida e fácil, sem as limitações dos concorrentes mais pesados, para que você possa se preocupar menos em ter que aprender uma nova estrutura e mais sobre o que o aplicativo deve fazer. Alguns exemplos podem ser:

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
  • Construindo APIs RESTful
  • Criação de aplicativos e serviços da web

Exemplos

API REST

É cada vez mais importante para cientistas de dados compartilhar dados operacionais entre computadores, linguagens e pipelines. copo torna mais fácil criar microsserviços como APIs RESTful (REpresentational State Transfer) e outras infraestruturas que são flexíveis e fáceis de implantar, dimensionar e manter.

Por exemplo, podemos construir facilmente uma API RESTful com dois endpoints (/Sepal.Length, /Sepal.Width) que responderá com um objeto de dados JSON recuperado do conjunto de dados Fischers Iris.

library(beakr)

data("iris")

beakr % 
  httpGET("/iris/Sepal.Width", function(req, res, err) {
    res$json(iris$Sepal.Width)
  }) %>% 
  httpGET("/iris/Sepal.Length", function(req, res, err) {
    res$json(iris$Sepal.Length)
  }) %>%
  listen()

Agora, um cliente (ou um navegador da web) pode acessar os dados JSON em 127.0.0.1:25118/Sepal.Length e 127.0.0.1:25118/Sepal.Width.

Implantar um modelo

copo também pode ser usado para implantar modelos e algoritmos como microsserviços. Por exemplo, podemos implantar um modelo KNN simples para retornar as espécies de flores (do conjunto de dados Iris) para um cliente como texto simples. Usando o método POST, podemos criar um copo instância para lidar com o recebimento de um objeto JSON contendo os comprimentos e larguras das sépalas e pétalas (sl, sw, pl, pw, respectivamente).

Primeiro, podemos definir e treinar um modelo de flor simplista de vizinhos K-mais próximos usando o acento circunflexo pacote.

library(caret)

# Load the Iris data set 
data('iris')

# Train using KNN
knn_model 

We can create and expose normal R functions using beakr‘s built in decorate() function, which easily prepares functions to accept parameters and respond as you’d expect. With this is mind, we can write a simple function to accept our petal and sepal parameters and return the predicted species using our model defined above.

# Function to predict the species using the trained model.
predict_species %
  httpPOST("/predict-species", decorate(predict_species)) %>%
  handleErrors() %>%
  listen(host = "127.0.0.1", port = 25118)

Enviando uma solicitação POST para 127.0.0.1:25118/predict-species com um objeto JSON contendo dados numéricos rotulados, podemos ver que ele responde com uma resposta.

$ curl -X POST http://127.0.0.1:25118/predict-species 
  -H 'content-type: application/json' 
  -d '{ "sl": 5.3, "sw": 4, "pl": 1.6, "pw": 0.2 }'
  
> setosa

copo realmente brilha neste tipo de coisas. Na Mazama Science, usamos copo para criar uma grande variedade de serviços da web que realizam tarefas como:

  • criação de produtos de dados brutos e processados
  • criação de gráficos de dados para inclusão em outras interfaces
  • geração de relatório automatizado

Qualquer tarefa para a qual você possa criar um script é candidata à conversão em um serviço da web. copo tornou-se uma ferramenta comprovada que nós da Mazama Science estamos ansiosos para compartilhar!

Você pode instalar copo do CRAN com: install.packages('beakr').



[ad_2]

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br