Expliquez vos exceptions Python avec OpenAI
La prefect-openaicollection simplifie l'intégration d'OpenAI dans votre flux de travail, en combinant la journalisation de Prefect avec les capacités d'interprétation d'OpenAI.
Application
Lorsque votre code plante, ce serait bien d'avoir une aide au dépannage, comme celle d'OpenAI !
Si vous n'êtes pas familier avec les codes d'état HTTP, OpenAI peut vous aider à fournir un contexte supplémentaire. Cela pourrait vous aider à mieux comprendre le problème et à trouver une solution plus rapidement !
Par exemple, avec l'exception suivante comme entrée :
HTTPStatusError : erreur client '403 FORBIDDEN' pour l'url 'https://httpbin.org/status/403' Pour plus d'informations, vérifiez :https://httpstatuses.com/403
OpenAI a renvoyé l'interprétation suivante :
L'erreur interdite 403 signifie que l'utilisateur essayant de visiter l'URL n'est pas autorisé à le faire. Cela peut signifier que l'utilisateur n'est pas connecté ou que le contenu demandé n'est pas disponible. Vérifier l'URL pour plus d'informations peut aider à résoudre le problème.
Ça a l'air bien plus digeste !
Usage
Pour obtenir cette fonctionnalité, vous pouvez ajouter les deux lignes suivantes à votre code existant :
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()
Installation
Avant de pouvoir utiliser interpret_exceptionle décorateur, les blocs OpenAICredentialset CompletionModeldoivent d'abord être créés.
Mais ne vous inquiétez pas, c'est simple.
Tout d'abord, créez votre clé API OpenAI à partir de la page de votre compte OpenAI .
Ensuite, copiez, collez et remplacez les espaces réservés ci-dessous.
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")
Vous pouvez également créer les blocs directement à partir de l'interface utilisateur de Prefect :
Personnalisation
Ajuster la sortie du modèle est à la fois un art et une science.
Si vous souhaitez utiliser un préfixe différent pour l'invite ou inclure une partie de la trace pour ajouter du contexte au modèle, vous pouvez utiliser les arguments de mots clés suivants :
prompt_prefix: le préfixe à inclure dans l'invite avant le message de trace et d'exception.traceback_tail: le nombre de lignes du traceback d'origine à inclure dans l'invite à OpenAI, en commençant par la queue. Si 0, n'incluez que le message d'exception dans l'invite. Notez que cette configuration peut être coûteuse en termes de jetons, alors assurez-vous de définir ceci et lemax_tokensdeCompletionModelmanière appropriée.
@interpret_exception(
"COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER",
prompt_prefix="Offer a solution:",
traceback_tail=1,
)
- capture le message d'exception
- ajoute un préfixe, "Explain:"
- le soumet en tant qu'invite à un modèle de complétion de texte
- relance l'exception avec la réponse
Ressources
Outre l'interprétation des exceptions, prefect-openaiprend en charge la complétion de texte arbitraire, ainsi que la génération d'images - c'est ainsi que l'image de couverture a été générée !
Si vous avez trouvé ces cas d'utilisation intéressants, assurez-vous de consulter la prefect-openai documentation et de mettre en vedette le référentiel de collection sur GitHub !
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































