← Назад к кейсу
Пайплайн архитектуры

−35% нагрузки на колл-центр благодаря голосовому ассистенту по кредитам

Индустрия: Финтех (потребительское кредитование, приём заявок по телефону)
Область работ: Голосовой ассистент с низкой задержкой речь-в-речь, обрабатывающий первичные звонки по заявкам на кредит, с эскалацией сложных случаев или случаев с кредитным решением живому кредитному специалисту
Realtime APITwilioFunction callingPostgres
−35% нагрузка на колл-центр · 12 000 звонков/неделю автоматизировано · 2м 10с среднее время обработки
Такая глубина анализа стоит за каждым нашим проектом. Мы публикуем её как подтверждение того, как мы на самом деле работаем — реальные варианты, которые мы взвешивали, цифры, которые их отсеяли, архитектура, пережившая столкновение с живой телефонной линией — чтобы процесс был для клиентов таким же прозрачным, как и результат. Голос — это другой вид «высекания из камня», чем чат-интерфейс: клиент не видит индикатор набора текста и не может прокрутить назад, чтобы перечитать, так что каждое решение по задержке и передаче звонка ниже должно было пережить столкновение с реальным телефонным звонком, а не с демо.

Бриф

У клиента был колл-центр кредитной организации, обрабатывающий первичные звонки по заявкам на кредит — «какая у меня ставка», «где моя заявка», «могу ли я претендовать на X». Объём звонков рос быстрее, чем штат, и один и тот же небольшой набор вопросов съедал большую часть рабочего дня оператора ещё до того, как он добирался до звонков, которые реально требовали человека: суждения по пограничным заявкам, обсуждение условий, работа со спорами.

Запрос звучал не как «замените колл-центр ботом». Он звучал так: обрабатывать высокообъёмные, низкосложные первичные звонки от начала до конца по телефону и передавать всё, что касается реального кредитного решения, человеку — без того, чтобы звонящему пришлось повторять себя. Это требование передачи было не менее важным, чем сама автоматизация: голосовой ассистент, который экономит время на 80% звонков, но ухудшает оставшиеся 20%, заставляя клиента начинать заново, — это чистый минус, а не плюс.

Второе ограничение, непереговариваемое с самого первого дня: это регулируемый процесс кредитования. Решение по кредиту должно быть объяснимо заявителю и восстанавливаемо для регулятора, и это требование определило архитектуру эскалации больше, чем любая цифра задержки.

Нефункциональные требования, которые реально сформировали стек

ТребованиеПочему это важноКакое решение оно определило
Задержка ответа должна ощущаться как разговор, а не как автоответчик с менюУ человеческого чередования реплик естественный ритм, измеряемый парой сотен миллисекунд; голосовой ассистент, который делает паузу в секунды, ощущается сломанным, а не вдумчивымАрхитектура речевого пайплайна (§1)
Ассистент должен работать по тому же номеру телефона, по которому клиенты уже звонят, без нового приложения или каналаПринуждение к смене канала убивает саму цель снижения нагрузки на колл-центр — звонки всё равно должны приходить как звонкиТелефонная интеграция (§2)
Обращения к бэкенду (статус заявки, данные аккаунта) должны происходить прямо в разговоре без мёртвой тишиныВесь смысл запроса был в более быстрых звонках, а не в роботизированном «пожалуйста, подождите, я проверю»Function calling в реальном времени (§3)
Любой случай, касающийся реального кредитного решения, должен передаваться живому человеку с полным контекстом, а не холодным переводомЭто конкретный сценарий отказа, с которым нас наняли бороться — клиент, повторяющий всю историю второму человеку, хуже, чем медленный звонок только с человекомЭскалация и передача (§4)
Каждому звонку нужно записанное согласие на запись и стенограмма, доступная для запроса и AI, и человеческому персоналу во время и после звонкаРегулируемое кредитование требует восстанавливаемых записей, а живая передача требует, чтобы человек видел контекст за секунды, а не минутыСлой данных и сессии (§5)
Окно разработки — 8 недель до следующего сезонного всплеска заявок клиентаОтсекает всё, что требует поднимать новые категории инфраструктуры с нуляВсе решения выше
§1

Архитектура речевого пайплайна — каскадный STT→LLM→TTS vs. нативный речь-в-речь

