vetiver_api {vetiver} | R Documentation |
Create a Plumber API to predict with a deployable vetiver_model()
object
Description
Use vetiver_api()
to add a POST endpoint for predictions from a
trained vetiver_model()
to a Plumber router.
Usage
vetiver_api(
pr,
vetiver_model,
path = "/predict",
debug = is_interactive(),
...
)
vetiver_pr_post(
pr,
vetiver_model,
path = "/predict",
debug = is_interactive(),
...,
check_prototype = TRUE,
check_ptype = deprecated()
)
vetiver_pr_docs(pr, vetiver_model, path = "/predict", all_docs = TRUE)
Arguments
pr |
A Plumber router, such as from |
vetiver_model |
A deployable |
path |
The endpoint path |
debug |
|
... |
Other arguments passed to |
check_prototype |
Should the input data prototype stored in
|
check_ptype |
|
all_docs |
Should the interactive visual API documentation be created
for all POST endpoints in the router |
Details
You can first store and version your vetiver_model()
with
vetiver_pin_write()
, and then create an API endpoint with vetiver_api()
.
Setting debug = TRUE
may expose any sensitive data from your model in
API errors.
Several GET endpoints will also be added to the router pr
, depending on the
characteristics of the model object:
a
/pin-url
endpoint to return the URL of the pinned modela
/metadata
endpoint to return any metadata stored with the modela
/ping
endpoint for the API healtha
/prototype
endpoint for the model's input data prototype (usecereal::cereal_from_json()
) to convert this back to a vctrs ptype
The function vetiver_api()
uses:
-
vetiver_pr_post()
for endpoint definition and -
vetiver_pr_docs()
to create visual API documentation
These modular functions are available for more advanced use cases.
Value
A Plumber router with the prediction endpoint added.
Examples
cars_lm <- lm(mpg ~ ., data = mtcars)
v <- vetiver_model(cars_lm, "cars_linear")
library(plumber)
pr() %>% vetiver_api(v)
## is the same as:
pr() %>% vetiver_pr_post(v) %>% vetiver_pr_docs(v)
## for either, next, pipe to `pr_run()`