Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI-поддержка: system design и PoC

Кейс: маршрутизация и автоответ на ~200 000 тикетов саппорта в сутки со спайком до 20 000 за 10 минут при инцидентах, p95 ≤ 500 мс на sync-пути, асинхронная генерация ответа, ручная проверка рискованных категорий, корректная деградация. Репозиторий — дизайн решения плюс минимальный PoC, показывающий horizontal ветви пайплайна и логирование решений.

Запуск

Требования: Python 3.10+. Работает офлайн, никаких весов не скачивает, никуда не ходит по сети.

make install
make demo
make test

make install создаёт локальный .venv в папке проекта. make demo прогоняет data/tickets_sample.jsonl через полный pipeline, печатает человекочитаемый отчёт и пишет poc/out/decisions.jsonl. make test запускает smoke- и injection-тесты.

Ожидаемый результат демо (16 тикетов): auto=1, suggest=4, human=11. Auto достаётся password_reset из allowlist. injection, sensitive PII, legal_threat, health — все в human. Один инцидент-кластер из трёх payment_failed-тикетов детектируется и подключается к inc_payment_failed_001.

Флаг LLM_MOCK_DOWN=1 симулирует падение LLM: make demo переключает черновики в template-mode, поле llm_available=false пишется в лог.

Пример записи decisions.jsonl

{"ticket_id":"t_001","timestamp":"2026-08-04T19:03:25Z","channel":"chat",
 "predicted_category":"order_cancel","score":0.3364,
 "risk":{"pii_types":[],"denylist":[],"injection":false},
 "retrieved_ids":["kb_001","kb_009","kb_003"],
 "decision":"suggest","reasons":["conf>=0.32"],"incident_id":null,
 "llm_used":true,"llm_available":true,
 "model_version":"clf_v0.1_tfidf_knn","prompt_version":"prompt_v0.1_mock",
 "threshold_version":"th_v1"}

Схема — как в poc/log.py. По записи восстанавливается версия модели, промпта и порогов на момент решения; retrieved_ids ведут к конкретным статьям KB.

Упрощения PoC и куда они ведут в проде

PoC Целевое решение
TF-IDF char-ngram + nearest neighbor по KB Калиброванная LogReg на разметке (~2k tickets), пороги через precision@coverage
Detекция injection на 7 regex Regex + отдельный ML-детектор на adversarial eval-set после первых недель прода
Мок-LLM с шаблонным черновиком Внешний provider (mid-tier) или on-prem инференс, structured JSON output
Retrieval: pandas + sklearn на 13 статьях pgvector hnsw на KB + resolved-корпусе, nightly rebuild, e5-base эмбеддер
Incident cluster на скользящем окне и пороге 0.42 Стриминговый cluster-detector на потоке эмбеддингов с центроидами
Один decision log в JSONL Append-only PG-таблица с триггером-запретом на UPDATE/DELETE, 12 мес retention

Куда читать

  • docs/architecture.md — sync и async пути, storage, очередь, fallback- матрица, sequence-диаграмма, обоснование pipeline вместо агента.
  • docs/ml.md — правила, baseline, retrieval, LLM-границы, разметка, метрики, evals, regression gate.
  • docs/monitoring.md — SLIs, алерты, benchmark-набор, токен-экономика, бюджетная деградация.
  • docs/risks-and-ops.md — highload, приватность, prompt injection, аудит, что за скоупом.
  • docs/product.md — value propositions, бэклог, план раскатки, три сценария эффекта, дизайн проверки гипотез.
  • AI_USAGE.md, WORKLOG.md, SELF_REVIEW.md — процесс и рефлексия.

About

Задание 2. System Design

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages