Spiega le tue eccezioni Python con OpenAI

Jan 27 2023
Come creare un assistente AI per aiutarti a risolvere i problemi delle tue applicazioni Python
La prefect-openaicollection semplifica l'integrazione di OpenAI nel tuo flusso di lavoro, combinando la registrazione di Prefect con le capacità interpretative di OpenAI. Applicazione Quando il tuo codice va in crash, sarebbe bello avere un aiuto per la risoluzione dei problemi, ad esempio da OpenAI! Se non hai familiarità con i codici di stato HTTP, OpenAI può aiutarti a fornire un contesto aggiuntivo.
Continua a leggere per scoprire come puoi generare immagini come questa usando prefect-openai!

La prefect-openairaccolta semplifica l'integrazione di OpenAI nel tuo flusso di lavoro, combinando la registrazione di Prefect con le capacità interpretative di OpenAI.

Applicazione

Quando il tuo codice si arresta in modo anomalo, sarebbe bello avere un aiuto per la risoluzione dei problemi, ad esempio da OpenAI!

Se non hai familiarità con i codici di stato HTTP, OpenAI può aiutarti a fornire un contesto aggiuntivo. Questo potrebbe aiutarti a capire meglio il problema e trovare una soluzione più velocemente!

Ad esempio, con la seguente eccezione come input:

HTTPStatusError: Errore client '403 FORBIDDEN' per l'url 'https://httpbin.org/status/403' Per ulteriori informazioni controllare:https://httpstatuses.com/403

OpenAI ha restituito la seguente interpretazione:

L'errore 403 proibito significa che l'utente che tenta di visitare l'URL non è autorizzato a farlo. Ciò potrebbe significare che l'utente non è loggato o che il contenuto richiesto non è disponibile. Controllare l'URL per ulteriori informazioni può aiutare a risolvere il problema.

Sembra essere molto più digeribile!

Utilizzo

Per ottenere questa funzionalità, puoi aggiungere le seguenti due righe al tuo codice esistente:

  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()
    

Registri dell'interfaccia utente di Prefect Cloud dell'esecuzione del flusso

Impostare

Prima di poter utilizzare interpret_exceptionil decoratore, è necessario creare prima i blocchi OpenAICredentialse .CompletionModel

Ma non preoccuparti: è semplice.

Innanzitutto, crea la tua chiave API OpenAI dalla pagina del tuo account OpenAI .

Quindi copia, incolla e sostituisci i segnaposto di seguito.

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")

In alternativa, puoi anche creare i blocchi direttamente dall'interfaccia utente di Prefect:

Prefetto interfaccia utente che crea il blocco CompletionModel

Personalizzazione

Modificare l'output del modello è in parte arte, in parte scienza.

Se sei interessato a utilizzare un prefisso diverso per il prompt o includere parte del traceback per un contesto aggiuntivo al modello, puoi utilizzare i seguenti argomenti di parole chiave:

  • prompt_prefix: il prefisso da includere nel prompt prima del traceback e del messaggio di eccezione.
  • traceback_tail: il numero di righe del traceback originale da includere nel prompt di OpenAI, a partire dalla coda. Se 0, includi solo il messaggio di eccezione nel prompt. Nota che questa configurazione può essere costosa in termini di token, quindi assicurati di impostare this e the max_tokensin CompletionModelin modo appropriato.
  • @interpret_exception(
        "COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER",
        prompt_prefix="Offer a solution:",
        traceback_tail=1,
    )
    

  • acquisisce il messaggio di eccezione
  • aggiunge un prefisso, "Spiega:"
  • lo invia come prompt a un modello di completamento del testo
  • solleva nuovamente l'eccezione con la risposta

Risorse

Oltre a interpretare le eccezioni, prefect-openaisupporta il completamento del testo arbitrario, nonché la generazione di immagini: ecco come è stata generata l'immagine di copertina!

Se hai trovato questi casi d'uso interessanti, assicurati di controllare i prefect-openai documenti e inserire il repository della raccolta su GitHub !