No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Manejo de errores y excepciones de la API de OpenAI

23/24
Recursos

Con la era digital en pleno auge, el dominio de las APIs y cómo gestionar sus posibles irregularidades se ha convertido en una destreza esencial para los desarrolladores. Hoy profundizaremos en la materia, aprendiendo sobre el manejo de errores y excepciones en la API de OpenAI. Para ello, iniciaremos con un ejemplo práctico en el que se implementan mejoras y se depura nuestro código desde Visual Studio Code.

Ajustando el código en Visual Studio Code

Antes de sumergirnos en el mundo de las excepciones, es crucial limpiar nuestro código de cualquier error. Examinemos uno en particular donde la información se envía incorrectamente. En dicho fragmento, hay que asegurarse de que la data se mande de manera adecuada en un diccionario determinado, enfocándonos específicamente en el offset, que establece el punto desde el cual deseamos comenzar la lectura del mensaje.

¿Cómo agregar la coherencia de las respuestas?

Para obtener respuestas más lúcidas de nuestro bot, es importante incluir un stop adecuado. En este caso, lo configuraremos como end tal y como se especificaba en nuestro set de datos. Esto nos ayudará a delimitar las respuestas y a evitar que el bot las extienda innecesariamente.

Prevenir bucles repetitivos

Otro aspecto clave es asegurarse de que el bot no caiga en un bucle, proporcionando respuestas continuas a la misma pregunta. Para prevenir esto, vamos a ajustar el manejo del tiempo, utilizando un else en el código para evitar repeticiones.

Identificación y manejo de errores

Tras ejecutar el bot y comprobar su correcto funcionamiento en Telegram, damos paso al aprendizaje sobre los errores y excepciones específicos de la API de OpenAI.

¿Cuáles son los errores comunes en la API de OpenAI?

Hablamos de errores relacionados con:

  • Claves de API incorrectas o caducadas.
  • Problemas vinculados a la organización del usuario.
  • Límites en el uso de los modelos o en la cantidad de solicitudes (requests).

Estos son puntos críticos que todos desarrolladores deben conocer y saber cómo manejar adecuadamente.

Utilizando try except en Python

Para ilustrar la aplicación de buenas prácticas, realicemos una simulación de error en un notebook, intentando llamar a un modelo sin modificar la clave API requerida. Observaremos un authentication error que resolveremos aplicando un bloque try except.

Aquí radica la elegancia de la programación defensiva: nos preparamos para el fallo y aprendemos a manejarlo con gracia.

Desafío

Como desarrolladores, debemos aspirar a expandir el alcance de nuestras creaciones. Te invito a llevar el PlatziBot más allá de tu computadora local, afrontando el desafío de desplegarlo en un servidor. Explora la posibilidad de usar el servidor de Telegram para ello. Recuerda, la implementación y manejo de excepciones no solo es un criterio de un código robusto, sino también el sello de un programador proactivo y meticuloso.

Aportes 3

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

noooo puede ser justo lo que me interesaba era la parte del servidor porfavor aunque sea saquen un blog paso a paso

Ya decia yo que estaba extraño hacer peticiones https sin manejo de alguna exception. Sin bien tiene un enfoque distinto y por eso no hacemos el manejo de conceptos como el asincronismo,
Es correcto hacer manejo de posible Excepciones ya que estamos conectandonos a la internet.
En el ejemplo proporcionado de la documentacion nos da muchos posibles errores al hacer una peticion:

try:
   #Haga su solicitud de API OpenAI aquí
   respuesta = openai.Completion.create(prompt="Hola mundo",
                                       model="text-davinci-003")
except openai.error.APIError as e:
   #Manejar error de API aquí, p. reintentar o iniciar sesión
   print(f"La API de OpenAI devolvió un error de API: {e}")
   pass #Aprobar
except openai.error.APIConnectionError as e:
   #Manejar error de conexión aquí
   print(f"Error al conectarse a la API de OpenAI: {e}")
   pass
except openai.error.RateLimitError as e:
   #Manejar error de límite de tasa (recomendamos usar retroceso exponencial)
   print(f"La solicitud de API de OpenAI excedió el límite de frecuencia: {e}")
   pass
¿Cómo que reto? Hice el curso con la promesa de que nos enseñarían a desarrollar un chatbot en telegram :( no a correr el chatbot desde mi computadora.