使用JSON / DF的Model Plumber API卷曲检查
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用JSON / DF的Model Plumber API卷曲检查相关的知识,希望对你有一定的参考价值。
我使用以下代码创建了一个虚拟模型:
#get the data
data(Boston, package="MASS")
# train a model for median house price as a function of the other variables
bos_rf <- lm(medv ~ crim + indus + dis , data=Boston)
# save the model
saveRDS(bos_rf, "bos_rf.rds")
现在,我想使用水管工将此模型作为API公开。为此,我的代码是
# load as bos_rf.R
bos_rf <- readRDS("bos_rf.rds")
#* @param input_json JSON file
#* @post /score
function(input_json)
{
temp <- toJSON(input_json, auto_unbox = T)
data <- fromJSON(temp) %>% as.data.frame
data = data %>% mutate_all(as.numeric)
predict(bos_rf, data)
}
我的参数上面是JSON,我很想将其保留为数据框。我正在将JSON转换为函数中的数据框
然后我使用]启动API>
# try API 1 # dummy_model_api <- plumber::plumb("2_R_code_to_API.R") dummy_model_api$run(host = '127.0.0.1', port = 8000)
当我在swagger门户中粘贴JSON时,API运行良好,但是当我使用以下命令运行curl时,API则运行正常
$ curl "http://127.0.0.1:8000/score" -d "@test.JSON" $ curl --data @test.json http://localhost:8000/score
没有工作。我如何直接将测试JSON传递给API以获得预测。请注意,如果我用R检验函数,则会得到预测。请告知如何手动传递JSON或DF来卷曲API请求并获得响应,而不是手动复制json /或使用每个变量一个一定义API输入。对于100个变量,这种方法不可行。
此JSON的样本如何也已经在大张旗鼓的主体中反映出来了。即在上方打开招摇工具时,体内已经有一个示例JSON,其中包含一些值并可以执行。
我使用下面的代码创建了一个虚拟模型:#get the data data(Boston,package =“ MASS”)#训练房价中位数作为其他变量bos_rf的函数的模型
答案
如果管道工拒绝了以fromJSON
开头的请求,它将在请求正文上执行{
。以上是关于使用JSON / DF的Model Plumber API卷曲检查的主要内容,如果未能解决你的问题,请参考以下文章