Erklären Sie Ihre Python-Ausnahmen mit OpenAI
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:
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()
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:
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 dasmax_tokensinCompletionModelentsprechend 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 !

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































