Contenido del curso

Fine-tuning de modelos de OpenAI

Manejo de errores con try except en OpenAI

Resumen

Cuando trabajas con la API de OpenAI en un bot de Telegram, los errores no son un detalle menor: son la diferencia entre un bot que responde con coherencia y uno que se encicla repitiendo respuestas. Aquí aprenderás a corregir fallos comunes en tu código y a usar try except para capturar excepciones propias de la API, especialmente si estás construyendo un proyecto como un Platzi bot en Python.

Qué ajustes necesita tu bot antes de manejar errores

Antes de entrar al manejo de excepciones, hay tres correcciones puntuales que debes hacer en tu código para que el bot funcione bien.

  • Mover la información del diccionario al parámetro offset, que define el punto desde el cual quieres leer el mensaje.
  • Agregar el parámetro stop usando el valor space end, tal como lo definiste en tu set de datos, para obtener respuestas más coherentes.
  • Reubicar el time.sleep dentro de un else, de modo que el bot no se encicle enviando la misma respuesta a la misma pregunta.

Con estos ajustes, al ejecutar el bot desde Visual Studio Code y probarlo en Telegram con una pregunta como "¿qué curso recomiendas para aprender Python?", el modelo responde con el curso de fundamentos de Python en Platzi y entrega el link, sin caer en respuestas reiteradas [2:00].

¿Para qué sirve el parámetro stop en la API de OpenAI? Le indica al modelo en qué token o secuencia debe detener la generación. Si tu dataset usa space end como marca de cierre, ponerlo como stop evita que el modelo siga generando texto innecesario.

Cuáles son los errores más comunes de la API de OpenAI

La documentación oficial agrupa los errores en categorías claras, y conocerlas te ahorra horas de debugging.

Errores de autenticación, organización y límites de uso

Estos son los que verás con más frecuencia mientras desarrollas:

  • Errores ligados a la API key, como cuando la clave es inválida o no está presente.
  • Errores de organización, asociados a la cuenta desde la que haces los requests.
  • Errores de límite de uso, cuando superas la cuota de requests permitida para el modelo.
  • Errores propios de la librería de Python que usas para conectarte a la API.

La documentación incluye un extracto de código con el manejo recomendado en Python usando try except para cada tipo de error. Te conviene tenerla abierta como referencia mientras desarrollas [3:30].

Cómo capturar excepciones con try except en Python

La mejor forma de entenderlo es replicando un error a propósito. En el notebook donde cargas el modelo, deja vacía la sección de la clave y ejecuta la celda. El resultado es un authentication error, que es justo lo que la API lanza cuando no puede validar tu identidad.

A partir de ahí, envuelves el llamado al modelo en un bloque try y manejas la excepción en un except:

python try: # llamado al modelo response = openai.Completion.create(model=...) except Exception as e: print(f"Se produjo el error: {e}")

Al ejecutar de nuevo, en lugar de que el programa se rompa, verás un mensaje controlado tipo empty message que describe la excepción capturada. Esa es la salida limpia que te permite reaccionar al error sin detener todo el flujo del bot [5:10].

¿Qué hace try except en Python? try ejecuta el código que podría fallar y except atrapa el error si ocurre, evitando que el programa se detenga. Asignar la excepción a una variable con as e te permite imprimir o registrar el detalle.

¿Por qué usar Exception como excepción global? Porque captura cualquier error no previsto. Es útil como red de seguridad, aunque lo ideal es manejar primero excepciones específicas como AuthenticationError o RateLimitError y dejar Exception al final.

Cómo llevar tu Platzi bot más allá de tu computadora

Tu bot ya funciona en local, pero está atado a tu máquina. El siguiente paso es hacerlo público desplegándolo en un servidor. Una opción accesible es usar el servidor de Telegram, cuyos recursos suelen estar enlazados en la documentación del curso.

Si ya lograste capturar tus primeros errores con try except, cuéntame en los comentarios qué excepción te ha dado más dolores de cabeza y cómo la resolviste.