如何使用 CMD 行 R 中的管道工 API 部署模型?
How to Deploy model using plumber API from CMD line R?
刚开始使用 plumber API,尝试部署 R 模型,我保存了 R 模型和测试数据 (OneRecord)。 运行 管道工 API 来自 CMD 行,127.0.0.1:8000 returns 错误“{"error":[“500 - 内部服务器错误”]}”
并且终端显示错误 "simpleError in if (opts$show.learner.output) identity else capture.output: argument is of length zero"
我的 R 代码
#plumb_test.R
library(plumber)
#Simple msg command
#* @apiTitle Plumber Example API
#* Echo back the input
#* @param msg The message to echo
#* @get /echo
function(msg=""){
list(msg = paste0("The message is: '", msg, "'"))
}
#My Model
#* @get /run
function(){
rf_prediction <- predict(readRDS("rf_unwrap.rds"), newdata = as.data.frame(readRDS("Test_data.Rds")))
rf_prediction$data
}
管道工的 R 代码 运行
library(plumber)
pr <- plumb("plumb_test.R")
pr$run(port=8000)
消息正常工作
http://127.0.0.1:8000/echo?msg=hellohru
returns me
{"msg":["The message is: 'hellohru'"]}
但是我的模型returns
{"error":["500 - Internal server error"]}
in the terminal I am getting
> pr$run(port=8000)
Starting server to listen on port 8000
<simpleError in if (opts$show.learner.output) identity else capture.output: argument is of length zero>
我从 windows 命令行 运行ning 如下
C:\R\R-3.5.2\bin>r -f plumb_run.R
所有文件都在 bin 文件夹中(模型、测试数据、plumb R 脚本)
期待预测的输出,不知道错误是什么意思。
加载 mlr 库以及 plumber 并在函数中使用 print,一切正常
library(plumber)
library(mlr)
#My Model
#* @get /run
function(){
print(predict(readRDS("rf_unwrap.rds"), newdata = as.data.frame(readRDS("Test_data.Rds")))$data)
}
刚开始使用 plumber API,尝试部署 R 模型,我保存了 R 模型和测试数据 (OneRecord)。 运行 管道工 API 来自 CMD 行,127.0.0.1:8000 returns 错误“{"error":[“500 - 内部服务器错误”]}” 并且终端显示错误 "simpleError in if (opts$show.learner.output) identity else capture.output: argument is of length zero"
我的 R 代码
#plumb_test.R
library(plumber)
#Simple msg command
#* @apiTitle Plumber Example API
#* Echo back the input
#* @param msg The message to echo
#* @get /echo
function(msg=""){
list(msg = paste0("The message is: '", msg, "'"))
}
#My Model
#* @get /run
function(){
rf_prediction <- predict(readRDS("rf_unwrap.rds"), newdata = as.data.frame(readRDS("Test_data.Rds")))
rf_prediction$data
}
管道工的 R 代码 运行
library(plumber)
pr <- plumb("plumb_test.R")
pr$run(port=8000)
消息正常工作
http://127.0.0.1:8000/echo?msg=hellohru
returns me
{"msg":["The message is: 'hellohru'"]}
但是我的模型returns
{"error":["500 - Internal server error"]}
in the terminal I am getting
> pr$run(port=8000)
Starting server to listen on port 8000
<simpleError in if (opts$show.learner.output) identity else capture.output: argument is of length zero>
我从 windows 命令行 运行ning 如下
C:\R\R-3.5.2\bin>r -f plumb_run.R
所有文件都在 bin 文件夹中(模型、测试数据、plumb R 脚本)
期待预测的输出,不知道错误是什么意思。
加载 mlr 库以及 plumber 并在函数中使用 print,一切正常
library(plumber)
library(mlr)
#My Model
#* @get /run
function(){
print(predict(readRDS("rf_unwrap.rds"), newdata = as.data.frame(readRDS("Test_data.Rds")))$data)
}