| ben-aaron188 | 3818e7c | 2022-09-08 17:49:01 +0200 | [diff] [blame] | 1 | gpt3.bunch_request = function(data | 
|  | 2 | , prompt_var | 
|  | 3 | , completion_var_name = 'gpt3_completion' | 
|  | 4 | , param_model = 'text-davinci-002' | 
|  | 5 | , param_suffix = NULL | 
|  | 6 | , param_max_tokens = 256 | 
|  | 7 | , param_temperature = 0.9 | 
|  | 8 | , param_top_p = 1 | 
|  | 9 | , param_n = 1 | 
|  | 10 | , param_stream = F | 
|  | 11 | , param_logprobs = NULL | 
|  | 12 | , param_echo = F | 
|  | 13 | , param_stop = NULL | 
|  | 14 | , param_presence_penalty = 0 | 
|  | 15 | , param_frequency_penalty = 0 | 
|  | 16 | , param_best_of = 1 | 
|  | 17 | , param_logit_bias = NULL){ | 
|  | 18 |  | 
|  | 19 |  | 
|  | 20 | data_ = data | 
|  | 21 |  | 
|  | 22 | data_length = data_[, .N] | 
|  | 23 |  | 
|  | 24 | data_[, completion_name := ''] | 
|  | 25 |  | 
|  | 26 |  | 
|  | 27 | for(i in 1:data_length){ | 
|  | 28 |  | 
|  | 29 | print(paste0('Request: ', i, '/', data_length)) | 
|  | 30 |  | 
|  | 31 | row_outcome = gpt3.make_request(prompt = as.character(unname(data_[i, ..prompt_var])) | 
|  | 32 | , model = param_model | 
|  | 33 | , output_type = 'detail' | 
|  | 34 | , suffix = param_suffix | 
|  | 35 | , max_tokens = param_max_tokens | 
|  | 36 | , temperature = param_temperature | 
|  | 37 | , top_p = param_top_p | 
|  | 38 | , n = param_n | 
|  | 39 | , stream = param_stream | 
|  | 40 | , logprobs = param_logprobs | 
|  | 41 | , echo = param_echo | 
|  | 42 | , stop = param_stop | 
|  | 43 | , presence_penalty = param_presence_penalty | 
|  | 44 | , frequency_penalty = param_frequency_penalty | 
|  | 45 | , best_of = param_best_of | 
|  | 46 | , logit_bias = param_logit_bias) | 
|  | 47 |  | 
|  | 48 |  | 
|  | 49 | data_$completion_name[i] = row_outcome$choices[[1]]$text | 
|  | 50 |  | 
|  | 51 |  | 
|  | 52 | } | 
|  | 53 |  | 
|  | 54 | data_cols = ncol(data_) | 
|  | 55 | names(data_)[data_cols] = completion_var_name | 
|  | 56 |  | 
|  | 57 | return(data_) | 
|  | 58 | } |