/
Chaizee
/
ZenithCode_Incident-LLM-analytics
Обзор
Документация
Войти
/
Chaizee
/
ZenithCode_Incident-LLM-analytics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
config/settings.py
159 строк
5 KB
Chaizee
fix: fix speed
12 июн 2026, 16:28
12 июн 2026, 16:28
b2745cc
Код
Авторство
О чём код?
from pathlib import Path from typing import Any ROOT = Path(__file__).resolve().parent.parent DATA_DIR = ROOT / "data" MODELS_DIR = DATA_DIR / "models" CATEGORIES = ( "ЖКХ", "Дороги", "Образование", "Здравоохранение", "Социальная сфера", "Благоустройство", "Администрация", "Прочее", ) EXCLUDED_MUNICIPALITY_PHRASE = "омская область, другое" EXCEL_HEADERS = ( "Номер инцидента", "Группа тем", "Тема", "Регион", "Муниципалитет", "Населенный пункт", "Улица", "Дом", "2ой ответ ПИ", "Текст инцидента", "1ый ответ ПИ", "Общий текст первого ответа", ) EXCEL_COLUMN_MAP = { "Дата создания": "creation_date", "Дата окончания": "closing_date", "Номер инцидента": "incident_id", "Группа тем": "group", "Тема": "theme", "Регион": "region", "Муниципалитет": "municipality", "Населенный пункт": "settlement", "Улица": "street", "Дом": "house", "2ой ответ ПИ": "text_ak", "Текст инцидента": "text_ai", "1ый ответ ПИ": "text_aj", "Общий текст первого ответа": "text_g", } INCIDENT_TEXT_COL = "text_ai" TEXT_SOURCE_COLS = (INCIDENT_TEXT_COL,) MIN_INCIDENT_TEXT_LEN = 3 MIN_INCIDENT_LETTERS = 5 CATEGORY_COLS = ("group", "theme", "region", "municipality", "settlement") TOP_N_CHART = 10 TOP_N_SUMMARY = 3 EXAMPLES_PER_DISTRICT = 3 USE_GPU = False LOCAL_LLM_N_GPU_LAYERS = -1 ML_EMBEDDING_MODEL = "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2" ML_EMBED_BATCH_SIZE = 512 ML_EMBED_BATCH_SIZE_GPU = 1024 ML_CLASSIFY_CHUNK = 8_000 ML_CLASSIFY_CHUNK_GPU = 8_000 ML_ENCODE_MAX_CHARS = 512 ML_TORCH_THREADS = 0 MAX_PROBLEMS_FOR_CLUSTERING = 12_000 ML_USE_XGBOOST = True ML_PROBLEM_THRESHOLD = 0.32 ML_GRAY_ZONE_LOW = 0.22 ML_GRAY_LLM_ENABLED = True ML_GRAY_LLM_MAX_SAMPLES = 500 LLM_MODELS_DIR = ROOT / "models" LOCAL_LLM_GGUF_FILE = "qwen2.5-1.5b-instruct-q4_k_m.gguf" LOCAL_LLM_HF_REPO = "Qwen/Qwen2.5-1.5B-Instruct-GGUF" LOCAL_LLM_HF_FILENAME = LOCAL_LLM_GGUF_FILE LOCAL_LLM_BATCH_SIZE = 16 LOCAL_LLM_N_CTX = 2048 LOCAL_LLM_N_THREADS = 4 LOCAL_LLM_N_BATCH = 512 LOCAL_LLM_MAX_NEW_TOKENS = 128 LOCAL_LLM_TEMPERATURE = 0.0 LOCAL_LLM_TEXT_MAX_CHARS = 1_500 DISTRICT_SUMMARY_EXAMPLES = 5 DISTRICT_SUMMARY_TOP_N = 3 BUILD_SEMANTIC_INDEX_IN_PIPELINE = False CLUSTER_MIN_SIZE = 3 CLUSTER_SIMILARITY_MIN = 0.82 USE_HYBRID_CLUSTERING = False GIS_DATA_DIR = DATA_DIR / "gis" GIS_SHAPEFILE = GIS_DATA_DIR / "gadm41_RUS_2.shp" GIS_REGION_GADM = "Omsk" GIS_REGION_NAMES_RU = ("Омская область",) GIS_REGION_FILTER = (GIS_REGION_GADM,) + GIS_REGION_NAMES_RU APP_TITLE = "Аналитика обращений граждан" APP_ICON = "📊" FEW_SHOT_EXAMPLES: list[dict[str, Any]] = [ { "text": "Во дворе огромная яма — машины объезжают по газону.", "is_problem": True, "severity": 2, "category": "Дороги", }, { "text": "Третий день нет отопления, батареи холодные.", "is_problem": True, "severity": 3, "category": "ЖКХ", }, { "text": "На остановке не горит освещение.", "is_problem": True, "severity": 2, "category": "Благоустройство", }, { "text": "Спасибо за оперативное решение!", "is_problem": False, "severity": 1, "category": "Прочее", }, { "text": "Подскажите, куда обратиться за справкой?", "is_problem": False, "severity": 1, "category": "Администрация", }, { "text": "Реклама криптовалюты, удалите спам.", "is_problem": False, "severity": 1, "category": "Прочее", }, { "text": "Не убран снег во дворе, не пройти к подъезду.", "is_problem": True, "severity": 2, "category": "Благоустройство", }, { "text": "Прорвало трубу, затопило квартиру и подвал.", "is_problem": True, "severity": 4, "category": "ЖКХ", }, { "text": "Мост через реку на грани обрушения, проезд закрыт.", "is_problem": True, "severity": 5, "category": "Дороги", }, ]