Система непрерывной записи диалогов на точках продаж с автоматическим анализом качества допродаж — Raspberry Pi, Whisper и LLM под одним капотом.
Весь путь — от записи звука на кассе до оценки качества допродажи — происходит автоматически.
Raspberry Pi с USB-микрофоном пишет аудио по расписанию, нарезает на чанки и отправляет на сервер
Voice Activity Detection выделяет речевые фрагменты и собирает из них полноценные диалоги
Whisper транскрибирует диалоги в текст — точно и быстро, даже с фоновым шумом кассовой зоны
LLM оценивает: была ли попытка допродажи, насколько она качественная, что можно улучшить
Все данные — в удобном веб-интерфейсе: сводки, графики, диалоги с фильтрами, рейтинги точек
Offline-first: при потере сети чанки копятся локально и автоматически загружаются при восстановлении соединения — ни одна запись не теряется.
Комплексное решение от устройства на точке до отчётов для руководства.
Автоматически включается в 08:00 и выключается в 22:00. Расписание настраивается под часы работы каждой точки. Systemd-сервис с автозапуском гарантирует работу после перезагрузки.
Экспоненциальный backoff при ошибках сети — от 2 до 300 секунд. Автодетект USB-микрофона с переподключением при отключении. Ротация хранилища по возрасту и объёму.
VAD-воркер (webrtcvad) выделяет речевые сегменты и склеивает их в связные диалоги. Паузы и фоновый шум отфильтровываются — ASR получает только значимую речь.
LLM-воркер определяет: была ли сделана попытка допродажи, оценивает её по шкале качества, выявляет паттерны и ошибки. Данные для разметки спорных случаев прямо в дашборде.
Дашборд показывает live-статус каждого Raspberry Pi: идёт ли запись прямо сейчас, размер очереди загрузки, ошибки, время последнего heartbeat (обновляется каждые 30 секунд). Моментально видно, если что-то пошло не так на любой из точек.
Веб-интерфейс, в котором собрана вся аналитика по допродажам — от обзорных показателей до разбора конкретных диалогов.
Авторизация через URL API + ADMIN_TOKEN — токен только в sessionStorage браузера
Адаптивный UI: работает на десктопе, планшете и мобильном
Таймзона Europe/Belgrade — локальное время в интерфейсе
Запускается в Docker Compose — одна команда `docker compose up -d`
Сводные показатели за день: диалоги, попытки допродаж, среднее качество, графики по часам
Список с фильтрами по дате, точке, попытке, качеству. Массовое удаление и очистка очереди ASR
Разметка спорных диалогов, указание правильных значений, запуск переанализа через LLM
Live-статус всех Raspberry Pi: запись, очередь, ошибки, последний heartbeat
Каждый сервис делает одну задачу хорошо. Все работают вместе через PostgreSQL и Redis.
Сервис на устройстве: записывает аудио через ffmpeg, нарезает на OGG/Opus-чанки, загружает на Ingest API с retry и heartbeat.
FastAPI-сервер приёма чанков. Хранит аудио и метаданные в PostgreSQL + файловое хранилище. Admin API для управления устройствами.
Обрабатывает чанки через webrtcvad, строит диалоги из речевых сегментов. Работает непрерывно, подхватывает новые чанки из очереди.
Запускается на отдельном VPS с GPU. Забирает диалоги, собирает аудио и транскрибирует через Whisper. Поддерживает горизонтальное масштабирование.
LLM-анализ транскриптов через OpenAI API. Определяет наличие допродажи, оценивает качество, сохраняет результаты для дашборда.
Веб-интерфейс аналитики на порту 8080. Обзор, диалоги, проверка, устройства, пользователи — всё в одном месте.
Проверенные open-source инструменты, развёртывание через Docker Compose на собственных серверах.
SalesControl — один из четырёх инструментов IT-команды UPPETIT. Все они работают независимо и под нашим полным контролем.