Realtime-сессия на Python: события и перебивание
Реализуйте обработку подготовленного потока событий голосовой сессии. Нужно собрать текст, вызовы инструментов и факт перебивания активного ответа. Внешнее соединение и API-ключ не требуются: правила событий, аргумент функции и формат результата приведены в условии.
Напишите решение и проверьте его на странице.
Продолжить практику: программа курса «Voice AI Agents PRO».
Обработчик событий realtime-сессии
Задание
Реализуйте функцию process_session(events), которая проходит по потоку событий realtime-сессии и собирает её результат. Аргумент events — список словарей; у каждого события есть поле type. Обрабатывать нужно пять типов:
response.created— начался ответ модели;response.done— ответ завершён;response.output_text.delta— фрагмент текста ответа в полеdelta;response.function_call_arguments.done— модель запросила инструмент, его имя в полеname;input_audio_buffer.speech_started— клиент начал говорить.
Функция должна вернуть словарь с тремя ключами:
transcript— строка: все фрагментыdeltaиз событийresponse.output_text.delta, склеенные подряд в порядке поступления;tool_calls— список имён инструментов из событийresponse.function_call_arguments.done, в порядке поступления;interrupted—True, если хотя бы одно событиеinput_audio_buffer.speech_startedпришло во время активного ответа (послеresponse.createdи до егоresponse.done), иначеFalse.
Событие input_audio_buffer.speech_started вне активного ответа — это обычное начало реплики клиента, а не перебивание, и на interrupted оно не влияет.
Примечание
Модули json и sys уже импортированы. Список событий уже разобран и передаётся в функцию аргументом — читать ввод и вызывать функцию вручную не нужно, вывод формируется автоматически тремя строками: транскрипт, имена инструментов через запятую (или -, если их нет) и yes/no для перебивания.
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- Voice AI: ошибка распознавания фамилии и этап STT
- Barge-in голосового агента: ложное прерывание на «угу»
- Голосовой агент: зачем подтверждать данные перед завершением
- Голосовой агент для пилота: код или no-code
- Задержка TTS: метрика начала голосового ответа
- Инструменты голосового агента: действия во время звонка