Эскизы
  • Каскадный пайплайн: раздельные вызовы speech-to-text, LLM и text-to-speech, соединённые цепочкой — традиционный способ строить голосового бота, комбинируя компоненты по вкусу.
  • Self-hosted открытая модель речь-в-речь — полный контроль над инфраструктурой, без оплаты за вызов API.
  • Realtime API от OpenAI — единая нативная сессия речь-в-речь по WebSocket/WebRTC, без отдельного шага транскрипции или синтеза.

Почему накопление задержки в каскадном пайплайне было основной проблемой: собственный анонс GPT-4o от OpenAI в мае 2024 даёт напрямую релевантное сравнение «до/после» из их собственного продукта: их прежний каскадный голосовой режим в ChatGPT — три отдельные модели, соединённые для транскрипции, генерации текста и синтеза речи — давал в среднем 2.8 секунды задержки на GPT-3.5 и 5.4 секунды на GPT-4, против нативного аудио-ответа GPT-4o, отвечающего всего за 232мс и в среднем за 320мс, что OpenAI описывает как сопоставимое со временем реакции человека в разговоре. Это сравнение OpenAI собственных старого и нового продуктов, а не независимый бенчмарк, но архитектурная причина разрыва — релевантный факт: каскадный пайплайн платит задержку трёх последовательных сетевых вызовов, тогда как нативная сессия речь-в-речь платит задержку одного. Независимые инженерные материалы из блогов самих Twilio и Telnyx по задержке голосового AI помещают хорошо оптимизированный каскадный стек в диапазон 600мс-1.7с сквозной задержки — всё ещё измеримо медленнее нативного речь-в-речь, и с большим числом движущихся частей, которые нужно держать быстрыми.

Почему именно обработка прерываний, а не только сырая задержка, была решающим фактором: звонящий, поправляющий себя посреди фразы, — совершенно обычное поведение на телефонном звонке. Каскадный пайплайн обычно должен доиграть текущий вывод TTS до конца (или надстроить отдельный слой детекции прерываний), прежде чем сможет обработать новый ввод; Realtime API от OpenAI, запущенный в публичной бете 1 октября 2024 года, нативно обрабатывает barge-in как часть той же сессии речь-в-речь — то же поведение обработки прерываний, что и в Advanced Voice Mode ChatGPT. Мы отмечаем границу собственной уверенности здесь: мы не смогли подтвердить независимо опубликованную цифру задержки конкретно для эндпоинта Realtime API — честное утверждение в том, что он наследует ту же архитектуру речь-в-речь, а не то, что мы цитируем официальную цифру именно для Realtime API.

Почему не self-hosted открытая модель речь-в-речь: это тот же компромисс build-vs-buy, который мы бы применили к любой критичной по задержке, регулируемой нагрузке в сжатые сроки: владение GPU-инференсом, обновлениями модели и поведением обработки прерываний самостоятельно — это реальное инфраструктурное обязательство, и на окне разработки в 8 недель без выделенной speech-ML функции на этом проекте это обязательство не окупается против управляемого API с уже решённой обработкой прерываний. Мы бы пересмотрели это, если бы объём звонков вырос настолько, что стоимость API за минуту перевесила бы инфраструктурные и операционные расходы на self-hosting.

Финальный выбор

Realtime API от OpenAI, единая нативная сессия речь-в-речь вместо цепочки — архитектурный выбор, который предполагает всё остальное в этом документе.

§2

Телефонная интеграция — Twilio vs. альтернативные провайдеры

Эскизы
  • Amazon Connect — платформа, нативная для контакт-центров, со своим встроенным агент-десктопом и инструментами маршрутизации.
  • Vonage — сопоставимая CPaaS-платформа голоса/сообщений.
  • Twilio, конкретно его возможность Media Streams — двунаправленное аудио по WebSocket, соединяющее PSTN-звонки напрямую с сессией real-time API.

Почему двунаправленная поддержка Media Streams была конкретным техническим соответствием: собственная документация Twilio различает `<Start><Stream>`, который стримит аудио звонка только наружу в ваше приложение, и `<Connect><Stream>`, который двунаправленный — аудио идёт в оба направления по тому же WebSocket. Именно этот двунаправленный путь позволяет сырому аудио звонка течь напрямую в сессию Realtime API и обратно без дополнительного слоя трансляции или буферизации между ними, что напрямую важно из-за архитектуры, выбранной в §1: нативная сессия речь-в-речь быстра ровно настолько, насколько быстр аудиоканал, её питающий.

