Wyjaśnij swoje wyjątki w Pythonie za pomocą OpenAI
Kolekcja prefect-openaiupraszcza integrację OpenAI z przepływem pracy — łącząc rejestrowanie Prefect z możliwościami interpretacyjnymi OpenAI.
Aplikacja
Gdy Twój kod ulegnie awarii, przydałaby się pomoc w rozwiązywaniu problemów, na przykład z OpenAI!
Jeśli nie znasz kodów stanu HTTP, OpenAI może pomóc w zapewnieniu dodatkowego kontekstu. Może to pomóc w lepszym zrozumieniu problemu i szybszym znalezieniu rozwiązania!
Na przykład z następującym wyjątkiem jako danymi wejściowymi:
HTTPStatusError: błąd klienta „403 ZABRONIONY” dla adresu URL „https://httpbin.org/status/403” Aby uzyskać więcej informacji, sprawdź:https://httpstatuses.com/403
OpenAI zwrócił następującą interpretację:
Zakazany błąd 403 oznacza, że użytkownik próbujący odwiedzić adres URL nie jest do tego upoważniony. Może to oznaczać, że użytkownik nie jest zalogowany lub żądana treść jest niedostępna. Sprawdzenie adresu URL w celu uzyskania dodatkowych informacji może pomóc w rozwiązaniu problemu.
To wydaje się być o wiele bardziej strawne!
Stosowanie
Aby osiągnąć tę funkcjonalność, możesz dodać następujące dwa wiersze do istniejącego kodu:
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()
Organizować coś
Zanim będzie można użyć interpret_exceptiondekoratora, należy najpierw utworzyć bloki OpenAICredentialsi .CompletionModel
Ale nie martw się — to proste.
Najpierw utwórz swój klucz API OpenAI na stronie konta OpenAI .
Następnie skopiuj, wklej i zastąp symbole zastępcze poniżej.
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")
Alternatywnie możesz również tworzyć bloki bezpośrednio z interfejsu użytkownika Prefect:
Dostosowywanie
Poprawianie danych wyjściowych modelu to po części sztuka, po części nauka.
Jeśli chcesz użyć innego prefiksu dla monitu lub włączyć część śledzenia wstecznego dla dodatkowego kontekstu modelu, możesz użyć następujących argumentów słów kluczowych:
prompt_prefix: przedrostek, który ma zostać uwzględniony w monicie przed komunikatem o śledzeniu i wyjątku.traceback_tail: liczba wierszy oryginalnego śledzenia wstecznego, które mają zostać uwzględnione w monicie do OpenAI, zaczynając od końca. Jeśli 0, w monicie uwzględnij tylko komunikat o wyjątku. Pamiętaj, że ta konfiguracja może być kosztowna pod względem tokenów, więc upewnij się, że ustawiłeś to i inmax_tokensodpowiednioCompletionModel.
@interpret_exception(
"COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER",
prompt_prefix="Offer a solution:",
traceback_tail=1,
)
- przechwytuje komunikat o wyjątku
- dodaje przedrostek „Wyjaśnij:”
- przesyła go jako monit do modelu uzupełniania tekstu
- ponownie zgłasza wyjątek z odpowiedzią
Zasoby
Oprócz interpretacji wyjątków prefect-openaiobsługuje dowolne uzupełnianie tekstu, a także generowanie obrazu — tak powstał obraz okładki!
Jeśli uważasz, że te przypadki użycia są interesujące, sprawdź dokumentację prefect-openai i oznacz repozytorium kolekcji gwiazdką na GitHub !

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































