Update: persona-based bot, fallback→lead pipeline, content admin, voice specifics

This commit is contained in:
neo committed 2026-06-10 21:18:55 +05:00
1 parent 1af355838a
commit 4c014b896f
1 file changed
+46 -19
+46 -19
View File
@@ -1,5 +1,7 @@
# 🗺️ План реализации calls24
> На основе кейса Adict.ru: команда персон, маршрутизация, честный fallback → лид.
## Этап 0: Инфраструктура (неделя 1)
- [x] Репозиторий на Gitea (`neo/calls24`)
@@ -25,7 +27,7 @@
**Вход:** WAV/MP3 файлы
**Выход:** JSON-анализ + HTML-отчёт
## Этап 2: Генерация скрипта (недели 3-4)
## Этап 2: Генерация скрипта и персон (недели 3-4)
### voice-analyzer/pattern_gen.py
- [ ] Анализ паттернов успешных звонков
@@ -34,13 +36,18 @@
- Фразы-крючки
- Обработка возражений
- Закрытие сделки
- [ ] Сохранение скрипта в PostgreSQL
- [ ] Генерация набора персон (на основе типа бизнеса)
- Менеджер продаж (основной)
- Консультант (вопросы)
- Финансист (цены, ипотека)
- Куратор (постпродажа)
- [ ] Сохранение скриптов и персон в PostgreSQL
- [ ] Версионирование скриптов
**Вход:** Анализ 100+ звонков клиента
**Выход:** JSON state machine для робота
**Выход:** JSON state machine для каждой персоны
## Этап 3: Голосовой робот (недели 4-6)
## Этап 3: Голосовой робот (недели 4-7)
### voice-bot/
- [ ] `main.py` — FastAPI (REST + WebSocket)
@@ -53,52 +60,72 @@
- STT → текст
- LLM → текст → TTS → аудио
- Задержка <1 сек
- [ ] `script.py` — State Machine
- Приветствие
- Квалификация
- Предложение
- [ ] `router.py` — Маршрутизатор между персонами
- Автоопределение роли по контексту
- Выбор персоны (автоматически или клиент выбирает)
- [ ] `persona.py` — State Machine для каждой персоны
- Приветствие (с тоном персоны)
- Квалификация / Ответ на вопросы
- Предложение / Консультация
- Возражения
- Закрытие
- Закрытие / Передача
- [ ] `memory.py` — Контекстная память (Redis)
- Общая память сессии (персона видит, что было до)
- Память персоны (её специфичные данные)
- [ ] `fallback.py` — Честный «не знаю»
- Не галлюцинировать
- Предложить контакт менеджера
- Сохранить тему в content_entries
- [ ] `voice_bridge.py` — Звуковой мостик (300мс)
- При передаче между персонами
- Чтобы клиент не чувствовал разрыва
**Вход:** SIP-линия
**Выход:** Живой голосовой разговор
**Критичные фичи голоса:**
- Прерывания: клиент перебивает → система замолкает мгновенно
- Пауза внутри мысли ≠ конец фразы (ждём 1.5-2с тишины)
- Защита ролей: персоне нельзя уходить в чужую роль
## Этап 4: Замкнутый цикл (недели 6-8)
## Этап 4: Замкнутый цикл + контент-админка (недели 7-9)
- [ ] Автоматический анализ звонков робота
- [ ] Выявление слабых мест скрипта
- [ ] Автогенерация улучшенной версии
- [ ] A/B тестирование скриптов
- [ ] **Content Admin** — админка для контент-менеджера
- Список «запрашиваемых тем, на которые нет ответа»
- Добавление ответов без участия разработчика
- Гибридный поиск (BM25 + эмбеддинги)
- Обновление KB без релиза
- [ ] Dashboard для мониторинга
**Вход:** Все звонки робота
**Выход:** Улучшенный скрипт → новая версия
**Выход:** Улучшенный скрипт + обновлённая KB → новая версия
## Этап 5: CRM и интеграции (недели 7-9)
## Этап 5: CRM и интеграции (недели 9-11)
- [ ] Bitrix24 (контакты, сделки)
- [ ] AmoCRM (контакты, воронки)
- [ ] Telegram-бот для клиента
- [ ] API для сторонних систем
## Этап 6: Продуктовеение (недели 9-12)
## Этап 6: Продуктовеение (недели 11-14)
- [ ] Веб-дашборд для клиента
- [ ] Личный кабинет
- [ ] Аналитика по звонкам
- [ ] Биллинг и оплата
- [ ] Onboarding-онбординг
- [ ] Onboarding
## Приоритеты
1. **Самый быстрый путь к деньгам:** Этап 1 (анализ 5-10 звонков → отчёт)
2. **Главная фича:** Этап 3 (реальный голосовой робот)
3. **Конкурентное преимущество:** Этап 4 (замкнутый цикл)
2. **Главная фича:** Этап 3 (голосовой робот с персонами)
3. **Конкурентное преимущество:** Этап 4 (замкнутый цикл + «не знаю» → лид)
## Риски
- Yandex Realtime API: задержка, стабильность WebSocket
- SIP: NAT-пробросы, проброс RTP, WebSIP Proxy стабильность
- 152-ФЗ: хранение записей, согласие клиентов
- Конкуренция: Exolve (МТС) — большой игрок с бюджетом
- Конкуренция: Exolve (МТС), Звонобот, Unibell
- **Ключевой риск:** качество TTS — должен быть естественный, не шаблонный