Живий голосовий місток браузер→Telegram: Realtime AI-агент відповідає голосом і миттєво пінгує цей бот, коли питання потребує людини.
Роль
Стек
Голосова фіча цього самого сайту: WebRTC-дзвінок до OpenAI Realtime-агента, обґрунтованого тим самим контекстом, що й текстовий чат, прямо в браузері. Коли агент не може відповісти з цього контексту, він викликає один function tool, що зберігає питання і — через цей Telegram-бот — миттєво повідомляє мене, разом з email того, хто дзвонив, тож я точно знаю, кому відповісти. Кожен початок дзвінка теж шле сповіщення в Telegram, тож жоден дзвінок не лишається непоміченим.
Підхід
- Cloudflare Turnstile + per-IP rate limit гейтять мінт ephemeral OpenAI Realtime client_secret — реальний API-ключ ніколи не потрапляє в браузер
- WebRTC-хендшейк напряму з клієнта до OpenAI Realtime цим ephemeral-ключем
- Той самий білдер системного контексту, що й текстовий чат-віджет, обгорнутий голосовими правилами (коротко, без markdown, спершу привітання)
- Один function tool (save_question_for_serhii) — результат летить у цей Telegram-бот, без жодної БД
- Жорсткий ліміт дзвінка 2 хвилини з wrap-up-сповіщенням і повним teardown незалежно від того, що робить агент
Примітка щодо перевірки
Живий у продакшні на цьому сайті — реальні WebRTC-дзвінки, реальні Telegram-сповіщення про початок дзвінка й про питання без відповіді. Без заяв про кількість дзвінків.