Files
calls24_v2_ideas/PLAN.md
T

6.3 KiB

🗺️ План реализации calls24

На основе кейса Adict.ru: команда персон, маршрутизация, честный fallback → лид.

Этап 0: Инфраструктура (неделя 1)

  • Репозиторий на Gitea (neo/calls24)
  • Docker Compose-стек (PostgreSQL, Qdrant, Redis)
  • Настройка Yandex AI Studio API-доступа
  • Настройка WebSIP Proxy (тестовая линия SIP)

Этап 1: Анализ звонков (недели 2-3)

voice-analyzer/

  • main.py — FastAPI эндпоинт для загрузки аудио
  • stt.py — Yandex STT интеграция (локализация текста)
  • analyzer.py — LLM-анализ текста звонка
    • Выявление скрипта
    • Тайминги и паттерны
    • Возражения клиента и реакция оператора
    • Оценка конверсии
  • report.py — Генерация отчёта (HTML)
    • Что было хорошо / плохо
    • Рекомендации по скрипту
    • Сравнение операторов

Вход: WAV/MP3 файлы Выход: JSON-анализ + HTML-отчёт

Этап 2: Генерация скрипта и персон (недели 3-4)

voice-analyzer/pattern_gen.py

  • Анализ паттернов успешных звонков
  • LLM-генерация скрипта из паттернов
    • Этапы разговора
    • Фразы-крючки
    • Обработка возражений
    • Закрытие сделки
  • Генерация набора персон (на основе типа бизнеса)
    • Менеджер продаж (основной)
    • Консультант (вопросы)
    • Финансист (цены, ипотека)
    • Куратор (постпродажа)
  • Сохранение скриптов и персон в PostgreSQL
  • Версионирование скриптов

Вход: Анализ 100+ звонков клиента Выход: JSON state machine для каждой персоны

Этап 3: Голосовой робот (недели 4-7)

voice-bot/

  • main.py — FastAPI (REST + WebSocket)
  • sip_proxy.py — WebSIP Proxy (SIP ↔ WebSocket)
    • Приём входящих
    • Исходящие звонки
    • Запись аудио
  • realtime.py — Yandex Realtime API
    • WebSocket клиент
    • STT → текст
    • LLM → текст → TTS → аудио
    • Задержка <1 сек
  • router.py — Маршрутизатор между персонами
    • Автоопределение роли по контексту
    • Выбор персоны (автоматически или клиент выбирает)
  • persona.py — State Machine для каждой персоны
    • Приветствие (с тоном персоны)
    • Квалификация / Ответ на вопросы
    • Предложение / Консультация
    • Возражения
    • Закрытие / Передача
  • memory.py — Контекстная память (Redis)
    • Общая память сессии (персона видит, что было до)
    • Память персоны (её специфичные данные)
  • fallback.py — Честный «не знаю»
    • Не галлюцинировать
    • Предложить контакт менеджера
    • Сохранить тему в content_entries
  • voice_bridge.py — Звуковой мостик (300мс)
    • При передаче между персонами
    • Чтобы клиент не чувствовал разрыва

Критичные фичи голоса:

  • Прерывания: клиент перебивает → система замолкает мгновенно
  • Пауза внутри мысли ≠ конец фразы (ждём 1.5-2с тишины)
  • Защита ролей: персоне нельзя уходить в чужую роль

Этап 4: Замкнутый цикл + контент-админка (недели 7-9)

  • Автоматический анализ звонков робота
  • Выявление слабых мест скрипта
  • Автогенерация улучшенной версии
  • A/B тестирование скриптов
  • Content Admin — админка для контент-менеджера
    • Список «запрашиваемых тем, на которые нет ответа»
    • Добавление ответов без участия разработчика
    • Гибридный поиск (BM25 + эмбеддинги)
    • Обновление KB без релиза
  • Dashboard для мониторинга

Вход: Все звонки робота Выход: Улучшенный скрипт + обновлённая KB → новая версия

Этап 5: CRM и интеграции (недели 9-11)

  • Bitrix24 (контакты, сделки)
  • AmoCRM (контакты, воронки)
  • Telegram-бот для клиента
  • API для сторонних систем

Этап 6: Продуктовеение (недели 11-14)

  • Веб-дашборд для клиента
  • Личный кабинет
  • Аналитика по звонкам
  • Биллинг и оплата
  • Onboarding

Приоритеты

  1. Самый быстрый путь к деньгам: Этап 1 (анализ 5-10 звонков → отчёт)
  2. Главная фича: Этап 3 (голосовой робот с персонами)
  3. Конкурентное преимущество: Этап 4 (замкнутый цикл + «не знаю» → лид)

Риски

  • Yandex Realtime API: задержка, стабильность WebSocket
  • SIP: NAT-пробросы, проброс RTP, WebSIP Proxy стабильность
  • 152-ФЗ: хранение записей, согласие клиентов
  • Конкуренция: Exolve (МТС), Звонобот, Unibell
  • Ключевой риск: качество TTS — должен быть естественный, не шаблонный