Your department receives 10,000+ requests per month—from housing and utilities inquiries to complaints about official actions. Manual processing of each takes 3–5 days, and missing deadlines under Federal Law No. 59-FZ risks fines and complaints to the prosecutor's office. The situation is compounded by a 20% annual increase in requests and template inquiries that consume 80% of employee time. We develop AI systems that automate reception, classification, routing, and response preparation, reducing processing time by 5–10 times. Our experience spans over 10 years in AI and 50+ implementations in the public sector. Get an analysis of your stream in 2 days—contact us.
AI System for Automating Citizen Request Processing: How It Works
Key System Modules
Reception and Integration with Government Resources
The system integrates with ESIA, SMEV, email, and the portal. It normalizes data into a single format. Through ESIA, it obtains verified applicant data (full name, SNILS, address). SMEV allows automatic interagency requests—for example, data from the Rosreestr for land-related inquiries. Integration with GIS Housing and Utilities and EPGU (Gosuslugi) is also available for status publication.
Classification and Data Extraction
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
)
Deadline Calculation per 59-FZ
According to 59-FZ, the base deadline for request processing is 30 days, extendable by 30 days for interagency requests. The calculation is non-trivial: exceptions exist—housing and utilities requests may require a 10-day response per regional regulations, urgent requests—15 days. An interagency request extends the deadline by 30 days with notification to the applicant.
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)
)
Generation of Draft Responses
For standard requests (80–90% of the incoming stream), the system automatically generates a draft response. The response includes references to regulatory legal acts (NPAs) and specific explanations, not generic phrases. Compare: manual preparation takes 2–4 hours, AI generation takes 10–15 minutes with 95% accuracy.
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
)
Why HDBSCAN for Clustering?
Detecting systemic issues requires a noise-robust algorithm. HDBSCAN does not require specifying the number of clusters and identifies outliers, which is critical for real data. Example:
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)
Anti-Fraud Module
The system identifies coordinated campaigns (many identical templates), requests with signs of manipulation, and empty submissions. They are not blocked—they are tagged for separate review. Every request must be processed according to 59-FZ.Comparison of Manual and AI Processing
| Parameter | Manual Processing | AI Automation |
|---|---|---|
| Classification Time | 10–20 min | < 1 sec |
| Classification Accuracy | ~70–80% | > 95% |
| Response Preparation Time | 2–4 hours | 10–15 min |
| Deadline Control | Manual, errors | Automatic, escalations |
| Processing Cost for 10,000 Requests | 5–7 FTE | 1–2 FTE |
AI classification is 15–25 percentage points more accurate than manual, and response generation speed is 12–16 times higher. Budget savings for a department can reach 5 million rubles per year at a stream of 10,000 requests. Get a detailed savings calculation for your department.
How AI Reduces Request Processing Time by 5–10 Times?
Thanks to automatic classification and response generation for 80–90% of standard requests. Employees handle only complex and non-standard inquiries. The system automatically tracks deadlines and escalates overdue items.
What's Included in the Pilot Implementation?
| Stage | Duration | What's Included |
|---|---|---|
| 1. Basic Reception and Classification | 1–2 months | Integration of email and web form, classifier setup, SLA tracking |
| 2. Routing and Dashboard | 3–4 months | Integration with ESIA, assignment of executors, reports for managers |
| 3. Response Generation | 5–6 months | Generation of draft responses, connection to NPA database |
| 4. SMEV and Analytics | 7–8 months | Interagency requests, identification of systemic issues, pilot in 3 departments |
| 5. Scaling | 9–10 months | Deployment across all divisions, training, effectiveness evaluation |
What's Included in the Final Deliverable
- Documentation: technical documentation, operator instructions, administrator guide.
- Access: to system API, dashboards, logs.
- Training: training for 10–15 employees, self-paced materials.
- Support: 3 months of warranty support, SLA for incidents.
- Source code: classification and response generation modules (optional).
Our Experience and Guarantees
We have been working with AI solutions for over 10 years, implementing 50+ systems in the public sector. Key projects:
- Automation of request processing for a regional ministry (70% time reduction, 3.5 million rubles annual savings).
- Deadline control system for a federal agency (95% reduction in fines).
We guarantee: compliance with 59-FZ, certified security, phased implementation without interrupting current operations. Request a consultation—we'll analyze your stream in 2 days for free.







