SPLT case cover
Кейс

SPLT

Telegram-бот · учёт совместных трат.

Открыть страницу

О проекте

SPLT — Telegram-бот для пар и небольших групп, который превращает обычный общий чат в автоматический учёт совместных трат. Расходы пишут обычным языком прямо там, где уже переписываются, — бот их распознаёт, делит и держит актуальный баланс «кто кому должен».

Задача

Сделать разделение трат незаметным прямо в чате: без отдельного приложения и форм — просто пишешь строку, фотографируешь чек или отправляешь голосовое и получаешь точный текущий баланс.

Что сделали

Бот построен на чистой гексагональной архитектуре: чистый движок разделения — балансы, упрощение долгов, округление в целых копейках — полностью отделён от Telegram-слоя, поэтому то же ядро позже сможет питать другие клиенты без переписывания.

Свободный текст проходит через быстрый детерминированный парсер с LLM-фоллбэком для сложных формулировок и сумм прописью; бот также понимает возвраты («вернул 5000») как погашение долга, а не новую трату. Чеки читаются QR-first с фоллбэком на vision-модель, которая забирает итог прямо с фото. Голосовые расшифровываются и идут через тот же конвейер. Доступ ограничен allowlist'ом, а расход на API ограничен лимитами на стороне провайдеров.

Стек

  • TypeScript
  • grammY (Telegram Bot API)
  • Vercel (serverless)
  • Neon Postgres
  • Claude (Anthropic)
  • Распознавание речи
  • QR + vision OCR
  • Vitest

Результат

Продакшен-бот, который заносит трату за секунды — из текста, фото чека или голосового, — автоматически категоризирует расходы, считает баланс в реальном времени и строит помесячную разбивку по категориям, всё внутри одного Telegram-чата. Отделённый движок, покрытый юнит-тестами, готов к переиспользованию будущим приложением на общем бэкенде.