TGViewer
AI Борода Бориса AI Борода Бориса @borisbeard · 439 subscribers
Post #65 465
MVP AI-сервиса для аналитики NPS и отзывов в Додо

На прошлой неделе закончился курс AI Product Engineer от Байрама (курс, кстати топ, рекомендую). В первом дз нужно было сделать агента для анализа отзывов. Я свой собрал еще месяц назад, нопонял, что в канале про это еще не рассказывал.

В Додо регулярно собираем фидбек и NPS. Разбирать это руками – долго и неудобно. Я навайбкодил агента: загружаешь выгрузку → на выходе интерактивная аналитика с умной категоризацией.

Что получилось
— Сначала 6000 строк обрабатывались ~60 мин, после нескольких итераций оптимизации довел ~3 мин (в 20 раз быстрее)
— В срезах видно динамику NPS, доли категорий, сегменты и примеры отзывов
— Стоимость вызово LLM снижаю за счет кэша и гибких режимов обработки

Немного про техническую начинку

Агентная архитектура
MasterCoordinator – дирижер: парсит файл, запускает классификацию, собирает метрики и финальную структуру.
ClassificationAgent – умный "свитчер": сначала простые правила (словари), если не хватает — сравнение по смыслу (эмбеддинги), при низкой уверенности – эскалация в LLM.
InsightAgent – "аналитик": по метрикам и распределениям генерит краткое резюме и рекомендации.
Все модули слабо связаны: координатор подменяемо получает «агентов» и возвращает один доменный результат, который дальше маппится во фронт.

Стек
Бэкенд: Python + FastAPI, четкие DTO на Pydantic, эндпоинты: загрузка, статус/результат, экспорт, плюс WebSocket прогресса.
Фронтенд: ванильный JS + Chart.js + Jinja2. Графики – NPS-таймлайн, категории, демография, помесячка; кликаешь по категории — видишь примеры отзывов.

Инфра и скорость
Docker Compose (web, redis), healthcheck, non-root; в деве – hot reload.
Кэш по MD5 контента (Redis/SQLite) – ускоряет повторы и экономит.
Режимы исполнения переключаются конфигом: потоковый, асинхронный с ограничением параллельности, пакетные эмбеддинги, параллельные батчи с авто-фоллбеком.
Телеметрия: время, стоимость, использование инструментов, cache hit rate, контроль памяти и авто-дауншифт, если упираемся в ресурсы.

Я прорабатывал всю логику и архитектуру, а код писал Claude Code. Одну фичу ради интереса сделал через gpt-5 в Cursor. Старался делать сразу продакшен райди.

Итог
В целом получилось сделать около боевой сервис, но все равно надо немного полировки, чтобы отпускать в свободное плавание. При этом я сейчас один, а AI инициатив в компании много. Поэтому поставил пока проект на паузу, чтобы навалиться на более денежные штуки. Как-нибудь еще обязательно вернусь, чтобы добить!
  • 🔥 11
  • 👀 2
More from @borisbeard
  1. Aug 29, 2026Контекст решает. Часть 1: как устроено у меня Один из самых частых вопросов, которые мне з…
  2. Aug 14, 2026Совмещайте приятное с полезным Раз уж сегодня пятница, покажу, как у нас в Додо одна из ко…
  3. Aug 8, 2026Разгоняем с иишкой Как и многие в моем окружении, я в основном сижу на клоде. Долго он был…
  4. Aug 3, 2026🦾 AI дорос до собственного юнита в Dodo Engineering Привет! На связи AI Lead Dodo Enginee…
  5. Jul 29, 2026Что там с AI в Додо? Отличный вопрос! Отвечу чётко и по делу. Без воды. Только конкретика.…
  6. Mar 20, 2026Вайбкодинг с Claude Code be like... От запроса до результата на проде меньше часа! Еще как…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →