Розробка AI-системи автоматизації обробки звернень громадян

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка AI-системи автоматизації обробки звернень громадян
Складний
~2-4 тижні
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Розробка AI-системи для автоматизації обробки звернень громадян

Звернення громадян до органів влади — високонавантажений та суворо регламентований процес. Федеральний закон № 59-ФЗ встановлює строки: письмові звернення — 30 днів, окремі категорії — 10–15 днів. Порушення строків тягне адміністративну відповідальність. AI-система дозволяє автоматизувати приймання, класифікацію, маршрутизацію та підготовку відповідей при дотриманні всіх нормативних вимог.

Архітектура системи

Система складається з кількох незалежних модулів, кожен з яких може впроваджуватися окремо:

Модуль приймання — інтеграція з каналами надходження звернень: портал державних послуг (ЕСІА), офіційний сайт відомства, електронна пошта, МФЦ (СМЕВ), приймальні. Нормалізація вхідних даних у єдиний формат.

Модуль класифікації — визначення тематики звернення за класифікатором відомства, профільного органу, терміновості. Виявлення повторних звернень та скарг на порушення строків.

Модуль маршрутизації — автоматичне визначення відповідального підрозділу та виконавця на основі тематики, територіальної приналежності та навантаження.

Модуль підготовки відповідей — генерація проекту відповіді на типові звернення, пошук за базою нормативних актів та попередніх відповідей.

Модуль контролю строків — SLA-трекінг з урахуванням святкових днів, ескалація при наближенні дедлайну.

Класифікація та видобування даних

from pydantic import BaseModel
from enum import Enum

class RequestCategory(str, Enum):
    HOUSING = "житлові питання"
    UTILITIES = "ЖКХ"
    LAND = "земельні відносини"
    SOCIAL = "соціальний захист"
    TRANSPORT = "транспорт та дороги"
    ECOLOGY = "екологія"
    PERMISSIONS = "дозволи та ліцензії"
    COMPLAINT = "скарга на дії посадових осіб"
    OTHER = "інше"

class CitizenRequest(BaseModel):
    applicant_name: str
    applicant_contact: str
    request_text: str
    attachments: list[str]

class ProcessedRequest(BaseModel):
    category: RequestCategory
    subcategory: str
    subject_summary: str          # короткий виклад у 1-2 реченнях
    responsible_department: str
    priority: str                 # routine / urgent / special_control
    deadline_days: int            # розраховане терміном відповіді за законом 59-ФЗ
    requires_interdepartmental: bool  # потрібен міжвідомчий запит
    extracted_addresses: list[str]    # адреси з тексту звернення
    extracted_organizations: list[str]
    is_repeat: bool               # повторне звернення
    related_request_ids: list[str]

def process_citizen_request(request: CitizenRequest, db) -> ProcessedRequest:
    # Пошук подібних попередніх звернень
    similar = db.semantic_search(request.request_text, top_k=5)

    context = build_context(similar)
    return llm.parse(
        build_classification_prompt(request, context),
        response_format=ProcessedRequest
    )

Визначення строків за законом 59-ФЗ

Розрахунок строку не є тривіальним: базовий термін 30 днів, але є винятки — звернення у сфері ЖКХ можуть потребувати відповіді в 10 днів за регіональними актами, терміні звернення — 15 днів. Міжвідомчий запит продовжує термін на 30 днів з повідомленням заявника.

def calculate_deadline(
    request: ProcessedRequest,
    received_date: date,
    holiday_calendar: HolidayCalendar
) -> DeadlineInfo:

    base_days = 30  # базовий термін за законом 59-ФЗ ст. 12

    if request.priority == "urgent":
        base_days = 15
    elif request.category == RequestCategory.UTILITIES:
        base_days = 10  # регіональні вимоги

    if request.requires_interdepartmental:
        base_days += 30  # ст. 10 ч. 2 закону 59-ФЗ

    # Робочі дні з урахуванням виробничого календаря
    deadline = holiday_calendar.add_working_days(received_date, base_days)

    return DeadlineInfo(
        deadline=deadline,
        warning_date=holiday_calendar.add_working_days(received_date, base_days - 5),
        escalation_date=holiday_calendar.add_working_days(received_date, base_days - 2)
    )

