Жизненный цикл сессии

Сессия — это единица работы Whisperer: промежуток времени, за который клиент слушает встречу, транскрибирует речь и получает ответы от LLM. Понимание жизненного цикла помогает правильно использовать старт/паузу, интерпретировать статусы в кабинете и диагностировать неполадки.

Когда использовать

Читайте эту статью, если хотите понять:

  • что происходит с данными в каждой фазе встречи;
  • почему ответ иногда задерживается и когда стенограмма сохраняется;
  • как устроена связь между клиентом и сервером.

Фазы сессии

1. Запуск

Нажатие кнопки «Старт» (или горячей клавиши) переводит клиент в активный режим:

  1. Клиент открывает соединение с сервером и отправляет идентификатор устройства и токен.
  2. Сервер проверяет подписку и квоту минут. Если проверка пройдена — подтверждает начало сессии и возвращает её идентификатор.
  3. Клиент активирует захват аудио и начинает запись.

2. Запись (streaming)

Аудио передаётся короткими фрагментами каждые ~0,8 секунды. Каждый фрагмент помечен говорящим: пользователь или собеседник.

Сервер буферизует фрагменты и отправляет их на распознавание. Транскрипт возвращается клиенту в реальном времени и отображается в LiveTranscriptStrip.

3. Запрос и ответ

Когда пользователь нажимает «Спросить» (или горячую клавишу), клиент отправляет фрейм ask с текущим контекстом стенограммы.

Сервер собирает системный промпт (гарантии безопасности → роль → контекст пользователя → RAG из базы знаний) и запрашивает LLM. Ответ приходит потоком: текст появляется по мере генерации и сразу отображается в AnswerArea с поддержкой Markdown и пагинацией (если ответов несколько).

4. Пауза

Нажатие «Пауза» останавливает захват аудио, но WebSocket-соединение остаётся открытым. Таймер сессии приостанавливается. Возобновление — кнопкой «Продолжить».

5. Завершение

Нажатие «Стоп» или закрытие клиента:

  1. Клиент отправляет фрейм session.end.
  2. Сервер флашит буферизованные транскрипты и список исполненных ответов в базу данных.
  3. WebSocket закрывается.
  4. В веб-кабинете сессия появляется в разделе История с полным транскриптом и аналитикой.

📸 [Скриншот: панель Whisperer в режиме записи — видны LiveTranscriptStrip и кнопки управления]

Хранение данных

По умолчанию транскрипт и ответы LLM сохраняются в базе данных и доступны в кабинете. Если включён режим no-logs, данные удаляются после завершения сессии — но потраченные минуты засчитываются.

Частые ошибки

Ошибка Причина Решение
Сессия не стартует Не подтверждён e-mail или нет активной подписки Проверьте статус аккаунта и квоту
«Не слышу собеседника» Не выдано разрешение на запись экрана (macOS) или захват системного звука (Windows) Разрешения macOS / Windows
Транскрипт не появляется Плохое интернет-соединение или потеря WebSocket Проверьте сеть; перезапустите сессию
Ответ LLM долго не приходит AI-провайдер перегружен или выбрана медленная модель Переключите модель в настройках

Лучшие практики

  • Останавливайте сессию явно кнопкой «Стоп» — это гарантирует запись данных в историю.
  • Делайте паузы на длинных паузах встречи — таймер остановится и минуты не уйдут вхолостую.
  • Используйте no-logs для конфиденциальных встреч, где важно не хранить транскрипт.

Связанные статьи