Explique sus excepciones de Python con OpenAI
La prefect-openaicolección simplifica la integración de OpenAI en su flujo de trabajo, combinando el registro de Prefect con las capacidades interpretativas de OpenAI.
Solicitud
Cuando su código falla, sería bueno tener ayuda para solucionar problemas, ¡como la de OpenAI!
Si no está familiarizado con los códigos de estado HTTP, OpenAI puede ayudar a proporcionar contexto adicional. ¡Esto podría ayudarlo a comprender mejor el problema y encontrar una solución más rápido!
Por ejemplo, con la siguiente excepción como entrada:
HTTPStatusError: Error de cliente '403 PROHIBIDO' para url 'https://httpbin.org/status/403' Para obtener más información, consulte:https://httpstatuses.com/403
OpenAI devolvió la siguiente interpretación:
El error 403 prohibido significa que el usuario que intenta visitar la URL no está autorizado para hacerlo. Esto podría significar que el usuario no ha iniciado sesión o que el contenido solicitado no está disponible. Consultar la URL para obtener más información puede ayudar a resolver el problema.
¡Eso parece ser mucho más digerible!
Uso
Para lograr esta funcionalidad, puede agregar las siguientes dos líneas a su código existente:
from prefect_openai.completion import interpret_exception@interpret_exception("COMPLETION_MODEL_BLOCK_NAME")
import httpx
from prefect import flow
from prefect_openai.completion import interpret_exception
@flow
@interpret_exception("curie")
def example_func():
resp = httpx.get("https://httpbin.org/status/403")
resp.raise_for_status()
example_func()
Configuración
Antes de poder usar interpret_exceptionel decorador, primero se deben crear los bloques OpenAICredentialsy .CompletionModel
Pero no te preocupes, es sencillo.
Primero, cree su clave API de OpenAI desde la página de su cuenta de OpenAI .
Luego copie, pegue y reemplace los marcadores de posición a continuación.
from prefect_openai import OpenAICredentials, CompletionModel
openai_credentials = OpenAICredentials(api_key="API_KEY_PLACEHOLDER")
completion_model = CompletionModel(
openai_credentials=openai_credentials,
model="text-curie-001",
max_tokens=1000,
temperature=0.5
)
openai_credentials.save("CREDENTIALS_BLOCK_NAME_PLACEHOLDER")
completion_model.save("COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER")
Alternativamente, también puede crear los bloques directamente desde la interfaz de usuario de Prefect:
personalización
Ajustar la salida del modelo es en parte arte, en parte ciencia.
Si está interesado en usar un prefijo diferente para el aviso o incluir parte del rastreo para obtener un contexto adicional para el modelo, puede usar los siguientes argumentos de palabras clave:
prompt_prefix: el prefijo que se incluirá en el aviso antes del mensaje de rastreo y excepción.traceback_tail: el número de líneas del rastreo original para incluir en el indicador de OpenAI, comenzando desde la cola. Si es 0, solo incluya el mensaje de excepción en el aviso. Tenga en cuenta que esta configuración puede ser costosa en términos de tokens, así que asegúrese de configurar esto y elmax_tokensdeCompletionModelforma adecuada.
@interpret_exception(
"COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER",
prompt_prefix="Offer a solution:",
traceback_tail=1,
)
- captura el mensaje de excepción
- agrega un prefijo, "Explicar:"
- lo envía como un aviso a un modelo de finalización de texto
- vuelve a generar la excepción con la respuesta
Recursos
Además de interpretar las excepciones, prefect-openaiadmite la finalización de texto arbitrario, así como la generación de imágenes: ¡así es como se generó la imagen de portada!
Si esos casos de uso te parecieron interesantes, ¡asegúrate de revisar los prefect-openai documentos y marcar el repositorio de la colección en GitHub !

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