Підготовка проектів відповідей

Для типових звернень (80–90% вхідного потоку) система генерує проект відповіді автоматично. Відповідь повинна містити посилання на НПА та конкретні розъяснення, а не загальні фрази.

def generate_draft_response(
    request: ProcessedRequest,
    original_text: str,
    knowledge_base: KnowledgeBase
) -> DraftResponse:

    # Пошук релевантних НПА, постанов, регламентів
    relevant_docs = knowledge_base.search(
        query=original_text,
        doc_types=["law", "regulation", "instruction", "precedent"],
        top_k=10
    )

    # Генерація відповіді з посиланнями
    prompt = f"""Підготуй офіційну відповідь на звернення громадянина.

Звернення: {original_text}
Тематика: {request.category}

Релевантні НПА:
{format_documents(relevant_docs)}

Вимоги:
- Офіційний діловий стиль
- Конкретні посилання на статті нормативних актів
- Опис порядку дій для заявника
- Без загальних фраз та стереотипних відповідей"""

    draft = llm.generate(prompt, max_tokens=800)

    return DraftResponse(
        text=draft,
        referenced_documents=[d.id for d in relevant_docs[:5]],
        confidence=estimate_confidence(request, relevant_docs),
        requires_human_review=request.priority == "urgent" or request.category == RequestCategory.COMPLAINT
    )

Робота з ЕСІА та СМЕВ

Інтеграція з федеральною інфраструктурою:

ЕСІА (Єдина система ідентифікації та аутентифікації): аутентифікація заявника, отримання верифікованих персональних даних — ПІБ, СНІЛС, адреса. Дозволяє не запитувати документи повторно.

СМЕВ (Система міжвідомчої електронної взаємодії): міжвідомчі запити в автоматичному режимі. Наприклад, для відповіді на звернення про земельну ділянку система автоматично запитує відомості з Рославітацю.

ГІС ЖКХ API: для звернень з комунальних послуг — перевірка нарахувань, аварійних заявок, стану дому.

ЕПГУ (державні послуги): отримання звернень через API державних послуг, публікація статусів розгляду.

Виявлення системних проблем

Агрегований аналіз звернень виявляє повторюючі проблеми:

def detect_systemic_issues(
    requests: list[ProcessedRequest],
    period_days: int = 30
) -> list[SystemicIssue]:

    # Кластеризація за тематикою та адресами
    clusterer = HDBSCANClusterer(min_cluster_size=10)
    clusters = clusterer.fit(requests)

    issues = []
    for cluster in clusters:
        if cluster.growth_rate > 2.0:  # зростання числа звернень у 2+ рази
            issues.append(SystemicIssue(
                category=cluster.dominant_category,
                location=cluster.most_common_address,
                request_count=len(cluster.requests),
                sample_texts=cluster.get_samples(n=3),
                trend="growing",
                recommended_action=generate_action_recommendation(cluster)
            ))

    return sorted(issues, key=lambda x: x.request_count, reverse=True)

Антифрод та захист від зловживань

Система виявляє: координовані кампанії звернень за одним шаблоном, звернення з ознаками маніпуляції, безмістні звернення. Не блокує — маркує для окремого розгляду. Кожне звернення має бути розглянуте відповідно до закону 59-ФЗ.

Строки впровадження

Місяць 1–2: Модуль приймання (email, веб-форма), базова класифікація за класифікатором, SLA-трекінг

Місяць 3–4: Інтеграція з ЕСІА, модуль маршрутизації, дашборд для керівників

Місяць 5–6: Генерація проектів відповідей, інтеграція з базою НПА

Місяць 7–8: СМЕВ-інтеграція, аналітика системних проблем, пілот на 3 підрозділах

Місяць 9–10: Масштабування, навчання співробітників, оцінка ефективності