132 lines
6.3 KiB
Markdown
132 lines
6.3 KiB
Markdown
# 🗺️ План реализации 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 — должен быть естественный, не шаблонный
|