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

Опубликовано Опубликовано в рубрике Интересное, Основная, Рецепты

Допустим у вас есть некая модель прогнозирования в 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? Пример запроса очень был бы не лишним. Иначе информация интересная.

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