AI-агент Адвокат клиента — MVP
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.
Go to file
Асель Мамажанова 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
ai-service feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00
bpmn feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00
dashboard feat: add Python pipeline simulator + static fallback for dashboard 2026-05-22 12:40:03 +05:00
data/synthetic feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00
sql feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00
workers feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00
.gitignore Initial: Асель Мамажанова joins the platform 2026-05-22 10:31:42 +05:00
docker-compose.yml feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00
GITEA.md Initial: Асель Мамажанова joins the platform 2026-05-22 10:31:42 +05:00
PRD.md feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00
README.md feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00
simulate.py feat: add Python pipeline simulator + static fallback for dashboard 2026-05-22 12:40:03 +05:00
TRD.md feat: AI-агент «Адвокат клиента» — MVP Iteration 1 2026-05-22 12:30:06 +05:00

Адвокат клиента — MVP (Iteration 1)

Реализация TRD.md, Итерация 1 (MVP).

Стек: Camunda 7.21 · Spring Boot 3 (workers) · PostgreSQL 15 · FastAPI (AI) · Nginx static (dashboard) · всё в Docker Compose.

Что внутри

Каталог Что
bpmn/ client-advocate-main.bpmn, route-to-department.bpmn
sql/ DDL для PostgreSQL + создание camunda БД
data/synthetic/appeals.json 7 синтетических детракторов из PRD §1.2
workers/ Spring Boot — все Iter-1 воркеры + REST API на :8082
ai-service/ FastAPI — keyword-based sentiment + classifier на :8081
dashboard/ Статический HTML/JS дашборд на :3000

Production URLs (Traefik)

После push в main сервер автоматически поднимает стек через docker-compose.yml.

Внутренние сервисы (postgres, workers, ai-service) наружу не выставлены — только через Traefik роутеры.

Внешняя Traefik-сеть называется traefik. Если у вас другое имя — поправьте networks.traefik.name и traefik.docker.network лейблы в docker-compose.yml.

Локальный запуск

Для запуска без Traefik (без ports: теперь по умолчанию недоступно с хоста), создайте docker-compose.override.yml:

services:
  dashboard: { ports: ["3000:80"] }
  camunda:   { ports: ["8080:8080"] }
  workers:   { ports: ["8082:8082"] }
  postgres:  { ports: ["5432:5432"] }

Затем:

docker compose up --build

MockEventProducer ждёт 30 секунд после старта, затем каждые 30 секунд запускает по одному из 7 кейсов через Camunda REST.

Что увидите

Кейс Клиент Обращений Ожидаемый приоритет Маршрут
№1 KT-10000001 98 ⚫ BLACK Human Task → personal escalation
№6 KT-10000006 59 ⚫ BLACK Human Task
№3 KT-10000003 46 ⚫ BLACK Human Task
№5 KT-10000005 15 ⚫ BLACK Human Task
№2 KT-10000002 22 ⚫ BLACK Human Task
№4 KT-10000004 22 ⚫ BLACK Human Task
№7 KT-10000007 21 ⚫ BLACK Human Task

BLACK кейсы блокируются на Human Task — открой Camunda Tasklist (http://localhost:8080/camunda/app/tasklist) с логином demo/demo и подтверди их вручную (требование PRD §5).

YELLOW кейсы пауза 4 часа на SLA timer (TRD §4.3) — для демо считать корректным.

API

GET  /api/v1/cases               — список всех кейсов
GET  /api/v1/cases/{id}          — кейс + рекомендации + лог событий
POST /api/v1/cases               — создать кейс вручную
POST /api/v1/cases/{id}/csat     — принять CSAT-ответ

Дальше (по TRD §10)

  • Iter 2 — реальные интеграции (CRM/ASC/WhatsApp/Kafka)
  • Iter 3 — AI-слой (BERT sentiment, LLM рекомендации, churn-модель)
  • Iter 4 — Kubernetes + нагрузочное тестирование

В этой папке инициализирован git и подключен remote origin → Gitea. См. GITEA.md.