Skip to contents

as_vitals_samples() reshapes a traces data frame into the samples format that a vitals Task's $get_samples() returns, for example to combine dsprrr runs with vitals results using vitals::vitals_bind(). as_dsprrr_traces() converts the other way.

Usage

as_vitals_samples(traces, input_column = NULL, include_chats = FALSE)

Arguments

traces

A traces data frame, such as export_traces() output. Export with include_prompts = TRUE and include_outputs = TRUE; otherwise input and result are empty.

input_column

Name of the column to use as input. NULL (the default) uses prompt.

include_chats

Whether to keep a solver_chat column when traces has one (default FALSE).

Value

A tibble with columns id ("trace_0001", ...), input, result (list-column from the output column), solver_metadata (list-column with latency, tokens, cost and timestamp), model and epoch (always 1).

Examples

traces <- tibble::tibble(
  prompt = c("question: What is 2+2?", "question: Capital of France?"),
  output = list(list(answer = "4"), list(answer = "Paris")),
  model = "gpt-6-luna",
  latency_ms = c(820, 640),
  input_tokens = c(52L, 55L),
  output_tokens = c(6L, 7L),
  cost = c(0.0001, 0.0001)
)
as_vitals_samples(traces)
#> # A tibble: 2 × 6
#>   id         input                      result       solver_metadata model epoch
#>   <chr>      <chr>                      <list>       <list>          <chr> <int>
#> 1 trace_0001 question: What is 2+2?     <named list> <named list>    gpt-…     1
#> 2 trace_0002 question: Capital of Fran… <named list> <named list>    gpt-…     1

if (FALSE) { # \dontrun{
samples <- as_vitals_samples(
  export_traces(classifier, include_prompts = TRUE, include_outputs = TRUE)
)
vitals::vitals_bind(dsprrr = samples)
} # }