Skip to main content

A Python library to get AI-powered explanations for exceptions using Hugging Face models.

Project description

Error Narrator 🤖

Error Narrator — это умная Python-библиотека, которая превращает непонятные трейсбеки ошибок в ясные, структурированные объяснения с помощью искусственного интеллекта. Забудьте о долгом гуглении ошибок — получите причину, место и готовое решение прямо в вашей консоли!

PyPI version Python License: MIT

🚀 Основные возможности

  • Анализ ошибок с помощью ИИ: Получайте подробный разбор любого трейсбека.
  • Структурированный ответ: Объяснение всегда включает:
    • 🎯 Причину ошибки: Что именно пошло не так.
    • 📍 Место ошибки: Точный файл и строка с фрагментом кода.
    • 🛠️ Предлагаемое исправление: Готовый для копирования код, который решает проблему.
    • 🎓 Обучающий момент: Краткое объяснение концепции, чтобы избегать подобных ошибок в будущем.
  • Поддержка нескольких провайдеров:
    • gradio (по умолчанию): Бесплатный доступ к моделям на Hugging Face Spaces. Отлично для быстрого старта.
    • openai: Используйте мощные модели, такие как GPT-3.5 или GPT-4, для более точных и надежных ответов (требуется API-ключ).
  • Синхронный и асинхронный режимы: Используйте библиотеку в любом проекте.

📦 Установка

pip install error-narrator

Для работы с OpenAI необходимо также установить соответствующую зависимость, которая включена в pyproject.toml.

⚙️ Как использовать

Шаг 1: Настройка окружения

Для провайдера openai необходимо установить ваш API-ключ в качестве переменной окружения:

export OPENAI_API_KEY='sk-...'

Для приватных gradio репозиториев может понадобиться ключ Hugging Face:

export HUGGINGFACE_API_KEY='hf_...'

Шаг 2: Использование в коде

Это очень просто. Оберните ваш код в try...except, поймайте исключение и передайте его трейсбек в ErrorNarrator.

import traceback
from error_narrator import ErrorNarrator

def some_buggy_function():
    # Пример кода, который вызовет ошибку
    data = {'user': 'Alice'}
    print(data['age']) # KeyError

if __name__ == "__main__":
    try:
        some_buggy_function()
    except Exception:
        tb_str = traceback.format_exc()

        print("\n--- 😱 Произошла ошибка! Анализирую с помощью AI... ---\n")

        # --- Вариант 1: Использование бесплатного провайдера Gradio (по умолчанию) ---
        narrator_free = ErrorNarrator()
        narrator_free.explain_and_print(tb_str)

        print("\n--- 🚀 Анализ с помощью более мощной модели OpenAI... ---\n")

        # --- Вариант 2: Использование провайдера OpenAI ---
        # Убедитесь, что ключ OPENAI_API_KEY установлен
        try:
            narrator_pro = ErrorNarrator(provider='openai', model_id='gpt-3.5-turbo')
            narrator_pro.explain_and_print(tb_str)
        except Exception as e:
            print(f"Не удалось запустить OpenAI: {e}")

📈 Будущие улучшения

  • Добавление поддержки других AI-провайдеров (Anthropic, Gemini).

🤝 Вклад

Мы будем рады вашему вкладу! Если у вас есть идеи по улучшению, пожалуйста, создавайте issue или pull request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

error_narrator-0.2.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

error_narrator-0.2.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file error_narrator-0.2.0.tar.gz.

File metadata

  • Download URL: error_narrator-0.2.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for error_narrator-0.2.0.tar.gz
Algorithm Hash digest
SHA256 440987f10cfccbf0a3e10c8daa1fc342f21c8b1b98e323954263ba14166658d4
MD5 3585bae6bfc7fdf75b94352daf6de7fe
BLAKE2b-256 2b3baeef08199464d3271054d4b517ac4bbf2e7680e7c5b5d6db427bf81350d0

See more details on using hashes here.

File details

Details for the file error_narrator-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: error_narrator-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for error_narrator-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cbf100974f08fe2b3ee515ebf058e6f6e18d6832782012a687dbf556605c976
MD5 7c9decbfa836161c9bf3267d1576b42f
BLAKE2b-256 5eb8056a3a20b66684e4d6d8c510725c52fd8ecaf8bc2ab02b5e8990174663fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page