## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  eval = FALSE
)

## -----------------------------------------------------------------------------
#  library(conflibertR)

## -----------------------------------------------------------------------------
#  demo <- conflibert_example("active")
#  
#  nrow(demo$seed)      # 20 labeled seed texts
#  length(demo$pool)    # 61 unlabeled pool texts
#  nrow(demo$dev)       # 20 dev texts
#  length(demo$pool_labels)  # oracle labels (for simulation)

## -----------------------------------------------------------------------------
#  session <- conflibert_active_start(
#    seed       = demo$seed,
#    pool       = demo$pool,
#    dev        = demo$dev,
#    model      = "ConfliBERT",
#    task       = "binary",
#    strategy   = "entropy",   # or "margin", "least_confidence"
#    query_size = 10,
#    epochs     = 1
#  )
#  
#  session

## -----------------------------------------------------------------------------
#  labels  <- conflibert_active_label(session)
#  session <- conflibert_active_next(session, labels = labels)

## -----------------------------------------------------------------------------
#  # labels in the same order as session$query
#  labels  <- c(1, 0, 1, 0, 0, 1, 0, 1, 0, 1)
#  session <- conflibert_active_next(session, labels = labels)

## -----------------------------------------------------------------------------
#  labels  <- unname(demo$pool_labels[session$query$text])
#  session <- conflibert_active_next(session, labels = labels)
#  session

## -----------------------------------------------------------------------------
#  for (round in 2:5) {
#    if (session$done) break
#    labels  <- unname(demo$pool_labels[session$query$text])
#    session <- conflibert_active_next(session, labels = labels)
#  }
#  
#  session$metrics

## -----------------------------------------------------------------------------
#  plot(session)
#  
#  # or a single panel:
#  plot(session, which = "metrics")
#  plot(session, which = "uncertainty")

## -----------------------------------------------------------------------------
#  session <- conflibert_active_start(
#    seed = demo$seed, pool = demo$pool, dev = demo$dev,
#    strategy = "entropy",
#    diverse  = TRUE,
#    diversity_candidates = 30    # defaults to 3 * query_size
#  )

## -----------------------------------------------------------------------------
#  session <- conflibert_active_start(
#    seed = demo$seed, pool = demo$pool, dev = demo$dev,
#    model      = "DeBERTa v3 Base",
#    use_lora   = TRUE,
#    lora_rank  = 8,
#    lora_alpha = 16
#  )

## -----------------------------------------------------------------------------
#  conflibert_active_save(session, "my_al_model")

