Skip to contents

This function writes jsonl files from a list of jsonl records.

Usage

write_jsonl_files(
  jsonl_records,
  dir_path,
  name_prefix = stringr::str_c(stringr::str_remove_all(Sys.time(), "\\D"),
    "_batch-input"),
  max_mb = 100
)

Arguments

jsonl_records

(list) A list of jsonl records.

dir_path

(chr) The directory path where to write the jsonl files.

name_prefix

(chr, default = "batch-input") The prefix of the jsonl files.

max_mb

(numeric, default = 100) The maximum size of the jsonl files in MB.

Value

(invisible) The jsonl records.

Examples

  role <- "Sei l'assistente di un docente universitario."
  context <- "State analizzando i commenti degli studenti dell'ultimo corso."
  task <- "Il tuo compito è capire se sono soddisfatti del corso."
  instructions <- "Analizza i commenti e decidi se sono soddisfatti o meno."
  output <- "Riporta 'soddisfatto' o 'insoddisfatto'."
  style <- "Non aggiungere nessun commento, restituisci solo ed
     esclusivamente la classificazione."
  examples <- "
    commento_1: 'Mi è piaciuto molto il corso; davvero interessante.'
    classificazione_1: 'soddisfatto'
    commento_2: 'Non mi è piaciuto per niente; una noia mortale'
    classificazione_2: 'insoddisfatto'
    "

  sys_prompt <- compose_sys_prompt(role = role, context = context)
  usr_prompt <- compose_usr_prompt(
    task = task, instructions = instructions, output = output,
    style = style, examples = examples
  )

  prompter <- create_usr_data_prompter(usr_prompt = usr_prompt)

  jsonl_on_db <- tibble::tibble(
    commenti = c(
      "deadly boring!",
      "A bit boring, but interesting",
      "How nice, I loved it!"
    )
  ) |>
    dplyr::mutate(
      id = dplyr::row_number(),
      prompt = commenti |>
        purrr::map(
          \(x) compose_prompt_api(
            sys_prompt = sys_prompt,
            usr_prompt = prompter(x)
          )
        ),
      jsonl = create_jsonl_records(prompt, id)
    ) |>
    dplyr::pull(jsonl)

  # eval
  temp_dir <- tempdir()
  write_jsonl_files(jsonl_on_db, temp_dir)