ИнтересноеОсновнаяРецепты

Модель как сервис

Posted

Допустим у вас есть некая модель прогнозирования в R.
Пусть самая простая. Например, такая:

data("cars")
m <- lm(data=cars, dist~speed)

И вот надо вам результаты прогнозирования этой модели передать куда-то. Пусть даже потребитель данных этой модели будет никак не связан с R...

Одним из решений этой проблемы может быть организацией web-сервиса со своим простым API. То есть - мы передаем в сервис параметры модели - а он возвращает ответ модели.
Как очень многое в R - существует решение "в одну строчку".

Для начала напишем функцию, которая будет брать на вход текстовый параметр, выполнять прогнозирование модели и выводить в ответ такой же текстовый результат:
solve <- function(x)
{
x <- as.numeric(x)
y <- as.numeric(predict(m, newdata = data.frame(speed=x)))

return(as.character(y))
}

А теперь то самое решение "в одну строчку":
library(jug)
jug() %>%
get("/", decorate(solve)) %>%
simple_error_handler() %>%
serve_it()

Соответственно - у нас на компьютере поднялся web-сервис который можно использовать следующим образом:
http://127.0.0.1:8080/?x=99005
То есть, в запросе мы передаем ему значение параметра x, в ответе сервера - расчет модели...

Очевидно, что сервер можно поднять на любом IP.

Модель как сервис: 2 комментария

  1. Какого вида запрос, ответ? REST? Пример запроса очень был бы не лишним. Иначе информация интересная.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.