37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
"""
|
|
===============================================================================
|
|
FILE: services/knowledge/service.py
|
|
PROJECT: SCUD Orion AI (Unified Architecture)
|
|
MODULE: services / knowledge
|
|
ROLE: Доменный сервис базы знаний, правил компании и синонимов подразделений.
|
|
===============================================================================
|
|
"""
|
|
|
|
from typing import List, Dict, Any
|
|
from core.repositories.zup_repo import (
|
|
get_all_rules_from_db,
|
|
add_rule_to_db,
|
|
get_department_synonyms_dict,
|
|
add_department_synonym_to_db
|
|
)
|
|
|
|
|
|
def get_rules() -> List[Dict[str, Any]]:
|
|
"""Получить все правила базы знаний в виде списка словарей."""
|
|
raw_rules = get_all_rules_from_db()
|
|
return [{"id": idx, "rule_text": r} for idx, r in enumerate(raw_rules, 1)]
|
|
|
|
|
|
def add_rule(rule_text: str, added_by: str = "Human") -> None:
|
|
"""Добавить новое правило в базу знаний."""
|
|
add_rule_to_db(rule_text, added_by=added_by)
|
|
|
|
|
|
def get_synonyms() -> Dict[str, str]:
|
|
"""Получить словарь синонимов отделов."""
|
|
return get_department_synonyms_dict()
|
|
|
|
|
|
def register_department_synonym(short_name: str, full_name: str) -> None:
|
|
"""Сохранить новую пару синонимов подразделения."""
|
|
add_department_synonym_to_db(short_name, full_name) |