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.
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() y
batch_chat(). El uso del plan de ChatGPT solo
funciona con streaming, así que las funciones de ellmer
para trabajo en paralelo y por lotes quedan fuera del alcance
soportado.temperature, top_p, max_tokens
(max_output_tokens), metadata y
previous_response_id, entre otros. ellmercodex
falla antes de enviar una solicitud que los use.Los límites del plan y las funciones soportadas pueden cambiar mientras dure la vista previa.
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.codex_network_error,
codex_authentication_error,
codex_rate_limit_error, codex_server_error,
codex_model_unavailable_error,
codex_malformed_request_error,
codex_protocol_error y
codex_protocol_changed_error, que indica que la forma de la
respuesta del servicio puede haber cambiado.codex_usage_limit_error (se alcanzó el límite
de uso del plan; también es una codex_rate_limit_error),
codex_usage_unavailable_error (el uso del plan no está
disponible temporalmente; también es una
codex_server_error) y
codex_plan_ineligible_error (la cuenta o el espacio de
trabajo no es elegible; también es una
codex_authentication_error).codex_chat_error y
codex_chat_argument_error: problemas del lado de
ellmer, como un argumento no soportado.La lista completa está en ?ellmercodex-conditions (en
inglés).
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.