6.3 KiB
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 (анализ 5-10 звонков → отчёт)
- Главная фича: Этап 3 (голосовой робот с персонами)
- Конкурентное преимущество: Этап 4 (замкнутый цикл + «не знаю» → лид)
Риски
- Yandex Realtime API: задержка, стабильность WebSocket
- SIP: NAT-пробросы, проброс RTP, WebSIP Proxy стабильность
- 152-ФЗ: хранение записей, согласие клиентов
- Конкуренция: Exolve (МТС), Звонобот, Unibell
- Ключевой риск: качество TTS — должен быть естественный, не шаблонный