Skip to main content

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

Project description

Error Narrator

PyPI version

Простая Python-библиотека для получения "человеческих" объяснений ошибок и исключений с помощью моделей ИИ от Hugging Face.

Вместо того чтобы просто видеть traceback, вы можете получить структурированный анализ, который поможет быстрее понять и исправить проблему.

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

  • Превращает непонятные traceback'и в понятные объяснения.
  • Асинхронная работа "из коробки" (asyncio).
  • Гибкая настройка: можно передать свой API-ключ Hugging Face и выбрать любую модель.
  • Безопасное управление API-ключом через переменные окружения.

Установка

pip install error-narrator

Как пользоваться

1. Настройка API-ключа

Библиотека требует API-ключ от Hugging Face. Есть два способа его задать:

Способ А (рекомендуемый): Переменная окружения

Установите переменную окружения HUGGINGFACE_API_KEY. Библиотека автоматически ее найдет.

# Для Linux/macOS
export HUGGINGFACE_API_KEY='hf_xxxxxxxxxxxxxxxxxxxx'

# Для Windows (PowerShell)
$env:HUGGINGFACE_API_KEY='hf_xxxxxxxxxxxxxxxxxxxx'

Способ Б: Передача в конструктор

Вы можете передать ключ напрямую при создании объекта ErrorNarrator.

narrator = ErrorNarrator(api_key="hf_xxxxxxxxxxxxxxxxxxxx")

2. Пример кода

Вот простой пример, как перехватить исключение и получить для него объяснение.

import asyncio
import traceback
from error_narrator import ErrorNarrator

# Инициализируем класс.
# Ключ будет взят из переменной окружения HUGGINGFACE_API_KEY.
narrator = ErrorNarrator()

# Или можно указать модель
# narrator = ErrorNarrator(model_id="mistralai/Mistral-7B-Instruct-v0.2")

async def main():
    try:
        # Симулируем ошибку
        result = 1 / 0
    except Exception:
        # Получаем полный traceback ошибки
        error_traceback = traceback.format_exc()
        
        # Получаем объяснение от AI
        explanation = await narrator.explain_error(error_traceback)
        
        print("--- ОБЫЧНАЯ ОШИБКА ---")
        print(error_traceback)
        print("\n--- ОБЪЯСНЕНИЕ ОТ AI ---")
        print(explanation)

if __name__ == "__main__":
    asyncio.run(main())

Результат выполнения

--- ОБЫЧНАЯ ОШИБКА ---
Traceback (most recent call last):
  File "example.py", line 19, in main
    result = 1 / 0
ZeroDivisionError: division by zero

--- ОБЪЯСНЕНИЕ ОТ AI ---
**1. Причина ошибки:**
Произошла ошибка `ZeroDivisionError`. Это стандартное исключение в Python, которое возникает при попытке деления любого числа на ноль.

**2. Местоположение:**
Ошибка произошла в файле `example.py` в строке 19, внутри функции `main`: `result = 1 / 0`.

**3. Рекомендация по исправлению:**
Перед выполнением операции деления необходимо добавить проверку, чтобы убедиться, что делитель не равен нулю.

Пример исправления:
```python
divisor = 0
if divisor != 0:
    result = 1 / divisor
else:
    # Обработать случай, когда делитель равен нулю
    print("Ошибка: Деление на ноль невозможно.")
    result = None

Эта проверка предотвратит падение программы и позволит корректно обработать ситуацию.


## Лицензия

Этот проект распространяется под лицензией MIT. 

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.1.2.tar.gz (5.2 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.1.2-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: error_narrator-0.1.2.tar.gz
  • Upload date:
  • Size: 5.2 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.1.2.tar.gz
Algorithm Hash digest
SHA256 f34e26b2ae4f23aa58f143e0f871ceae7d9c376d4cff9b75256ce4f307cf4671
MD5 713af2dc2094a7f512fb2431eaf955f2
BLAKE2b-256 c032bbd96f7d0ed13afe02d11dd209052f458b97e032216cc47fa397312f8eba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: error_narrator-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.7 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.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b7532f83110b75236153d683ba83e7f8aba6253159e9620bf30b588ee1da009c
MD5 94d348da32b7c789f8cef8bb9ecda037
BLAKE2b-256 93476c8a12bb4f7dc213b9ee86ce290f3d84ab2ebe570f8788c040b4bf3a3cae

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