@@ -96,7 +96,9 @@ new_RemoteLlmApi <- function(api_key_path, provider, no_internet = NULL, exclude
9696
9797 if (inherits(is_valid , " error" )) {
9898 # set error message
99- err_msg <- is_valid $ message | > clean_error_message()
99+ err_msg <- is_valid $ message | > clean_error_message(
100+ replace_text = c(" HTTP 401 Unauthorized" = " Unauthorized: API key is invalid or expired" )
101+ )
100102
101103 # test the other provider
102104 other_provider <- ifelse(provider == " OpenAI" , " DeepSeek" , " OpenAI" )
@@ -238,8 +240,10 @@ try_send_request <- function(request) {
238240 response <- tryCatch(
239241 req_perform(request ),
240242 error = function (e ) {
241- return (structure(list (), error = paste(" API request failed:" ,
242- clean_error_message(e $ message ))))
243+ msg <- e $ message | > clean_error_message(
244+ replace_text = c(" HTTP 401 Unauthorized" = " Unauthorized: API key is invalid or expired" )
245+ )
246+ return (structure(list (), error = paste(" API request failed:" , msg )))
243247 }
244248 )
245249
@@ -259,9 +263,10 @@ try_send_request <- function(request) {
259263 if (! is.null(response $ status_code ) && response $ status_code != 200 ) {
260264 warning(sprintf(" API returned HTTP %s: %s" , response $ status_code ,
261265 parsed $ error $ message %|| % " Unknown error" ))
262- attr(parsed , " error" ) <- clean_error_message(
263- parsed $ error $ message %|| % paste(" HTTP" , response $ status_code )
264- )
266+ attr(parsed , " error" ) <- parsed $ error $ message %|| % paste(" HTTP" , response $ status_code ) | >
267+ clean_error_message(
268+ replace_text = c(" HTTP 401 Unauthorized" = " Unauthorized: API key is invalid or expired" )
269+ )
265270 }
266271
267272 return (parsed )
@@ -284,12 +289,16 @@ validate_api_key <- function(api_key, url_models) {
284289}
285290
286291
287- clean_error_message <- function (msg ) {
292+ clean_error_message <- function (msg , replace_text = c() ) {
288293 # Remove ANSI escape sequences
289294 msg <- gsub(" \0 33\\ [[0-9;]*m" , " " , msg )
290295
291- # Replace known HTTP codes with friendly text
292- msg <- gsub(" HTTP 401 Unauthorized" , " Unauthorized: API key is invalid or expired" , msg )
296+ # Replace specified patterns
297+ if (length(replace_text ) > 0 ) {
298+ for (pattern in names(replace_text )) {
299+ msg <- gsub(pattern , replace_text [[pattern ]], msg )
300+ }
301+ }
293302
294303 return (trimws(msg ))
295304}
0 commit comments