Erklären Sie Ihre Python-Ausnahmen mit OpenAI

Jan 27 2023
So erstellen Sie einen KI-Assistenten, der Sie bei der Fehlerbehebung Ihrer Python-Anwendungen unterstützt
Die prefect-openaicollection vereinfacht die Integration von OpenAI in Ihren Workflow, indem sie die Protokollierung von Prefect mit den Interpretationsfähigkeiten von OpenAI kombiniert. Anwendung Wenn Ihr Code abstürzt, wäre es schön, Hilfe bei der Fehlerbehebung zu haben, beispielsweise von OpenAI! Wenn Sie mit HTTP-Statuscodes nicht vertraut sind, kann OpenAI Ihnen helfen, zusätzlichen Kontext bereitzustellen.
Lesen Sie weiter, um zu erfahren, wie Sie mit prefect-openai solche Bilder generieren können!

Die prefect-openaiSammlung vereinfacht die Integration von OpenAI in Ihren Workflow, indem sie die Protokollierung von Prefect mit den Interpretationsfähigkeiten von OpenAI kombiniert.

Anwendung

Wenn Ihr Code abstürzt, wäre es schön, Hilfe bei der Fehlerbehebung zu haben, beispielsweise von OpenAI!

Wenn Sie mit HTTP-Statuscodes nicht vertraut sind, kann OpenAI Ihnen helfen, zusätzlichen Kontext bereitzustellen. Dies könnte Ihnen helfen, das Problem besser zu verstehen und schneller eine Lösung zu finden!

Zum Beispiel mit der folgenden Ausnahme als Eingabe:

HTTPStatusError: Client-Fehler „403 FORBIDDEN“ für URL „https://httpbin.org/status/403“. Weitere Informationen finden Sie unter:https://httpstatuses.com/403

OpenAI hat die folgende Interpretation zurückgegeben:

Der Fehler 403 verboten bedeutet, dass der Benutzer, der versucht, die URL aufzurufen, dazu nicht berechtigt ist. Dies könnte bedeuten, dass der Benutzer nicht angemeldet ist oder dass der angeforderte Inhalt nicht verfügbar ist. Das Überprüfen der URL auf weitere Informationen kann zur Behebung des Problems beitragen.

Das scheint viel bekömmlicher zu sein!

Verwendung

Um diese Funktionalität zu erreichen, können Sie die folgenden zwei Zeilen zu Ihrem vorhandenen Code hinzufügen:

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

Prefect Cloud-UI-Protokolle der Flow-Ausführung

Aufstellen

interpret_exceptionBevor Decorator verwendet werden kann , müssen zunächst die OpenAICredentialsund- Blöcke erstellt werden.CompletionModel

Aber keine Sorge – es ist ganz einfach.

Erstellen Sie zunächst Ihren OpenAI-API-Schlüssel auf Ihrer OpenAI-Kontoseite .

Kopieren Sie dann die folgenden Platzhalter, fügen Sie sie ein und ersetzen Sie sie.

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

Alternativ können Sie die Blöcke auch direkt über die Prefect-Benutzeroberfläche erstellen:

Prefect UI erstellt den CompletionModel-Block

Anpassung

Die Optimierung der Modellausgabe ist teils Kunst, teils Wissenschaft.

Wenn Sie daran interessiert sind, ein anderes Präfix für die Eingabeaufforderung zu verwenden oder einen Teil des Tracebacks für zusätzlichen Kontext zum Modell einzubeziehen, können Sie die folgenden Schlüsselwortargumente verwenden:

  • prompt_prefix: Das Präfix, das in die Eingabeaufforderung vor der Traceback- und Ausnahmemeldung eingefügt werden soll.
  • traceback_tail: die Anzahl der Zeilen des ursprünglichen Tracebacks, die in die Eingabeaufforderung an OpenAI einbezogen werden sollen, beginnend am Ende. Wenn 0, fügen Sie nur die Ausnahmemeldung in die Eingabeaufforderung ein. Beachten Sie, dass diese Konfiguration in Bezug auf Token kostspielig sein kann. Stellen Sie daher sicher, dass dies und das max_tokensin CompletionModelentsprechend eingestellt sind.
  • @interpret_exception(
        "COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER",
        prompt_prefix="Offer a solution:",
        traceback_tail=1,
    )
    

  • erfasst die Ausnahmemeldung
  • fügt ein Präfix hinzu: „Erklären:“
  • sendet es als Eingabeaufforderung an ein Textvervollständigungsmodell
  • löst die Ausnahme mit der Antwort erneut aus

Ressourcen

Unterstützt neben der Interpretation von Ausnahmen auch prefect-openaidie Vervollständigung beliebiger Texte sowie die Bildgenerierung – so wurde das Titelbild generiert!

Wenn Sie diese Anwendungsfälle interessant fanden, schauen Sie sich unbedingt die prefect-openai Dokumente an und markieren Sie das Sammlungs-Repository auf GitHub !