logreader / README.md
PatrickRedStar's picture
add
d76ef9a
---
title: Анализатор логов
emoji: 🧠
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: "4.44.1"
app_file: app.py
pinned: false
---
# Анализатор логов
Gradio‑демо: вставляете логи/стектрейс, получаете тип инцидента, человеческое объяснение, вероятную причину, набор проверок и локальные ранбуки. Пайплайн использует трансформеры (zero-shot классификатор, summarizer, sentence-embedding retriever, при желании reranker и NLI).
## Установка локально
```bash
pip install -r requirements.txt
```
## Запуск локально
```bash
python app.py
```
По умолчанию приложение слушает `127.0.0.1:7860` без публичного шаринга. Чтобы открыть интерфейс наружу, задайте:
```bash
GRADIO_HOST=0.0.0.0 GRADIO_SHARE=1 python app.py
```
или выставьте нужный `GRADIO_SERVER_NAME` / `PORT`.
## Запуск на Hugging Face Spaces
- Создайте Space (Gradio) и залейте содержимое репозитория.
- `app.py` сам определяет окружение Spaces (`SPACE_ID`/`HF_SPACE`) и не включает share там.
- Опционально добавьте `runtime.txt` с `python-3.10`.
## Использование
- Вставьте логи/стектрейс, выберите источник (auto/python/java/node/k8s).
- Опции: поиск по локальной базе (`kb/`), NLI-проверка гипотез, слайдер детализации объяснения.
- Нажмите **Анализировать**: вкладки покажут тип инцидента, пояснение, причину/проверки, найденные ранбуки, проверку гипотез и шаблон тикета. Можно выгрузить JSON.
## Примеры
- `samples/sample_python.txt` — HTTP timeout.
- `samples/sample_k8s.txt` — под с CrashLoop/OOMKilled.
- `samples/sample_java.txt` — NullPointerException из-за auth failure.
## Состав
- `app.py` — Gradio UI.
- `pipeline.py` — классификация, суммаризация, retrieval, NLI.
- `preprocess.py` — маскировка/сигнатуры/обрезка.
- `retrieval.py` — эмбеддинговый поиск по `kb/`.
- `kb/` — локальные ранбуки.
- `samples/` — примеры логов.
## Примечания
- Модели: `facebook/bart-large-mnli`, `sshleifer/distilbart-cnn-12-6`, `sentence-transformers/all-MiniLM-L6-v2`, опционально `cross-encoder/ms-marco-MiniLM-L-6-v2`, NLI `typeform/distilbert-base-uncased-mnli`.
- Держите `numpy<2.0` чтобы избежать ABI-конфликтов с PyTorch/Transformers (`pip install 'numpy<2' --upgrade` при необходимости).