English version:
vignette("errors-and-limits", package = "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.0 o posterior). Esto no
está soportado:
-
parallel_chat()ybatch_chat(). El uso del plan de ChatGPT solo funciona con streaming, así que las funciones deellmerpara trabajo en paralelo y por lotes quedan fuera del alcance soportado. -
Argumentos excluidos. La vista previa rechaza
temperature,top_p,max_tokens(max_output_tokens),metadatayprevious_response_id, entre otros.ellmercodexfalla antes de enviar una solicitud que los use. - Conteo de tokens del proveedor y gestión de archivos. Fallan antes de enviar cualquier solicitud.
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:
-
codex_auth_error: la clase padre de todos los errores de inicio de sesión y credenciales, como credenciales ausentes, mal formadas o vencidas. - Errores al comunicarse con el servicio:
codex_network_error,codex_authentication_error,codex_rate_limit_error,codex_server_error,codex_model_unavailable_error,codex_malformed_request_error,codex_protocol_errorycodex_protocol_changed_error, que indica que la forma de la respuesta del servicio puede haber cambiado. - Errores del plan de ChatGPT, que también llevan una de las clases
anteriores:
codex_usage_limit_error(se alcanzó el límite de uso del plan; también es unacodex_rate_limit_error),codex_usage_unavailable_error(el uso del plan no está disponible temporalmente; también es unacodex_server_error) ycodex_plan_ineligible_error(la cuenta o el espacio de trabajo no es elegible; también es unacodex_authentication_error). -
codex_chat_errorycodex_chat_argument_error: problemas del lado deellmer, como un argumento no soportado.
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.
