# 🗺️ План реализации calls24 > На основе кейса Adict.ru: команда персон, маршрутизация, честный fallback → лид. ## Этап 0: Инфраструктура (неделя 1) - [x] Репозиторий на 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 — должен быть естественный, не шаблонный