Почему операционная зрелость Twilio была важна на регулируемой, клиентской телефонной линии: собственный опубликованный SLA Twilio обязывает к 99.95% аптайма по стандарту, с 99.99% на Enterprise/Admin Edition. Независимое аналитическое исследование Metrigy CPaaS Market Share & Forecast (3Q24) оценивало долю выручки Twilio на CPaaS-рынке примерно в 23.2% в 2023 году, растущую примерно до 25.9% к Q3 2024 — крупнейший игрок в категории по этому измерению, что мы цитируем как независимое рыночное исследование третьей стороны, а не собственный маркетинг Twilio. Для телефонной линии, по которой клиенты уже звонят кредитору, ставка на платформу с самым глубоким операционным послужным списком была разумным дефолтом против ставки регулируемого клиентского канала на менее проверенный путь интеграции.

Цены, и честный пробел в том, что мы смогли проверить: официальная страница цен Twilio для США указывает исходящий голос примерно по $0.013/минута для базового голосового продукта. Цифры AI-специфичного ценообразования за минуту (часто упоминаемые на уровне около $0.07/минута во вторичных агрегаторах) — это то, что мы не смогли подтвердить напрямую по странице цен Twilio, и цены в любом случае сильно зависят от направления и страны — мы отмечаем это как цифру для перепроверки на этапе разработки, а не как то, что можно точно процитировать клиенту сегодня. Мы также не нашли прямого сравнения задержки или надёжности «яблоки к яблокам» с Amazon Connect или Vonage именно для этого случая и не хотим его выдумывать — честная версия этого решения в том, что двунаправленная поддержка WebSocket в Media Streams была самым прямым путём интеграции к уже выбранной в §1 архитектуре, в сочетании с рыночно-лидирующей зрелостью Twilio и контрактным SLA, и этой комбинации было достаточно, чтобы быть уверенными в выборе без этого сравнения.

Финальный выбор

Twilio, используя двунаправленное аудио Media Streams, соединяющее PSTN-звонок напрямую с сессией Realtime API по WebSocket.

§3

Function calling в условиях реального времени и естественного чередования реплик

Эскизы
  • Стандартный асинхронный паттерн вызова инструментов, та же форма, что используется в текстовых чат-агентах — вызвать функцию, дождаться результата, продолжить ответ.
  • Предзагрузить всё, что ассистенту может понадобиться, до начала звонка — полностью избежать обращений в середине разговора.
  • Function calling на уровне сессии внутри живого голосового хода, с моделью, способной вызвать инструмент прямо посреди ответа и продолжить говорить, как только результат вернётся, на основе узко ограниченных, индексированных запросов к Postgres.

Почему стандартный бюджет задержки tool calling из текстового чата не переносится на голос: текстовый чат-интерфейс может терпеть многосекундную паузу для вызова инструмента, потому что есть видимый индикатор «думает» или набора текста и нет ожидания живого аудио, которое можно нарушить. У телефонного звонка нет эквивалентного удобства — тишина в живом звонке читается как «звонок оборвался» почти мгновенно. Исследование Stivers et al. 2009 года в PNAS про чередование реплик в разговоре, измерившее паузы ответа на десяти языках, обнаружило средний кросс-языковой офсет ответа примерно в 208 миллисекунд, при этом средние значения по отдельным языкам группировались в пределах примерно 250мс от этой цифры. Мы намеренно цитируем это как исследование человеческого разговора, а не исследование голосовых AI-ассистентов — то, что «держать вызовы функций достаточно быстрыми, чтобы явно не ломать естественное чередование реплик» — это наш собственный инженерный вывод из этого исследования, а не заключение самой статьи.

Почему предзагрузка всего заранее не решает проблему на самом деле: информация, которая нужна звонящему, неизвестна до того, как он идентифицирует себя в середине звонка, так что предзагружать до начала разговора попросту нечего значимого — обращение должно происходить вживую, внутри звонка, что как раз и есть тот случай, который должен покрывать бюджет задержки выше.

