Нажмите «Позвонить», ответьте голосом за сотрудника компании — агент проведёт холодный звонок по сценарию: представится, изложит предложение, выяснит актуальность и ЛПР, попросит адрес для КП и корректно отработает отказ. Как только разговор закончен, его итог автоматически ложится строкой в таблицу внизу.
| Компания | Статус | Контактное лицо | Куда прислать КП | Перезвонить | Выжимка разговора | Длит. | Реплик | |
|---|---|---|---|---|---|---|---|---|
| Здесь появится строка после первого завершённого звонка. | ||||||||
Микрофон браузера (Web Speech API) переводит реплику в текст. Модель получает историю разговора и текущий шаг сценария и возвращает строгий JSON: сигнал, контактное лицо, адрес, время перезвона, признак ЛПР и текст ответной реплики. Ответ озвучивает Gemini 2.5 Flash TTS голосом Kore: он слышит, что фраза вопросительная, и ведёт интонацию вверх. Реплики сценария озвучены заранее и играют мгновенно.
E-mail принимается, только если он дословно звучал в реплике (диктовку «собака / точка» код нормализует сам). Время перезвона — только при реальном указании времени. Имя — только если оно есть в расшифровке. Всё остальное отбрасывается.
Статус звонка, переход по шагам сценария, конец разговора, дедупликация «этой компании уже звонили», дневной лимит и счётчик расхода — детерминированный Python. Модель на них влиять не может.
Та же логика переносится на Twilio / Vapi / Retell: сценарий, гейты, статусы и выгрузка результатов в вашу CRM или Google Sheets. Стенд собран как демонстрация подхода, а не как коробочный продукт.