Объясните свои исключения Python с помощью OpenAI
Коллекция prefect-openaiупрощает интеграцию OpenAI в ваш рабочий процесс, сочетая ведение журнала Prefect с интерпретационными возможностями OpenAI.
Приложение
Когда ваш код дает сбой, было бы неплохо получить помощь по устранению неполадок, например, от OpenAI!
Если вы не знакомы с кодами состояния HTTP, OpenAI может помочь предоставить дополнительный контекст. Это может помочь вам лучше понять проблему и быстрее найти решение!
Например, со следующим исключением в качестве входных данных:
HTTPStatusError: Ошибка клиента «403 FORBIDDEN» для URL-адреса «https://httpbin.org/status/403». Для получения дополнительной информации проверьте:https://httpstatuses.com/403
OpenAI вернул следующую интерпретацию:
Запрещенная ошибка 403 означает, что пользователь, пытающийся посетить URL-адрес, не имеет на это полномочий. Это может означать, что пользователь не вошел в систему или запрошенный контент недоступен. Проверка URL-адреса для получения дополнительной информации может помочь решить проблему.
Это кажется более удобоваримым!
Применение
Для достижения этой функциональности вы можете добавить следующие две строки в свой существующий код:
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()
Настраивать
Прежде чем использовать interpret_exceptionдекоратор, необходимо сначала создать блоки OpenAICredentialsи .CompletionModel
Но не волнуйтесь — это просто.
Сначала создайте ключ API OpenAI на странице своей учетной записи OpenAI .
Затем скопируйте, вставьте и замените заполнители ниже.
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")
Кроме того, вы также можете создавать блоки непосредственно из пользовательского интерфейса Prefect:
Настройка
Настройка выходных данных модели — это отчасти искусство, отчасти наука.
Если вы заинтересованы в использовании другого префикса для подсказки или включении части трассировки для дополнительного контекста модели, вы можете использовать следующие аргументы ключевого слова:
prompt_prefix: префикс для включения в подсказку перед трассировкой и сообщением об исключении.traceback_tail: количество строк исходной трассировки для включения в приглашение к OpenAI, начиная с хвоста. Если 0, включать в подсказку только сообщение об исключении. Обратите внимание, что эта конфигурация может быть дорогостоящей с точки зрения токенов, поэтому обязательно установите это иmax_tokensправильноCompletionModel.
@interpret_exception(
"COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER",
prompt_prefix="Offer a solution:",
traceback_tail=1,
)
- фиксирует сообщение об исключении
- добавляет префикс «Объяснить:»
- отправляет его в качестве подсказки модели завершения текста
- повторно вызывает исключение с ответом
Ресурсы
Помимо интерпретации исключений, prefect-openaiподдерживает произвольное завершение текста, а также генерацию изображений — так была сгенерирована обложка!
Если вы нашли эти варианты использования интересными, обязательно ознакомьтесь с prefect-openai документацией и отметьте репозиторий коллекции звездочкой на GitHub !

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































