docs: presentation (slides.html) + backlog (Iter 2-4, 786h)
This commit is contained in:
parent
ea761814c1
commit
2d41a9fc2a
177
BACKLOG.md
Normal file
177
BACKLOG.md
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
# Backlog — AI-агент «Адвокат клиента»
|
||||||
|
|
||||||
|
Источник: PRD §7, TRD §10. Группировка по итерациям.
|
||||||
|
Формат: `[приоритет] описание → owner · оценка (час) · acceptance criteria`
|
||||||
|
|
||||||
|
Приоритеты: 🟥 must, 🟧 should, 🟨 could.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Итерация 1 — MVP (выполнено)
|
||||||
|
|
||||||
|
- 🟥 Camunda 7.21 в Docker + PostgreSQL → Backend · ✅
|
||||||
|
- 🟥 DDL 5 таблиц (`client_cases`, `client_appeals`, `case_events`, `operator_recommendations`, `weekly_analytics`) → Backend · ✅
|
||||||
|
- 🟥 BPMN `client-advocate-main` + `route-to-department` → Backend · ✅
|
||||||
|
- 🟥 18 external task workers (Spring Boot 3) → Backend · ✅
|
||||||
|
- 🟥 Синтетические данные: 7 кейсов из PRD §1.2 → Data · ✅
|
||||||
|
- 🟥 MockEventProducer (Kafka-симулятор) → Backend · ✅
|
||||||
|
- 🟥 MockCRMService / MockASCService / MockNotifierService → Backend · ✅
|
||||||
|
- 🟥 FastAPI AI-сервис: keyword sentiment + классификатор → AI · ✅
|
||||||
|
- 🟥 Статический дашборд (HTML/JS) с live polling → Frontend · ✅
|
||||||
|
- 🟧 Python-симулятор `simulate.py` для прогона без backend → Backend · ✅
|
||||||
|
- 🟧 REST API `/api/v1/cases`, `/cases/{id}`, CSAT endpoint → Backend · ✅
|
||||||
|
- 🟧 Auto-deploy BPMN через REST на старте воркеров → Backend · ✅
|
||||||
|
|
||||||
|
**Acceptance Iter-1 (TRD §10):**
|
||||||
|
- [x] Кейс №1 (98 обр.) → ⚫ BLACK → Human Task
|
||||||
|
- [x] Кейс №6 (59 обр., ТВ) → EQUIPMENT → mock ASC ticket
|
||||||
|
- [x] Кейс №3 (46 обр., интернет) → NETWORK → mock сигнал в мониторинг
|
||||||
|
- [x] CSAT 👎 → reopen с повышенным приоритетом
|
||||||
|
- [x] Таймер 18ч → проактивное уведомление (лог в консоль)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚧 Итерация 2 — Реальные интеграции (Недели 5–8)
|
||||||
|
|
||||||
|
### Источники данных
|
||||||
|
|
||||||
|
- 🟥 **CRM-интеграция read-only** → Integration · 40ч
|
||||||
|
- REST-клиент с retry/circuit-breaker (Resilience4j)
|
||||||
|
- Замапить `appeals.created` событие на process variables
|
||||||
|
- Acceptance: первые 100 живых обращений запускают процесс < 5 мин
|
||||||
|
- 🟥 **Kafka consumer** для `appeal.created`/`appeal.updated`/`ticket.closed`/`nps.received` → Integration · 24ч
|
||||||
|
- Заменить MockEventProducer на KafkaListener
|
||||||
|
- Idempotency: dedup по `appealId` (Redis SETNX)
|
||||||
|
- Acceptance: consumer lag < 30с при 10 msg/sec
|
||||||
|
- 🟧 **Webhook от Omilia B2C** → Integration · 16ч
|
||||||
|
- 🟧 **eOtinish poll-адаптер** (нет webhook) → Integration · 20ч
|
||||||
|
|
||||||
|
### Целевые системы
|
||||||
|
|
||||||
|
- 🟥 **ASC API — реальное создание заявок** → Integration · 24ч
|
||||||
|
- OAuth2 client credentials
|
||||||
|
- Map `equipmentType`, `serialNumber`, `preferredSlot`
|
||||||
|
- Acceptance: создаётся реальный тикет с возвращаемым ID
|
||||||
|
- 🟥 **Network Monitoring API** → Integration · 20ч
|
||||||
|
- POST `/api/signals` + опрос `/diagnostics/{id}`
|
||||||
|
- Acceptance: статус `auto_check_started: true`
|
||||||
|
- 🟥 **WhatsApp Business API** (исходящие) → Integration · 20ч
|
||||||
|
- Шаблон `advocate_proactive_notification` (одобрить в Meta Business)
|
||||||
|
- Fallback на SMS Gateway при отказе
|
||||||
|
- 🟧 **Finance Dept API** (перерасчёты) → Integration · 16ч
|
||||||
|
- 🟧 **STPK / ЦВЛТПК API** (монтаж) → Integration · 16ч
|
||||||
|
|
||||||
|
### Безопасность
|
||||||
|
|
||||||
|
- 🟥 OAuth2 client credentials через Kong API Gateway → DevOps · 8ч
|
||||||
|
- 🟥 Маскировка персданных в логах (Logback MDC filter) → Backend · 6ч
|
||||||
|
- 🟧 Vault для секретов (вместо .env) → DevOps · 8ч
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧠 Итерация 3 — AI / ML слой (Недели 9–12)
|
||||||
|
|
||||||
|
### Sentiment
|
||||||
|
|
||||||
|
- 🟥 **Fine-tune multilingual BERT (RU/KZ)** → AI · 60ч
|
||||||
|
- Датасет: 5k размеченных обращений
|
||||||
|
- Метрика: F1 ≥ 0.85 на NEGATIVE
|
||||||
|
- Endpoint: `POST /api/v1/sentiment`
|
||||||
|
- 🟧 Переключатель mock → BERT через feature flag → AI · 4ч
|
||||||
|
|
||||||
|
### Классификация боли
|
||||||
|
|
||||||
|
- 🟥 **LLM-классификатор категорий** (claude-sonnet или open-source Qwen) → AI · 30ч
|
||||||
|
- Структурированный JSON-output
|
||||||
|
- Fallback на rule-based при таймауте
|
||||||
|
- Acceptance: accuracy ≥ 0.90 vs ручная разметка
|
||||||
|
- 🟧 Few-shot prompt tuning под Kazakhtelecom-glossary → AI · 12ч
|
||||||
|
|
||||||
|
### Churn prediction
|
||||||
|
|
||||||
|
- 🟥 **LightGBM модель** на 8 фичах (TRD §6.3) → AI/Data · 60ч
|
||||||
|
- 6 мес. исторических данных
|
||||||
|
- SHAP-объяснения для каждой оценки
|
||||||
|
- Metric: AUC ≥ 0.78
|
||||||
|
- 🟧 Online-обновление модели раз в неделю → AI · 16ч
|
||||||
|
|
||||||
|
### Operator card
|
||||||
|
|
||||||
|
- 🟥 **LLM рекомендации оператору** (TRD §6.4) → AI · 24ч
|
||||||
|
- 3-5 действий + tone + compensation flag
|
||||||
|
- Лог использования в `operator_recommendations.action_taken`
|
||||||
|
- 🟧 A/B тест: с рекомендацией vs без → Analytics · 20ч
|
||||||
|
|
||||||
|
### BI дашборд
|
||||||
|
|
||||||
|
- 🟥 **Grafana дашборд для ДУКО** (PRD §4.6) → DevOps · 24ч
|
||||||
|
- Топ-10 детракторов, регионы, SLA-нарушители, FCR по департаментам
|
||||||
|
- 🟧 Еженедельный PDF-отчёт по email → Backend · 12ч
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Итерация 4 — Production-ready (Недели 13–16)
|
||||||
|
|
||||||
|
### Инфраструктура
|
||||||
|
|
||||||
|
- 🟥 **Kubernetes deployment** (TRD §8.2) → DevOps · 40ч
|
||||||
|
- HPA для workers (1–10 pods)
|
||||||
|
- StatefulSet для PostgreSQL HA (primary + replica)
|
||||||
|
- PVC: 500Gi SSD postgres, 200Gi kafka
|
||||||
|
- 🟥 **CI/CD pipeline** GitLab/Gitea Actions → DevOps · 24ч
|
||||||
|
- Lint → unit tests → build → staging deploy → integration tests → manual approve → prod
|
||||||
|
- 🟧 ELK stack для централизованных логов → DevOps · 16ч
|
||||||
|
- 🟧 Prometheus + Grafana alerting → DevOps · 12ч
|
||||||
|
|
||||||
|
### Нагрузочное тестирование
|
||||||
|
|
||||||
|
- 🟥 **k6 load test: 1000 кейсов/день** → QA · 16ч
|
||||||
|
- Acceptance: latency p95 < 5 мин (триггер → старт процесса)
|
||||||
|
- Throughput ≥ 42 кейса/час steady state
|
||||||
|
- 🟧 Chaos engineering: Camunda restart, DB failover → QA · 12ч
|
||||||
|
|
||||||
|
### Human Oversight
|
||||||
|
|
||||||
|
- 🟥 **UI для подтверждения BLACK-кейсов** (PRD §5) → Frontend · 40ч
|
||||||
|
- На основе Camunda Tasklist или кастомный React
|
||||||
|
- SSO интеграция с корпоративным AD
|
||||||
|
- 🟥 Ежедневный аудит 5% случайной выборки кейсов → Backend · 16ч
|
||||||
|
|
||||||
|
### Бизнес-валидация
|
||||||
|
|
||||||
|
- 🟥 **A/B-тест FCR (с агентом vs без)** → Analytics · 24ч
|
||||||
|
- Длительность: 4 недели
|
||||||
|
- 1 регион (Алматы или Астана)
|
||||||
|
- Sample size calc для 80% power
|
||||||
|
- 🟥 **Security audit** + penetration test → Security · 40ч
|
||||||
|
- OWASP Top 10
|
||||||
|
- ФЗ РК о персданных compliance
|
||||||
|
- 🟧 Стресс-тест UX операторов КЦ (≥ 20 человек) → UX · 24ч
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠 Технический долг / cross-cutting
|
||||||
|
|
||||||
|
- 🟧 Unit tests для воркеров (≥ 60% coverage) → Backend · 24ч
|
||||||
|
- 🟧 Integration tests через Camunda Engine Test → QA · 16ч
|
||||||
|
- 🟧 OpenAPI спека для `/api/v1/*` + Swagger UI → Backend · 8ч
|
||||||
|
- 🟧 BPMN versioning + migration стратегия → Backend · 12ч
|
||||||
|
- 🟧 PostgreSQL partitioning `client_appeals` по месяцам (24 мес. retention) → DBA · 8ч
|
||||||
|
- 🟨 Замена Camunda 7 → Camunda 8 (долгосрочно) → Architecture · 200ч+
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 Сводка по часам
|
||||||
|
|
||||||
|
| Итерация | Часы | Срок |
|
||||||
|
|----------|-----:|------|
|
||||||
|
| Iter 1 (готово) | — | — |
|
||||||
|
| Iter 2 | 208ч | 4 нед × 2 чел |
|
||||||
|
| Iter 3 | 230ч | 4 нед × 2 чел |
|
||||||
|
| Iter 4 | 272ч | 4 нед × 2.5 чел |
|
||||||
|
| Тех. долг | 76ч | continuous |
|
||||||
|
| **Всего Iter 2–4** | **786ч** | **12 недель** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Backlog v1.0 · обновлять после ретро каждой итерации*
|
||||||
@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": "b976de4b-8f75-46ad-b68d-1e56e42db4ed",
|
"id": "003dd609-1714-4841-81cf-23b00638de79",
|
||||||
"camunda_process_id": "proc-59e7878a-ba2e-42a7-9d8d-46789bce664c",
|
"camunda_process_id": "proc-9ea20de8-b9d5-4b93-8ad7-76437c46932c",
|
||||||
"client_id": "KT-10000001",
|
"client_id": "KT-10000001",
|
||||||
"client_name": "Айгуль Серикова",
|
"client_name": "Айгуль Серикова",
|
||||||
"client_phone": "+77011112233",
|
"client_phone": "+77011112233",
|
||||||
@ -9,7 +9,7 @@
|
|||||||
"priority_level": "BLACK",
|
"priority_level": "BLACK",
|
||||||
"status": "CLOSED",
|
"status": "CLOSED",
|
||||||
"routed_to": "NETWORK_MONITORING",
|
"routed_to": "NETWORK_MONITORING",
|
||||||
"routed_ticket_id": "NET-SIG-DC9CA1",
|
"routed_ticket_id": "NET-SIG-37DE68",
|
||||||
"sentiment_score": -1.0,
|
"sentiment_score": -1.0,
|
||||||
"churn_risk_score": 1.0,
|
"churn_risk_score": 1.0,
|
||||||
"total_appeals_count": 98,
|
"total_appeals_count": 98,
|
||||||
@ -46,7 +46,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567197+00:00"
|
"created_at": "2026-05-22T07:51:34.261035+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLASSIFIED",
|
"event_type": "CLASSIFIED",
|
||||||
@ -65,16 +65,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567300+00:00"
|
"created_at": "2026-05-22T07:51:34.261121+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ROUTED",
|
"event_type": "ROUTED",
|
||||||
"event_data": {
|
"event_data": {
|
||||||
"routedTo": "NETWORK_MONITORING",
|
"routedTo": "NETWORK_MONITORING",
|
||||||
"ticketId": "NET-SIG-DC9CA1"
|
"ticketId": "NET-SIG-37DE68"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567351+00:00"
|
"created_at": "2026-05-22T07:51:34.261166+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ESCALATED",
|
"event_type": "ESCALATED",
|
||||||
@ -83,7 +83,7 @@
|
|||||||
"assignedTo": "PERSONAL_MANAGER"
|
"assignedTo": "PERSONAL_MANAGER"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567448+00:00"
|
"created_at": "2026-05-22T07:51:34.261243+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "RESOLVED",
|
"event_type": "RESOLVED",
|
||||||
@ -91,7 +91,7 @@
|
|||||||
"notified": true
|
"notified": true
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567488+00:00"
|
"created_at": "2026-05-22T07:51:34.261272+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CSAT_RECEIVED",
|
"event_type": "CSAT_RECEIVED",
|
||||||
@ -99,7 +99,7 @@
|
|||||||
"score": 4
|
"score": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567522+00:00"
|
"created_at": "2026-05-22T07:51:34.261300+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLOSED",
|
"event_type": "CLOSED",
|
||||||
@ -107,16 +107,16 @@
|
|||||||
"csat": 4
|
"csat": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567553+00:00"
|
"created_at": "2026-05-22T07:51:34.261327+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"created_at": "2026-05-22T07:37:30.566970+00:00",
|
"created_at": "2026-05-22T07:51:34.260836+00:00",
|
||||||
"updated_at": "2026-05-22T07:37:30.567123+00:00",
|
"updated_at": "2026-05-22T07:51:34.260979+00:00",
|
||||||
"closed_at": "2026-05-22T07:37:30.567524+00:00"
|
"closed_at": "2026-05-22T07:51:34.261302+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "8492e26a-5950-49ac-a627-620cda9f8aac",
|
"id": "60152a6c-0f24-4d57-aac9-e30a8f1c7607",
|
||||||
"camunda_process_id": "proc-0f5f41e0-46f8-41f2-86c4-3b93f0b74dfd",
|
"camunda_process_id": "proc-6c1b398e-b54d-4a95-8d2b-f369d635d533",
|
||||||
"client_id": "KT-10000006",
|
"client_id": "KT-10000006",
|
||||||
"client_name": "Бахытжан Омаров",
|
"client_name": "Бахытжан Омаров",
|
||||||
"client_phone": "+77022223344",
|
"client_phone": "+77022223344",
|
||||||
@ -124,7 +124,7 @@
|
|||||||
"priority_level": "BLACK",
|
"priority_level": "BLACK",
|
||||||
"status": "CLOSED",
|
"status": "CLOSED",
|
||||||
"routed_to": "ASC",
|
"routed_to": "ASC",
|
||||||
"routed_ticket_id": "ASC-9831D7",
|
"routed_ticket_id": "ASC-D59491",
|
||||||
"sentiment_score": -0.6,
|
"sentiment_score": -0.6,
|
||||||
"churn_risk_score": 0.75,
|
"churn_risk_score": 0.75,
|
||||||
"total_appeals_count": 59,
|
"total_appeals_count": 59,
|
||||||
@ -159,7 +159,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567872+00:00"
|
"created_at": "2026-05-22T07:51:34.261597+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLASSIFIED",
|
"event_type": "CLASSIFIED",
|
||||||
@ -175,16 +175,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.567962+00:00"
|
"created_at": "2026-05-22T07:51:34.261666+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ROUTED",
|
"event_type": "ROUTED",
|
||||||
"event_data": {
|
"event_data": {
|
||||||
"routedTo": "ASC",
|
"routedTo": "ASC",
|
||||||
"ticketId": "ASC-9831D7"
|
"ticketId": "ASC-D59491"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568003+00:00"
|
"created_at": "2026-05-22T07:51:34.261702+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ESCALATED",
|
"event_type": "ESCALATED",
|
||||||
@ -193,7 +193,7 @@
|
|||||||
"assignedTo": "PERSONAL_MANAGER"
|
"assignedTo": "PERSONAL_MANAGER"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568091+00:00"
|
"created_at": "2026-05-22T07:51:34.261767+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "RESOLVED",
|
"event_type": "RESOLVED",
|
||||||
@ -201,7 +201,7 @@
|
|||||||
"notified": true
|
"notified": true
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568123+00:00"
|
"created_at": "2026-05-22T07:51:34.261795+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CSAT_RECEIVED",
|
"event_type": "CSAT_RECEIVED",
|
||||||
@ -209,7 +209,7 @@
|
|||||||
"score": 4
|
"score": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568154+00:00"
|
"created_at": "2026-05-22T07:51:34.261824+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLOSED",
|
"event_type": "CLOSED",
|
||||||
@ -217,16 +217,16 @@
|
|||||||
"csat": 4
|
"csat": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568191+00:00"
|
"created_at": "2026-05-22T07:51:34.261846+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"created_at": "2026-05-22T07:37:30.567830+00:00",
|
"created_at": "2026-05-22T07:51:34.261570+00:00",
|
||||||
"updated_at": "2026-05-22T07:37:30.567832+00:00",
|
"updated_at": "2026-05-22T07:51:34.261571+00:00",
|
||||||
"closed_at": "2026-05-22T07:37:30.568156+00:00"
|
"closed_at": "2026-05-22T07:51:34.261825+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "36612de2-8cea-4cba-b468-fc0af6269941",
|
"id": "000e1aca-b660-4677-ae8b-e381cd35dbbc",
|
||||||
"camunda_process_id": "proc-80b4ea48-7c1c-4e42-932c-5e059dca0313",
|
"camunda_process_id": "proc-59267f56-5141-42ab-a8a0-193bc183d6b8",
|
||||||
"client_id": "KT-10000003",
|
"client_id": "KT-10000003",
|
||||||
"client_name": "Дина Қасымова",
|
"client_name": "Дина Қасымова",
|
||||||
"client_phone": "+77033334455",
|
"client_phone": "+77033334455",
|
||||||
@ -234,7 +234,7 @@
|
|||||||
"priority_level": "BLACK",
|
"priority_level": "BLACK",
|
||||||
"status": "CLOSED",
|
"status": "CLOSED",
|
||||||
"routed_to": "NETWORK_MONITORING",
|
"routed_to": "NETWORK_MONITORING",
|
||||||
"routed_ticket_id": "NET-SIG-94A180",
|
"routed_ticket_id": "NET-SIG-064A10",
|
||||||
"sentiment_score": -1.0,
|
"sentiment_score": -1.0,
|
||||||
"churn_risk_score": 1.0,
|
"churn_risk_score": 1.0,
|
||||||
"total_appeals_count": 46,
|
"total_appeals_count": 46,
|
||||||
@ -269,7 +269,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568486+00:00"
|
"created_at": "2026-05-22T07:51:34.262077+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLASSIFIED",
|
"event_type": "CLASSIFIED",
|
||||||
@ -287,16 +287,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568573+00:00"
|
"created_at": "2026-05-22T07:51:34.262148+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ROUTED",
|
"event_type": "ROUTED",
|
||||||
"event_data": {
|
"event_data": {
|
||||||
"routedTo": "NETWORK_MONITORING",
|
"routedTo": "NETWORK_MONITORING",
|
||||||
"ticketId": "NET-SIG-94A180"
|
"ticketId": "NET-SIG-064A10"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568611+00:00"
|
"created_at": "2026-05-22T07:51:34.262181+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ESCALATED",
|
"event_type": "ESCALATED",
|
||||||
@ -305,7 +305,7 @@
|
|||||||
"assignedTo": "PERSONAL_MANAGER"
|
"assignedTo": "PERSONAL_MANAGER"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568691+00:00"
|
"created_at": "2026-05-22T07:51:34.262248+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "RESOLVED",
|
"event_type": "RESOLVED",
|
||||||
@ -313,7 +313,7 @@
|
|||||||
"notified": true
|
"notified": true
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568722+00:00"
|
"created_at": "2026-05-22T07:51:34.262275+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CSAT_RECEIVED",
|
"event_type": "CSAT_RECEIVED",
|
||||||
@ -321,7 +321,7 @@
|
|||||||
"score": 4
|
"score": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568753+00:00"
|
"created_at": "2026-05-22T07:51:34.262300+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLOSED",
|
"event_type": "CLOSED",
|
||||||
@ -329,16 +329,16 @@
|
|||||||
"csat": 4
|
"csat": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.568782+00:00"
|
"created_at": "2026-05-22T07:51:34.262322+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"created_at": "2026-05-22T07:37:30.568450+00:00",
|
"created_at": "2026-05-22T07:51:34.262052+00:00",
|
||||||
"updated_at": "2026-05-22T07:37:30.568452+00:00",
|
"updated_at": "2026-05-22T07:51:34.262053+00:00",
|
||||||
"closed_at": "2026-05-22T07:37:30.568755+00:00"
|
"closed_at": "2026-05-22T07:51:34.262301+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "35b1c108-013d-4f02-ab0b-f70f131e5e52",
|
"id": "7fc13b6b-96fb-48ba-8fd6-83191f55b8d7",
|
||||||
"camunda_process_id": "proc-6b76e5e6-d6cf-46cb-bc5d-c4bdc6efd4f0",
|
"camunda_process_id": "proc-f7d9920d-8692-421f-b648-1995ecc998b5",
|
||||||
"client_id": "KT-10000005",
|
"client_id": "KT-10000005",
|
||||||
"client_name": "Ерлан Жумабаев",
|
"client_name": "Ерлан Жумабаев",
|
||||||
"client_phone": "+77044445566",
|
"client_phone": "+77044445566",
|
||||||
@ -346,7 +346,7 @@
|
|||||||
"priority_level": "BLACK",
|
"priority_level": "BLACK",
|
||||||
"status": "CLOSED",
|
"status": "CLOSED",
|
||||||
"routed_to": "STPK",
|
"routed_to": "STPK",
|
||||||
"routed_ticket_id": "STPK-88D4DF",
|
"routed_ticket_id": "STPK-407D82",
|
||||||
"sentiment_score": -0.2,
|
"sentiment_score": -0.2,
|
||||||
"churn_risk_score": 0.45,
|
"churn_risk_score": 0.45,
|
||||||
"total_appeals_count": 15,
|
"total_appeals_count": 15,
|
||||||
@ -377,7 +377,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569067+00:00"
|
"created_at": "2026-05-22T07:51:34.262548+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLASSIFIED",
|
"event_type": "CLASSIFIED",
|
||||||
@ -391,16 +391,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569140+00:00"
|
"created_at": "2026-05-22T07:51:34.262611+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ROUTED",
|
"event_type": "ROUTED",
|
||||||
"event_data": {
|
"event_data": {
|
||||||
"routedTo": "STPK",
|
"routedTo": "STPK",
|
||||||
"ticketId": "STPK-88D4DF"
|
"ticketId": "STPK-407D82"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569177+00:00"
|
"created_at": "2026-05-22T07:51:34.262645+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ESCALATED",
|
"event_type": "ESCALATED",
|
||||||
@ -409,7 +409,7 @@
|
|||||||
"assignedTo": "PERSONAL_MANAGER"
|
"assignedTo": "PERSONAL_MANAGER"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569256+00:00"
|
"created_at": "2026-05-22T07:51:34.262709+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "RESOLVED",
|
"event_type": "RESOLVED",
|
||||||
@ -417,7 +417,7 @@
|
|||||||
"notified": true
|
"notified": true
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569287+00:00"
|
"created_at": "2026-05-22T07:51:34.262736+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CSAT_RECEIVED",
|
"event_type": "CSAT_RECEIVED",
|
||||||
@ -425,7 +425,7 @@
|
|||||||
"score": 4
|
"score": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569315+00:00"
|
"created_at": "2026-05-22T07:51:34.262760+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLOSED",
|
"event_type": "CLOSED",
|
||||||
@ -433,16 +433,16 @@
|
|||||||
"csat": 4
|
"csat": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569344+00:00"
|
"created_at": "2026-05-22T07:51:34.262781+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"created_at": "2026-05-22T07:37:30.569033+00:00",
|
"created_at": "2026-05-22T07:51:34.262524+00:00",
|
||||||
"updated_at": "2026-05-22T07:37:30.569035+00:00",
|
"updated_at": "2026-05-22T07:51:34.262526+00:00",
|
||||||
"closed_at": "2026-05-22T07:37:30.569317+00:00"
|
"closed_at": "2026-05-22T07:51:34.262761+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "cb717a9a-d9cf-43e0-a89a-1f691fa49a71",
|
"id": "e6834f57-6dab-4f94-96c4-014d491c0b08",
|
||||||
"camunda_process_id": "proc-f0310136-23aa-410c-ad70-9ee7f03616fe",
|
"camunda_process_id": "proc-9dc5ca02-f297-4870-9f6e-7cfe4c50a7d6",
|
||||||
"client_id": "KT-10000002",
|
"client_id": "KT-10000002",
|
||||||
"client_name": "Гульмира Тлеубай",
|
"client_name": "Гульмира Тлеубай",
|
||||||
"client_phone": "+77055556677",
|
"client_phone": "+77055556677",
|
||||||
@ -450,7 +450,7 @@
|
|||||||
"priority_level": "BLACK",
|
"priority_level": "BLACK",
|
||||||
"status": "CLOSED",
|
"status": "CLOSED",
|
||||||
"routed_to": "FINANCE",
|
"routed_to": "FINANCE",
|
||||||
"routed_ticket_id": "FIN-B29A06",
|
"routed_ticket_id": "FIN-9D5032",
|
||||||
"sentiment_score": -0.2,
|
"sentiment_score": -0.2,
|
||||||
"churn_risk_score": 0.45,
|
"churn_risk_score": 0.45,
|
||||||
"total_appeals_count": 22,
|
"total_appeals_count": 22,
|
||||||
@ -482,7 +482,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569621+00:00"
|
"created_at": "2026-05-22T07:51:34.263001+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLASSIFIED",
|
"event_type": "CLASSIFIED",
|
||||||
@ -496,16 +496,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569694+00:00"
|
"created_at": "2026-05-22T07:51:34.263062+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ROUTED",
|
"event_type": "ROUTED",
|
||||||
"event_data": {
|
"event_data": {
|
||||||
"routedTo": "FINANCE",
|
"routedTo": "FINANCE",
|
||||||
"ticketId": "FIN-B29A06"
|
"ticketId": "FIN-9D5032"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569730+00:00"
|
"created_at": "2026-05-22T07:51:34.263095+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ESCALATED",
|
"event_type": "ESCALATED",
|
||||||
@ -514,7 +514,7 @@
|
|||||||
"assignedTo": "PERSONAL_MANAGER"
|
"assignedTo": "PERSONAL_MANAGER"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569808+00:00"
|
"created_at": "2026-05-22T07:51:34.263159+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "RESOLVED",
|
"event_type": "RESOLVED",
|
||||||
@ -522,7 +522,7 @@
|
|||||||
"notified": true
|
"notified": true
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569837+00:00"
|
"created_at": "2026-05-22T07:51:34.263185+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CSAT_RECEIVED",
|
"event_type": "CSAT_RECEIVED",
|
||||||
@ -530,7 +530,7 @@
|
|||||||
"score": 4
|
"score": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569865+00:00"
|
"created_at": "2026-05-22T07:51:34.263207+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLOSED",
|
"event_type": "CLOSED",
|
||||||
@ -538,16 +538,16 @@
|
|||||||
"csat": 4
|
"csat": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.569904+00:00"
|
"created_at": "2026-05-22T07:51:34.263238+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"created_at": "2026-05-22T07:37:30.569589+00:00",
|
"created_at": "2026-05-22T07:51:34.262977+00:00",
|
||||||
"updated_at": "2026-05-22T07:37:30.569591+00:00",
|
"updated_at": "2026-05-22T07:51:34.262979+00:00",
|
||||||
"closed_at": "2026-05-22T07:37:30.569867+00:00"
|
"closed_at": "2026-05-22T07:51:34.263209+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1266d99c-de77-4a42-b4a6-dfb24d6c37d6",
|
"id": "27fd13d0-f349-483c-8eb5-2fdebd9d46e6",
|
||||||
"camunda_process_id": "proc-50362431-4e08-49d3-b2f9-7762057b62a7",
|
"camunda_process_id": "proc-52312373-e834-42fc-a476-fc638eade264",
|
||||||
"client_id": "KT-10000004",
|
"client_id": "KT-10000004",
|
||||||
"client_name": "Жанар Алиева",
|
"client_name": "Жанар Алиева",
|
||||||
"client_phone": "+77066667788",
|
"client_phone": "+77066667788",
|
||||||
@ -555,7 +555,7 @@
|
|||||||
"priority_level": "BLACK",
|
"priority_level": "BLACK",
|
||||||
"status": "CLOSED",
|
"status": "CLOSED",
|
||||||
"routed_to": "ASC",
|
"routed_to": "ASC",
|
||||||
"routed_ticket_id": "ASC-E2258C",
|
"routed_ticket_id": "ASC-1761B4",
|
||||||
"sentiment_score": -0.2,
|
"sentiment_score": -0.2,
|
||||||
"churn_risk_score": 0.45,
|
"churn_risk_score": 0.45,
|
||||||
"total_appeals_count": 22,
|
"total_appeals_count": 22,
|
||||||
@ -588,7 +588,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570173+00:00"
|
"created_at": "2026-05-22T07:51:34.263457+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLASSIFIED",
|
"event_type": "CLASSIFIED",
|
||||||
@ -602,16 +602,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570242+00:00"
|
"created_at": "2026-05-22T07:51:34.263517+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ROUTED",
|
"event_type": "ROUTED",
|
||||||
"event_data": {
|
"event_data": {
|
||||||
"routedTo": "ASC",
|
"routedTo": "ASC",
|
||||||
"ticketId": "ASC-E2258C"
|
"ticketId": "ASC-1761B4"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570286+00:00"
|
"created_at": "2026-05-22T07:51:34.263549+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ESCALATED",
|
"event_type": "ESCALATED",
|
||||||
@ -620,7 +620,7 @@
|
|||||||
"assignedTo": "PERSONAL_MANAGER"
|
"assignedTo": "PERSONAL_MANAGER"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570367+00:00"
|
"created_at": "2026-05-22T07:51:34.263613+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "RESOLVED",
|
"event_type": "RESOLVED",
|
||||||
@ -628,7 +628,7 @@
|
|||||||
"notified": true
|
"notified": true
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570396+00:00"
|
"created_at": "2026-05-22T07:51:34.263639+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CSAT_RECEIVED",
|
"event_type": "CSAT_RECEIVED",
|
||||||
@ -636,7 +636,7 @@
|
|||||||
"score": 4
|
"score": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570424+00:00"
|
"created_at": "2026-05-22T07:51:34.263661+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLOSED",
|
"event_type": "CLOSED",
|
||||||
@ -644,16 +644,16 @@
|
|||||||
"csat": 4
|
"csat": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570456+00:00"
|
"created_at": "2026-05-22T07:51:34.263686+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"created_at": "2026-05-22T07:37:30.570142+00:00",
|
"created_at": "2026-05-22T07:51:34.263434+00:00",
|
||||||
"updated_at": "2026-05-22T07:37:30.570143+00:00",
|
"updated_at": "2026-05-22T07:51:34.263435+00:00",
|
||||||
"closed_at": "2026-05-22T07:37:30.570426+00:00"
|
"closed_at": "2026-05-22T07:51:34.263663+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "368057f7-429e-42ed-934e-f86e8bdcb269",
|
"id": "8e9fa53f-1025-44c2-8ea6-482492311b86",
|
||||||
"camunda_process_id": "proc-7a365164-9f22-42cc-aa1a-512ead4c1760",
|
"camunda_process_id": "proc-f17fc150-1802-48cd-90dc-2cfa1e090b60",
|
||||||
"client_id": "KT-10000007",
|
"client_id": "KT-10000007",
|
||||||
"client_name": "Ислам Нурланов",
|
"client_name": "Ислам Нурланов",
|
||||||
"client_phone": "+77077778899",
|
"client_phone": "+77077778899",
|
||||||
@ -661,7 +661,7 @@
|
|||||||
"priority_level": "BLACK",
|
"priority_level": "BLACK",
|
||||||
"status": "CLOSED",
|
"status": "CLOSED",
|
||||||
"routed_to": "CC_OPERATOR",
|
"routed_to": "CC_OPERATOR",
|
||||||
"routed_ticket_id": "MOCK-CRM-2D7315",
|
"routed_ticket_id": "MOCK-CRM-A82D1F",
|
||||||
"sentiment_score": -0.2,
|
"sentiment_score": -0.2,
|
||||||
"churn_risk_score": 0.45,
|
"churn_risk_score": 0.45,
|
||||||
"total_appeals_count": 21,
|
"total_appeals_count": 21,
|
||||||
@ -693,7 +693,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570736+00:00"
|
"created_at": "2026-05-22T07:51:34.263907+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLASSIFIED",
|
"event_type": "CLASSIFIED",
|
||||||
@ -707,16 +707,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570804+00:00"
|
"created_at": "2026-05-22T07:51:34.263959+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ROUTED",
|
"event_type": "ROUTED",
|
||||||
"event_data": {
|
"event_data": {
|
||||||
"routedTo": "CC_OPERATOR",
|
"routedTo": "CC_OPERATOR",
|
||||||
"ticketId": "MOCK-CRM-2D7315"
|
"ticketId": "MOCK-CRM-A82D1F"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570840+00:00"
|
"created_at": "2026-05-22T07:51:34.263986+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "ESCALATED",
|
"event_type": "ESCALATED",
|
||||||
@ -725,7 +725,7 @@
|
|||||||
"assignedTo": "PERSONAL_MANAGER"
|
"assignedTo": "PERSONAL_MANAGER"
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570916+00:00"
|
"created_at": "2026-05-22T07:51:34.264040+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "RESOLVED",
|
"event_type": "RESOLVED",
|
||||||
@ -733,7 +733,7 @@
|
|||||||
"notified": true
|
"notified": true
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570945+00:00"
|
"created_at": "2026-05-22T07:51:34.264061+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CSAT_RECEIVED",
|
"event_type": "CSAT_RECEIVED",
|
||||||
@ -741,7 +741,7 @@
|
|||||||
"score": 4
|
"score": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.570972+00:00"
|
"created_at": "2026-05-22T07:51:34.264082+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"event_type": "CLOSED",
|
"event_type": "CLOSED",
|
||||||
@ -749,11 +749,11 @@
|
|||||||
"csat": 4
|
"csat": 4
|
||||||
},
|
},
|
||||||
"actor": "AI_AGENT",
|
"actor": "AI_AGENT",
|
||||||
"created_at": "2026-05-22T07:37:30.571000+00:00"
|
"created_at": "2026-05-22T07:51:34.264105+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"created_at": "2026-05-22T07:37:30.570704+00:00",
|
"created_at": "2026-05-22T07:51:34.263880+00:00",
|
||||||
"updated_at": "2026-05-22T07:37:30.570706+00:00",
|
"updated_at": "2026-05-22T07:51:34.263881+00:00",
|
||||||
"closed_at": "2026-05-22T07:37:30.570974+00:00"
|
"closed_at": "2026-05-22T07:51:34.264083+00:00"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -51,7 +51,7 @@
|
|||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Polling каждые 5 сек · Источник: <a href="./cases.json" target="_blank">cases.json</a> или <a href="/api/v1/cases">/api/v1/cases</a> · <a href="./simulation.log" target="_blank">simulation.log</a>
|
Polling каждые 5 сек · Источник: <a href="./cases.json" target="_blank">cases.json</a> или <a href="/api/v1/cases">/api/v1/cases</a> · <a href="./simulation.log" target="_blank">simulation.log</a> · <a href="./slides.html" target="_blank">📊 Презентация</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="app.js"></script>
|
<script src="app.js"></script>
|
||||||
|
|||||||
270
dashboard/slides.html
Normal file
270
dashboard/slides.html
Normal file
@ -0,0 +1,270 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/>
|
||||||
|
<title>Адвокат клиента — Презентация</title>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reset.css"/>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.css"/>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/theme/black.css" id="theme"/>
|
||||||
|
<style>
|
||||||
|
.reveal { font-family: -apple-system, "Segoe UI", Roboto, sans-serif; }
|
||||||
|
.reveal h1, .reveal h2, .reveal h3 { color: #38bdf8; text-transform: none; letter-spacing: -0.5px; }
|
||||||
|
.reveal h1 { font-size: 2.0em; }
|
||||||
|
.reveal h2 { font-size: 1.5em; }
|
||||||
|
.reveal h3 { font-size: 1.15em; color: #f0abfc; }
|
||||||
|
.reveal table { font-size: 0.55em; border-collapse: collapse; width: 100%; }
|
||||||
|
.reveal table th, .reveal table td { border: 1px solid #334155; padding: 6px 10px; text-align: left; }
|
||||||
|
.reveal table th { background: #1e293b; }
|
||||||
|
.reveal small { opacity: 0.6; font-size: 0.55em; }
|
||||||
|
.reveal .quote { font-style: italic; color: #cbd5e1; border-left: 3px solid #38bdf8; padding-left: 12px; margin: 16px 0; font-size: 0.7em; }
|
||||||
|
.reveal .badge { padding: 3px 10px; border-radius: 12px; font-size: 0.55em; font-weight: 700; }
|
||||||
|
.reveal .BLACK { background: #0f172a; color: #f1f5f9; border: 1px solid #475569; }
|
||||||
|
.reveal .RED { background: #7f1d1d; color: #fecaca; }
|
||||||
|
.reveal .YELLOW { background: #713f12; color: #fde68a; }
|
||||||
|
.reveal .GREEN { background: #14532d; color: #bbf7d0; }
|
||||||
|
.reveal pre { font-size: 0.45em; }
|
||||||
|
.reveal code { color: #f0abfc; }
|
||||||
|
.reveal ul li { margin: 6px 0; font-size: 0.75em; }
|
||||||
|
.reveal .small-list li { font-size: 0.6em; }
|
||||||
|
.reveal .footnote { position: absolute; bottom: 12px; right: 24px; font-size: 0.4em; opacity: 0.5; }
|
||||||
|
.reveal .twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
|
||||||
|
.reveal .metric { font-size: 2.5em; font-weight: 700; color: #38bdf8; }
|
||||||
|
.reveal .metric-label { font-size: 0.55em; opacity: 0.7; }
|
||||||
|
.reveal section.title-slide { background: linear-gradient(135deg, #0c4a6e, #312e81); }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="reveal"><div class="slides">
|
||||||
|
|
||||||
|
<!-- 1. Title -->
|
||||||
|
<section class="title-slide">
|
||||||
|
<h1>⚖️ AI-агент «Адвокат клиента»</h1>
|
||||||
|
<p>Проактивная защита клиентов Kazakhtelecom от повторных обращений</p>
|
||||||
|
<p><small>ДУКО · Hackathon 22.05.2026 · MVP Iteration 1</small></p>
|
||||||
|
<p><small>Камunda 7 · Spring Boot · Python · PostgreSQL</small></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 2. Problem -->
|
||||||
|
<section>
|
||||||
|
<h2>Проблема</h2>
|
||||||
|
<p class="quote">Клиенты обращаются повторно по одному вопросу. Система реактивна, не видит истории, переводит между службами без результата.</p>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>Кейс</th><th>Обращений</th><th>Период</th><th>Каналы</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>№1</td><td><b>98</b></td><td>16.01–28.08.2025</td><td>4 канала</td></tr>
|
||||||
|
<tr><td>№6</td><td><b>59</b></td><td>09.07–02.10.2025</td><td>5 каналов</td></tr>
|
||||||
|
<tr><td>№3</td><td><b>46</b></td><td>21.01–18.12.2025</td><td>3 канала</td></tr>
|
||||||
|
<tr><td>№5</td><td>15</td><td>18.02–10.11.2025</td><td>3 канала</td></tr>
|
||||||
|
<tr><td>№2/4</td><td>22</td><td>2025 год</td><td>5 каналов</td></tr>
|
||||||
|
<tr><td>№7</td><td>21</td><td>27.01–10.09.2025</td><td>4 канала</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p><small>FCR ~45%, churn детракторов ~18%, NPS -35</small></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 3. Solution -->
|
||||||
|
<section>
|
||||||
|
<h2>Решение</h2>
|
||||||
|
<p class="quote">AI-агент видит историю клиента поперёк каналов, классифицирует боль, маршрутизирует в правильный департамент, контролирует до закрытия — <b>без повторного звонка клиента</b>.</p>
|
||||||
|
<ul>
|
||||||
|
<li>🎯 Детекция аномалий — количественные + качественные + канальные триггеры</li>
|
||||||
|
<li>🧠 AI-классификация: категория боли + приоритет (🟢🟡🔴⚫)</li>
|
||||||
|
<li>🚦 Маршрутизация → ASC / NetMon / Finance / СТПК / КЦ</li>
|
||||||
|
<li>📱 Проактивный контакт через WhatsApp/SMS</li>
|
||||||
|
<li>👤 Human-in-the-loop для ⚫ ЧЁРНЫХ кейсов</li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 4. Architecture -->
|
||||||
|
<section>
|
||||||
|
<h2>Архитектура</h2>
|
||||||
|
<pre><code>┌── ИСТОЧНИКИ ─────────────────────────────────────┐
|
||||||
|
│ CRM · КЦ-160 · Omilia · WhatsApp · eOtinish │
|
||||||
|
└────────────────────┬─────────────────────────────┘
|
||||||
|
│ Kafka (appeal.created, ticket.closed)
|
||||||
|
▼
|
||||||
|
┌────────────────────┐
|
||||||
|
│ CAMUNDA 7 ENGINE │ ← BPMN-оркестратор
|
||||||
|
│ client-advocate- │
|
||||||
|
│ main + route-to- │
|
||||||
|
│ department │
|
||||||
|
└─────────┬──────────┘
|
||||||
|
│ External Task polling
|
||||||
|
┌────────────┴────────────┐
|
||||||
|
▼ ▼
|
||||||
|
┌──────────────┐ ┌──────────────────┐
|
||||||
|
│ Java Workers │←───────→│ AI Service │
|
||||||
|
│ (Spring Boot)│ REST │ (FastAPI) │
|
||||||
|
│ 18 handlers │ │ sentiment+class. │
|
||||||
|
└──────┬───────┘ └──────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌──────────────┐ ┌────────────────────┐
|
||||||
|
│ PostgreSQL │ │ Mock Integrations │
|
||||||
|
│ 5 tables │ │ CRM·ASC·NetMon·WA │
|
||||||
|
└──────────────┘ └────────────────────┘</code></pre>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 5. BPMN -->
|
||||||
|
<section>
|
||||||
|
<h2>BPMN-процесс</h2>
|
||||||
|
<pre><code>[Старт] → EnrichProfile → ClassifyPain → ⟨Приоритет?⟩
|
||||||
|
├─ 🟢 GREEN → StandardHandling
|
||||||
|
├─ 🟡 YELLOW → NotifySupervisor → Queue → ⏱ SLA 4h
|
||||||
|
├─ 🔴 RED → RouteToDept → ProactiveContact → Control
|
||||||
|
└─ ⚫ BLACK → HumanTask(директор ДУКО) → PersonalEscal
|
||||||
|
↓
|
||||||
|
NotifyResolved → CSAT → ⟨Доволен?⟩
|
||||||
|
├─ Да → Close
|
||||||
|
└─ Нет → Reopen (priority+1)</code></pre>
|
||||||
|
<p><small>2 BPMN-процесса · 18 external task workers · 5 SLA-таймеров</small></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 6. Priority logic -->
|
||||||
|
<section>
|
||||||
|
<h2>Логика приоритезации</h2>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>Приоритет</th><th>Условия</th><th>Действие</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><span class="badge GREEN">🟢 GREEN</span></td><td>1–2 обращения</td><td>Стандартная обработка</td></tr>
|
||||||
|
<tr><td><span class="badge YELLOW">🟡 YELLOW</span></td><td>3–4 обр. / SLA >24ч / sentiment <−0.5</td><td>Уведомить супервайзера, приоритет в очереди</td></tr>
|
||||||
|
<tr><td><span class="badge RED">🔴 RED</span></td><td>5+ обр. / открытая заявка + новая</td><td>Автоэскалация, проактивный контакт, компенсация</td></tr>
|
||||||
|
<tr><td><span class="badge BLACK">⚫ BLACK</span></td><td>10+ обр. / угроза суда / VIP</td><td>Эскалация директору ДУКО, персональный менеджер</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<pre><code class="language-java">if (total >= 10 || churnSignal) return "BLACK";
|
||||||
|
if (total >= 5 || (openTicket && total >= 3)) return "RED";
|
||||||
|
if (total >= 3 || sentiment < -0.5) return "YELLOW";
|
||||||
|
return "GREEN";</code></pre>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 7. Demo -->
|
||||||
|
<section>
|
||||||
|
<h2>Демо</h2>
|
||||||
|
<div class="twocol">
|
||||||
|
<div>
|
||||||
|
<h3>Симуляция</h3>
|
||||||
|
<ul class="small-list">
|
||||||
|
<li>7 кейсов из PRD §1.2</li>
|
||||||
|
<li>Все → ⚫ BLACK (totalAppeals ≥ 10)</li>
|
||||||
|
<li>Маршрутизация по 4 системам:
|
||||||
|
<ul>
|
||||||
|
<li>2× NetMon (NETWORK)</li>
|
||||||
|
<li>2× ASC (EQUIPMENT)</li>
|
||||||
|
<li>1× Finance (BILLING)</li>
|
||||||
|
<li>1× СТПК (INSTALLATION)</li>
|
||||||
|
<li>1× CC (SERVICE)</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3>Ссылки</h3>
|
||||||
|
<ul class="small-list">
|
||||||
|
<li>📊 <a href="./index.html">Дашборд</a></li>
|
||||||
|
<li>📋 <a href="./cases.json">cases.json</a></li>
|
||||||
|
<li>📜 <a href="./simulation.log">simulation.log</a></li>
|
||||||
|
</ul>
|
||||||
|
<p><small>В дашборде каждый кейс имеет кнопку «Детали» — карточка оператора + полный лог BPMN-процесса.</small></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 8. OKRs -->
|
||||||
|
<section>
|
||||||
|
<h2>Метрики успеха (OKR)</h2>
|
||||||
|
<div class="twocol">
|
||||||
|
<div>
|
||||||
|
<p class="metric">≥70%</p>
|
||||||
|
<p class="metric-label">FCR (baseline ~45%)</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p class="metric">≤1.5</p>
|
||||||
|
<p class="metric-label">обращений на кейс (было 3.2)</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p class="metric">≤48ч</p>
|
||||||
|
<p class="metric-label">время закрытия (было >10 дней)</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p class="metric">≤10%</p>
|
||||||
|
<p class="metric-label">churn детракторов (было ~18%)</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p><small>Горизонт — 6 месяцев. Подтверждение через A/B-тест в Итерации 4.</small></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 9. Stack -->
|
||||||
|
<section>
|
||||||
|
<h2>Технологический стек</h2>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>Слой</th><th>Технология</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>Оркестратор</td><td>Camunda 7.21 (self-hosted)</td></tr>
|
||||||
|
<tr><td>Backend / Workers</td><td>Java 17 + Spring Boot 3</td></tr>
|
||||||
|
<tr><td>AI / ML</td><td>Python 3.11 + FastAPI · BERT · LightGBM</td></tr>
|
||||||
|
<tr><td>База данных</td><td>PostgreSQL 15</td></tr>
|
||||||
|
<tr><td>Очередь</td><td>Apache Kafka (Iter 2+)</td></tr>
|
||||||
|
<tr><td>Кэш</td><td>Redis 7 (Iter 4)</td></tr>
|
||||||
|
<tr><td>Контейнеризация</td><td>Docker + Kubernetes (Iter 4)</td></tr>
|
||||||
|
<tr><td>Дашборд</td><td>Static HTML (MVP) → Grafana (Iter 3)</td></tr>
|
||||||
|
<tr><td>Мониторинг</td><td>Prometheus + Grafana + ELK</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 10. Roadmap -->
|
||||||
|
<section>
|
||||||
|
<h2>Roadmap</h2>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>Итер.</th><th>Срок</th><th>Содержание</th><th>Готово</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>1 · MVP</td><td>Недели 1–4</td><td>Camunda + workers + моки + 7 кейсов</td><td>✅ Сейчас</td></tr>
|
||||||
|
<tr><td>2 · Интеграции</td><td>Недели 5–8</td><td>CRM read-only, ASC API, NetMon, WhatsApp, Kafka</td><td>—</td></tr>
|
||||||
|
<tr><td>3 · AI-слой</td><td>Недели 9–12</td><td>BERT sentiment, LLM-карточки, churn-модель, BI-дашборд</td><td>—</td></tr>
|
||||||
|
<tr><td>4 · Масштаб</td><td>Недели 13–16</td><td>K8s, нагрузочное, A/B-тест, security audit</td><td>—</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 11. Risks -->
|
||||||
|
<section>
|
||||||
|
<h2>Риски</h2>
|
||||||
|
<table>
|
||||||
|
<thead><tr><th>Риск</th><th>Веро.</th><th>Митигация</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>CRM-интеграция > 2 мес.</td><td>Высокая</td><td>Начать с CSV/Excel выгрузки</td></tr>
|
||||||
|
<tr><td>Ложные срабатывания триггеров</td><td>Средняя</td><td>Ручная верификация первые 4 недели</td></tr>
|
||||||
|
<tr><td>Сопротивление операторов</td><td>Средняя</td><td>UX-исследование + обучение + геймификация</td></tr>
|
||||||
|
<tr><td>Утечка персданных</td><td>Низкая</td><td>Маскировка в логах, RBAC, AES-256 шифрование</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 12. Close -->
|
||||||
|
<section class="title-slide">
|
||||||
|
<h1>Что дальше</h1>
|
||||||
|
<ul>
|
||||||
|
<li>✅ MVP готов · 7 кейсов проходят полный pipeline</li>
|
||||||
|
<li>▶ Согласовать доступ к CRM + ASC API (Итерация 2)</li>
|
||||||
|
<li>▶ Стартовать обучение sentiment-модели RU+KZ</li>
|
||||||
|
<li>▶ Подобрать пилот: 1 регион × 4 недели</li>
|
||||||
|
</ul>
|
||||||
|
<p><small>Связь: ДУКО, Kazakhtelecom · Демо: <a href="./index.html">этот дашборд</a></small></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.js"></script>
|
||||||
|
<script>
|
||||||
|
Reveal.initialize({
|
||||||
|
hash: true,
|
||||||
|
slideNumber: 'c/t',
|
||||||
|
transition: 'fade',
|
||||||
|
controls: true,
|
||||||
|
progress: true,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user