/
Chaizee
/
ZenithCode_Incident-LLM-analytics
Обзор
Документация
Войти
/
Chaizee
/
ZenithCode_Incident-LLM-analytics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
ui
tests/test_core.py
65 строк
2 KB
Chaizee
feat: add llm-analyzer realisation
08 июн 2026, 18:44
08 июн 2026, 18:44
0796e1d
Код
Авторство
О чём код?
import pandas as pd from config import IncidentLLMResponse from src.analytics import build_analytics from src.llm import parse_response def test_pydantic_parse(): raw = '{"is_problem": true, "severity": 4, "core_issue": "нет воды"}' m = parse_response(raw) assert m.is_problem is True assert m.severity == 4 def test_pydantic_clamp(): m = IncidentLLMResponse.model_validate({"is_problem": True, "severity": 99, "core_issue": "x"}) assert m.severity == 5 def test_coalesce_text(): from src.data import _coalesce_incident_text df = pd.DataFrame( { "text_ak": ["", "x"], "text_ai": ["реальная жалоба на дорогу", ""], "text_aj": ["", ""], "text_g": ["", ""], } ) out = _coalesce_incident_text(df) assert out["incident_text"].iloc[0] == "реальная жалоба на дорогу" def test_analytics_empty_problems(): df = pd.DataFrame( { "municipality": ["А"], "settlement": ["с1"], "incident_text": ["t1"], "is_problem": [False], "severity": [1], "core_issue": ["—"], } ) r = build_analytics(df) assert r["problems_count"] == 0 assert list(r["chart"].columns) == ["municipality", "problem_count", "mean_severity"] assert r["chart"].empty def test_analytics_top(): df = pd.DataFrame( { "municipality": ["А", "А", "Б"], "settlement": ["с1", "с1", "с2"], "incident_text": ["t1", "t2", "t3"], "is_problem": [True, True, False], "severity": [3, 5, 1], "core_issue": ["дороги", "дороги", "спасибо"], } ) r = build_analytics(df) assert r["problems_count"] == 2 assert r["top10"]["municipality"].iloc[0] == "А"