Errores y límites

English version: vignette("errors-and-limits", package = "ellmercodex").

library(ellmercodex)

El uso del plan de ChatGPT no es lo mismo que la API de OpenAI: es una vista previa con sus propios límites, y algunas funciones de la API no están disponibles. Este artículo enumera lo que no está soportado y muestra cómo manejar errores en código que corre sin supervisión, como scripts programados o apps de Shiny.

Qué no está soportado

ellmercodex soporta el uso interactivo de una conversación a la vez mediante el objeto Chat de ellmer (ellmer 0.5.1 o posterior). Esto no está soportado:

Los límites del plan y las funciones soportadas pueden cambiar mientras dure la vista previa.

Maneja los errores

ellmercodex emite condiciones estructuradas, así que tu código puede reaccionar según el tipo de error sin analizar los mensajes:

tryCatch(
  chat$chat("Hola"),
  codex_auth_error = function(error) {
    message("Falló la autenticación; vuelve a ejecutar codex_login().")
  },
  codex_usage_limit_error = function(error) {
    message("Se alcanzó el límite de uso del plan de ChatGPT; prueba más tarde.")
  },
  codex_network_error = function(error) {
    message("Error de red; revisa tu conexión y vuelve a intentar.")
  },
  codex_protocol_changed_error = function(error) {
    message("Puede que el protocolo haya cambiado; actualiza ellmercodex.")
  },
  error = function(error) {
    message("La solicitud falló: ", conditionMessage(error))
  }
)

Maneja primero la condición más específica. Las clases principales son:

La lista completa está en ?ellmercodex-conditions (en inglés).

Qué contienen los mensajes de error

Los mensajes se depuran antes de emitirse. No incluyen a propósito cuerpos de respuesta sin procesar, bearer tokens, códigos de autorización, el estado de OAuth, identificadores de cuenta ni el contenido del almacén de credenciales, así que puedes registrarlos sin riesgo.