Объясните свои исключения Python с помощью OpenAI

Jan 27 2023
Как создать помощника с искусственным интеллектом, который поможет вам устранять неполадки в приложениях Python
Коллекция prefect-openai упрощает интеграцию OpenAI в ваш рабочий процесс, объединяя ведение журнала Prefect с интерпретационными возможностями OpenAI. Приложение Когда ваш код дает сбой, было бы неплохо получить помощь по устранению неполадок, например, от OpenAI! Если вы не знакомы с кодами состояния HTTP, OpenAI может помочь предоставить дополнительный контекст.
Читайте дальше, чтобы узнать, как можно создавать подобные изображения с помощью prefect-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-адреса для получения дополнительной информации может помочь решить проблему.

Это кажется более удобоваримым!

Применение

Для достижения этой функциональности вы можете добавить следующие две строки в свой существующий код:

  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 о выполнении потока

Настраивать

Прежде чем использовать 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:

Пользовательский интерфейс Prefect, создающий блок CompletionModel

Настройка

Настройка выходных данных модели — это отчасти искусство, отчасти наука.

Если вы заинтересованы в использовании другого префикса для подсказки или включении части трассировки для дополнительного контекста модели, вы можете использовать следующие аргументы ключевого слова:

  • 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 !