## -----------------------------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  eval = requireNamespace("parsnip", quietly = TRUE) && requireNamespace("recipes", quietly = TRUE) && requireNamespace("workflows", quietly = TRUE)
)

## -----------------------------------------------------------------------------
library(parsnip)
library(recipes)
library(workflows)
data(bivariate, package = "modeldata")
bivariate_train

biv_rec <-
  recipe(Class ~ ., data = bivariate_train) |>
  step_BoxCox(all_predictors())|>
  step_normalize(all_predictors())

svm_spec <-
  svm_linear(mode = "classification") |>
  set_engine("LiblineaR")

svm_fit <- 
  workflow(biv_rec, svm_spec) |>
  fit(sample_frac(bivariate_train, 0.7))

## -----------------------------------------------------------------------------
library(vetiver)
v <- vetiver_model(svm_fit, "biv_svm")
v

## -----------------------------------------------------------------------------
library(pins)
model_board <- board_temp(versioned = TRUE)
model_board |> vetiver_pin_write(v)

## -----------------------------------------------------------------------------
svm_fit <- 
  workflow(biv_rec, svm_spec) |>
  fit(sample_frac(bivariate_train, 0.7))

v <- vetiver_model(svm_fit, "biv_svm")

model_board |> vetiver_pin_write(v)

## -----------------------------------------------------------------------------
model_board |> pin_versions("biv_svm")

## -----------------------------------------------------------------------------
library(plumber)
pr() |>
  vetiver_api(v)

## -----------------------------------------------------------------------------
# vetiver_write_plumber(model_board, "biv_svm")

## -----------------------------------------------------------------------------
tmp <- tempfile()
vetiver_write_plumber(model_board, "biv_svm", file = tmp)
cat(readr::read_lines(tmp), sep = "\n")

## -----------------------------------------------------------------------------
library(vetiver)
endpoint <- vetiver_endpoint("http://127.0.0.1:8088/predict")
endpoint

