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.3.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.3-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: error_narrator-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 8cf9e4be5c9f08ea06c3806aa1319a914245823a68c3edcf26a4a0719b6f3bf9
MD5 d602d552a957202e3df26f5743c0fd04
BLAKE2b-256 da813bd3362b285294b94eece6f196a292051129fb79315c4e0e8bdd2bb1fe3c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: error_narrator-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 febff7dbf46c3b9e4a1f7ed784a419c64e3bfe293f684243a41d7a8046262661
MD5 b6ab675e465f5574bc52a5331100fe2d
BLAKE2b-256 403831eee66d87324c39db5d6bc9889c897ae25a53639333924e3e1adfff26b8

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