Explique sus excepciones de Python con OpenAI

Jan 27 2023
Cómo crear un asistente de IA que lo ayude a solucionar los problemas de sus aplicaciones de Python
Prefect-openaicollection simplifica la integración de OpenAI en su flujo de trabajo, combinando el registro de Prefect con las capacidades interpretativas de OpenAI. Aplicación Cuando su código falla, sería bueno tener ayuda para la resolución de problemas, ¡como la de OpenAI! Si no está familiarizado con los códigos de estado HTTP, OpenAI puede ayudar a proporcionar contexto adicional.
¡Sigue leyendo para descubrir cómo puedes generar imágenes como esta usando prefecto-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:

  1. from prefect_openai.completion import interpret_exception
  2. @interpret_exception("COMPLETION_MODEL_BLOCK_NAME")
  3. 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()
    

Registros perfectos de la interfaz de usuario en la nube de la ejecución del flujo

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:

Interfaz de usuario perfecta creando el bloque CompletionModel

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 el max_tokensde CompletionModelforma 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 !