Почему именно function calling на уровне сессии оказался подходящим: документация Realtime API от OpenAI описывает инструменты, настраиваемые на уровне сессии или на уровне отдельного ответа, с моделью, способной сигнализировать вызов функции посреди генерации ответа и включить результат в продолжающийся аудио-ответ, вместо того чтобы вызов блокировал весь ход целиком. Практическое следствие для нашей стороны интеграции: запросы к Postgres, лежащие в основе этих функций, должны были быть простыми, индексированными точечными запросами — а не открытыми отчётными запросами. Бюджет задержки здесь задаётся нормами разговора, а не тем, что технически может выдержать база данных на нижней границе.

Финальный выбор

Function calling на уровне сессии к узко ограниченным, индексированным запросам Postgres, с бюджетом задержки вызова инструмента, рассматриваемым как требование качества разговора, а не просто как техническая цель производительности.

§4

Эскалация к живому кредитному специалисту — живая тёплая передача vs. альтернативы

Эскизы
  • Дать ассистенту самому принимать реальное кредитное решение — самый быстрый и дешёвый вариант, инфраструктура передачи вообще не нужна.
  • Асинхронная передача: ассистент собирает информацию, завершает звонок и направляет сводку человеку, который перезвонит заявителю позже.
  • Живая тёплая передача: ассистент распознаёт посреди звонка, что случаю нужен человек, и переводит живой звонок с уже загруженным полным контекстом, так что живой кредитный специалист подключается к тому же звонку, а не начинает новый.

Почему предоставление ассистенту права самому принимать реальное кредитное решение не рассматривалось — как вопрос регулирования, а не осторожности: Equal Credit Opportunity Act и его исполняющее Regulation B (12 CFR § 1002.9) требуют, чтобы кредитор выдал уведомление о неблагоприятном решении в течение 30 дней после отказа в кредите, указав конкретные основные причины, реально отражающие факторы, на которых было основано решение. Собственный циркуляр CFPB 2022-03, опубликованный в сентябре 2022 года, прямо заявляет, что это обязательство применяется к решениям, принятым с использованием сложных алгоритмов, и что кредитор не может использовать сложность самого алгоритма как оправдание непредоставления конкретных, точных причин. Это регуляторное ограничение архитектуры, а не суждение о толерантности к риску — всё, что могло бы представлять собой неблагоприятное решение, нуждается в прослеживаемом, объяснимом человеком пути рассуждения, что исключает модель как финального принимающего решение.

Почему асинхронная передача подрывает сам смысл проекта: асинхронная передача означает, что звонящий вешает трубку, не зная своего статуса, а перезвон позже теряет контекст и импульс, которые изначально делали звонок эффективным — заявитель часто оказывается вынужден заново объяснять детали, которые уже дал ассистенту. Это не снижает время обработки, а откладывает его и добавляет второй звонок, что работает прямо против причины существования проекта.

Почему именно живая тёплая передача оказалась подходящей — и что она потребовала в остальной части архитектуры: распознавание посреди звонка, что случаю нужен человек, с последующей передачей живого звонка с уже загруженными на экране принимающего специалиста стенограммой и структурированными данными заявки, означает, что клиенту никогда не придётся повторять информацию, уже данную AI. Требование, которое это напрямую диктует: слою данных (§5) нужно сделать полный контекст звонка доступным для консоли человеческого специалиста примерно в то же окно времени, которое требуется телефонной системе для завершения перевода — а не пакетный экспорт, который догоняет через несколько минут.

Финальный выбор

Живая тёплая передача, срабатывающая автоматически, как только разговор заходит на территорию, которая могла бы представлять собой неблагоприятное решение, с консолью человеческого кредитного специалиста, предзагруженной стенограммой и структурированными данными к моменту подключения звонка.

§5

Слой данных и сессии — Postgres как общая система записи

Эскизы
  • Состояние сессии только в памяти, ограниченное собственным процессом голосового ассистента на время звонка, со сводкой, логируемой после.
  • Выделенное хранилище аналитики/логов, отдельное от существующей у клиента системы происхождения кредита, специально построенное под стенограммы и метаданные звонков.
  • Postgres, общий между голосовым ассистентом и существующей у клиента системой происхождения кредита, выступающий системой записи и для живого состояния сессии, и для устойчивых стенограмм и записей согласия.

Почему состояние сессии только в памяти отказывает ровно в тот момент, когда это важнее всего: оно не переживает то самое событие, вокруг которого построена вся архитектура — живую тёплую передачу из §4. Если состояние сессии живёт только внутри собственного процесса голосового ассистента, а консоль человеческого агента читает из отдельной системы, «стенограмма уже загружена к моменту подключения звонка» превращается в гонку с тем, сколько времени требуется на сброс, пакетирование или синхронизацию данных между двумя системами — заново вводя ровно тот риск устаревания данных, ради устранения которого этот компонент и существует.

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

