This repository has been archived on 2026-11-14. You can view files and clone it, but cannot push or open issues or pull requests.
client-advocate/dashboard/index.html
Асель Мамажанова ea761814c1 feat: add Python pipeline simulator + static fallback for dashboard
simulate.py воспроизводит полный pipeline без Camunda/Java:
  Kafka → EnrichProfile → ClassifyPain (AI) → priority gateway →
  route-to-department → ProactiveContact/HumanTask → CSAT → Close

Эмулирует обращения к моковым внешним системам (CRM, ASC, NetworkMon,
Finance, STPK, WhatsApp, Notifier). Выходные артефакты:

  dashboard/cases.json     — 7 кейсов детракторов в формате REST API
  dashboard/simulation.log — лог симулированных вызовов

Дашборд теперь читает cases.json как fallback когда /api/v1/cases
недоступен — даёт деплой на Gitea Pages без backend (ветка gitea-pages).
2026-05-22 12:40:03 +05:00

60 lines
2.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<title>Адвокат клиента — Дашборд</title>
<link rel="stylesheet" href="styles.css"/>
</head>
<body>
<header>
<h1>⚖️ AI-агент «Адвокат клиента»</h1>
<p class="subtitle">Kazakhtelecom · ДУКО · MVP Iteration 1</p>
</header>
<section class="stats" id="stats">
<div class="card"><span class="label">Всего кейсов</span><span class="value" id="stat-total">—</span></div>
<div class="card black"><span class="label">⚫ BLACK</span><span class="value" id="stat-black">—</span></div>
<div class="card red"><span class="label">🔴 RED</span><span class="value" id="stat-red">—</span></div>
<div class="card yellow"><span class="label">🟡 YELLOW</span><span class="value" id="stat-yellow">—</span></div>
<div class="card green"><span class="label">🟢 GREEN</span><span class="value" id="stat-green">—</span></div>
</section>
<main>
<h2>Активные кейсы</h2>
<table id="cases-table">
<thead>
<tr>
<th>Приоритет</th>
<th>Клиент</th>
<th>Категория</th>
<th>Обращений</th>
<th>Статус</th>
<th>Маршрут</th>
<th>Тикет</th>
<th>Sentiment</th>
<th>Churn</th>
<th>Дней</th>
<th></th>
</tr>
</thead>
<tbody id="cases-body">
<tr><td colspan="11" class="empty">Загрузка…</td></tr>
</tbody>
</table>
</main>
<aside id="case-detail" hidden>
<button id="close-detail">✕</button>
<h3>Детали кейса</h3>
<pre id="detail-body"></pre>
</aside>
<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>
</footer>
<script src="app.js"></script>
</body>
</html>