r-水管工端点中的模型创建/加载



我关注这篇伟大的文章和这篇回购。此处的rest端点如下所示:

# build the model
source("make_model.R")
#* @get /predict_petal_length
get_predict_length <- function(petal_width){

# convert the input to a number
petal_width <- as.numeric(petal_width)

#create the prediction data frame
prediction_data <- data.frame(Petal.Width=petal_width)

# create the prediction
predict(model,prediction_data)
} 

和make_model.R,如下所示:

dataset <- iris
# create the model
model <- lm(Petal.Length ~ Petal.Width, data = dataset)

一切都很简单,而且效果很好。只是好奇的是,每个GET请求都会启动make_model.R的执行,还是这有点像Singleton设计模式?换句话说,make_model.R只执行一次吗?谢谢

要继续我的评论,source"(make_model.R")将只运行一次。结果将提供给所有提出的请求。这意味着您可以加载一次数据集或模型,并且这些数据集和模型将与环境共享以满足您的请求。

来自文件:

默认情况下,当您创建一个新的Plumber路由器时(隐式地,当您对文件调用plumb((时,新环境是专门为这个路由器创建的。正是在这种环境下将计算表达式并调用所有端点。

最新更新