File size: 3,066 Bytes
7cf5951
d76ef9a
7cf5951
 
 
 
d76ef9a
7cf5951
 
 
29fdac9
d76ef9a
29fdac9
d76ef9a
29fdac9
7cf5951
29fdac9
 
7cf5951
29fdac9
 
7cf5951
29fdac9
 
7cf5951
29fdac9
 
d76ef9a
 
 
 
 
 
 
29fdac9
7cf5951
29fdac9
7cf5951
 
 
29fdac9
7cf5951
29fdac9
d76ef9a
 
 
29fdac9
7cf5951
29fdac9
7cf5951
d76ef9a
 
29fdac9
7cf5951
29fdac9
7cf5951
 
 
 
 
 
29fdac9
7cf5951
29fdac9
7cf5951
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
---
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` при необходимости).