Требование комплаенса, которое конкретно это сформировало: Telephone Consumer Protection Act требует раскрытого согласия перед записью звонка, а в двенадцати штатах США с правилами согласия всех сторон — деталь, которую мы отмечаем как требующую юридического подтверждения для конкретного региона обзвона клиента, а не как общее правило, которое мы считаем решённым повсеместно. Эта запись согласия вместе с полной стенограммой должна храниться устойчиво и быть доступной для запроса на протяжении всего срока хранения, требуемого комплаенсом.

Финальный выбор

Postgres, общий с существующей системой происхождения кредита, как система записи для живого состояния сессии, используемого во время тёплых передач, и для устойчивых стенограмм и записей согласия, используемых для комплаенс-хранения — не параллельное, отсоединённое хранилище данных.

Финальная архитектура

Звонящий
Звонящий (телефонная линия, PSTN)
Twilio
Media Streams
двунаправленное аудио по WebSocket
Сессия Realtime API
Нативный речь-в-речь · barge-in
Function calling на уровне сессии
Postgres
Поиск заявки · состояние сессии
Стенограмма и запись согласия
общая с системой происхождения кредита
маршрутизация
Автоматически обработанный звонок
статус · базовая инфо → звонок завершается
Эскалация — случай, близкий к неблагоприятному решению
живая тёплая передача
Консоль кредитного специалиста
стенограмма + данные предзагружены

Как цифры связаны с решениями

Обе опубликованные цифры — следствие решений выше, но ограничены одним из них в частности:

  • −35% нагрузка на колл-центр — результат §1 вплоть до §4 вместе, но потолок этой цифры задаётся §4: полностью автоматизировать можно только звонки, не касающиеся реального кредитного решения, так что доля автоматизации ограничена тем, насколько объём звонков реально является первичным в сравнении с близким к неблагоприятному решению. Эта цифра укладывается в диапазон, о котором сообщило заказанное Google Cloud исследование Forrester для Google Cloud CCAI (20-35% отклонения звонков), и близка к опубликованному кейсу PolyAI с UniCredit (27-30% звонков автоматизировано) — ближе к верхней границе достоверного, опубликованного вендорами диапазона, а не аномалия.
  • 12 000 звонков/неделю автоматизировано и 2м 10с среднее время обработки — следствие конкретно §1 и §3: нативный речь-в-речь держит задержку на звонок достаточно низкой, чтобы автоматизированные звонки завершались в темпе, близком к естественному разговорному, а узко ограниченные, быстрые вызовы функций не дают моментам «дайте я проверю» растягивать звонок. Эти две цифры — операционные метрики, специфичные для проекта, а не цифры с внешним отраслевым бенчмарком для сверки — это ожидаемо.

Нам неизвестна опубликованная сторонняя цифра «среднее время обработки для автоматизированного звонка о статусе кредита» для сравнения, и мы не подразумеваем, что она существует — эти две цифры стоят сами по себе как результаты, специфичные для проекта.

Где эта архитектура перестаёт быть правильной

Стоит сказать прямо, потому что ни одна архитектура не вечна:

Объём звонков вырастает настолько, что паттерн чтения Postgres для живых обращений к сессии становится узким местомПересмотреть слой данных из §5, вероятно в сторону слоя кеширования перед Postgres, а не замены его как системы записи
Задержка конкретного вызова функции превышает бюджет разговорной задержки из §3Эта конкретная интеграция нуждается в предзагрузке или кешировании, а не в полном переосмыслении паттерна function calling
Регуляторные указания по AI-ассистированным кредитным решениям ужесточаются дальшеТриггер тёплой передачи из §4 нужно сдвинуть раньше и консервативнее — это порог для настройки, а не архитектура для перестройки
Ценообразование или профиль надёжности Twilio существенно меняются при растущем объёме звонков клиентаПересмотреть §2; требование двунаправленного стриминга из §1 всё равно нужно будет удовлетворить тем, что придёт на замену
Клиенту нужна многоязычная поддержкаЭта сборка не оценивала покрытие языков и голосов Realtime API против этого требования, и это потребовало бы отдельного обзора

