This function creates a jsonl file from a tibble.
Usage
create_jsonl_records(
prompt,
id = seq_along(prompt),
model = "gpt-4o-mini",
temperature = 0,
max_tokens = NULL,
seed = NULL,
prefix = "request-"
)
Arguments
- prompt
(list) The messages to be included in the jsonl record.
- id
(int) The id of the record.
- model
(chr, default = "gpt-4o-mini") The model to be used.
- temperature
(dbl) the temperature to use
- max_tokens
(dbl) the maximum number of tokens
- seed
(dbl) the seed to use
- prefix
(chr, default = "request-") The prefix of the custom id.
Examples
library(dplyr)
#>
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#>
#> filter, lag
#> The following objects are masked from ‘package:base’:
#>
#> intersect, setdiff, setequal, union
library(purrr)
library(stringr)
library(gpteasyr)
db <- tibble(
commenti = c(
"deadly boring!",
"A bit boring, but interesting",
"How nice, I loved it!"
)
)
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)
res <- db |>
mutate(
id = row_number(),
prompt = commenti |>
map(
\(x) compose_prompt_api(
sys_prompt = sys_prompt,
usr_prompt = prompter(x)
)
)
)
jsonl_direct <- create_jsonl_records(res[["prompt"]], res[["id"]]) |>
str_c(collapse = "\n")
jsonl_on_db <- res |>
mutate(
jsonl = create_jsonl_records(prompt, id)
) |>
pull(jsonl) |>
str_c(collapse = "\n")
identical(jsonl_on_db, jsonl_direct)
#> [1] TRUE