Ни один из этих пунктов не является провалом исходного решения — это условия, при которых тот же самый процесс рассуждения, запущенный заново, дал бы другой ответ.

Источники и уровень доверия

Нативное аудио GPT-4o: всего 232мс, в среднем 320мс, сопоставимо со временем реакции человека в разговоре
OpenAI, «Hello GPT-4o», 13 мая 2024Высокий — первичный источник, официальный анонс
Прежний каскадный голосовой режим ChatGPT: 2.8с (GPT-3.5) / 5.4с (GPT-4) средняя задержка
OpenAI, тот же анонсВысокий как первичная цифра, но это собственное сравнение OpenAI с их прежним продуктом, не независимый бенчмарк
Realtime API (публичная бета, 1 окт. 2024) наследует нативную архитектуру речь-в-речь GPT-4o и обработку barge-in
OpenAI, «Introducing the Realtime API»Средний — официальный анонс, но мы не смогли независимо подтвердить цифру задержки конкретно для Realtime API, отдельную от цифр GPT-4o из анонса мая 2024
Хорошо оптимизированные каскадные голосовые пайплайны: ~600мс-1.7с сквозной задержки в зависимости от стека
Инженерные блоги Twilio и Telnyx по задержке voice AIСредний — вендорские инженерные блоги, не контролируемое независимое исследование, но направленно согласованы между обоими источниками
Человеческое чередование реплик: ~208мс средний кросс-языковой офсет ответа (10 языков)
Stivers et al., PNAS 106(26), 2009Высокий как цитата самого исследования — но применение этого как цели задержки для голосового AI-ассистента — наш собственный инженерный вывод, а не заключение статьи
Twilio Media Streams: `<Connect><Stream>` — двунаправленное аудио по WebSocket
Официальная документация TwilioВысокий — первичный источник
SLA Twilio: 99.95% стандартный аптайм, 99.99% на Enterprise/Admin Edition
Twilio, официальное Service Level AgreementВысокий — первичный, контрактный источник
Доля рынка CPaaS у Twilio: ~23.2% (2023), растёт до ~25.9% (Q3 2024)
Metrigy, CPaaS Market Share & Forecast 3Q24Средний — независимая аналитическая оценка, не собственный маркетинг Twilio, но модель третьей стороны, а не аудированный факт
Цена исходящего голоса Twilio в США: ~$0.013/минута (базовый голос, не AI-специфично)
Официальная страница цен TwilioВысокий для базовой цифры — AI-специфичное ценообразование взято из вторичных агрегаторов, которые мы не смогли проверить напрямую, и его стоит перепроверить на этапе разработки
ECOA/Regulation B (12 CFR § 1002.9): уведомления о неблагоприятном решении требуют конкретных, точных основных причин, включая для алгоритмических решений
CFPB Circular 2022-03, сентябрь 2022Высокий — первичный источник, официальное руководство регулятора
TCPA требует раскрытого согласия на запись; в 12 штатах США действуют правила согласия всех сторон
Вторичные юридические агрегаторы комплаенсаСредний — не взято напрямую из текста статута; отмечено как требующее юридического подтверждения для конкретного региона обзвона клиента
Google Cloud CCAI: 20-35% отклонения звонков (исследование Forrester Consulting, заказанное Google Cloud, авг. 2020)
Forrester / Google CloudСредний — исследование, заказанное вендором, подача лучшего случая, не независимый аудит
Кейс PolyAI / UniCredit: ~27-30% звонков автоматизировано, +14% NPS
Опубликованный кейс-стади PolyAIСредний — реальный именованный клиентский кейс, но собственный лучший пример вендора, не типичное среднее
Realtime API от OpenAI: вызовы функций могут срабатывать посреди ответа, с результатом, включаемым в продолжающийся аудио-ответ
Официальная документация Realtime API от OpenAIВысокий — первичный источник, задокументированное поведение

Мы публикуем эту таблицу доверия намеренно. Клиенту полезнее знать, какие цифры пришли прямо из первоисточника, а какие мы бы перепроверили — особенно юридические и комплаенс-заявления здесь, которые заслуживают подписи юриста для конкретного региона обзвона клиента, а не только нашего собственного прочтения вторичных резюме, — чем получить документ, который выглядит чисто только потому, что неопределённость из него тихо вычистили.