Потоковые ответы API и безопасные повторы
Потоковый ответ передаёт результат генерации частями. Он подходит для интерфейсов, которым нужно показывать ответ по мере появления текста. В SimpleRouter поддержка потокового режима зависит от профиля модели: сначала проверьте протокол и возможности на её странице.
Как начать работу с потоком
Используйте ключ, закреплённый за выбранной моделью, и правильный endpoint для её протокола. Для совместимого Chat Completions-профиля поток запрашивается параметром stream: true. Форматы событий других протоколов могут отличаться; универсально разбирать любой поток как Chat Completions нельзя.
- Проверьте опубликованный профиль модели и установите ограничение длины ответа.
- Отправьте запрос с сервера приложения, сохранив идентификатор запроса для последующей проверки.
- Обрабатывайте события по выбранному протоколу, отдельно от сетевых чанков.
- После завершения проверьте статус и фактический расход в истории.
Почему сетевой чанк не равен событию
Граница чтения из сети может оказаться внутри JSON, строки UTF-8 или разделителя события. Парсер должен накапливать неполные данные, корректно декодировать текст и обрабатывать несколько событий в одном чтении. Для поддерживаемого протокола предпочтительнее проверенный потоковый клиент.
Не считайте каждый фрагмент текста отдельным токеном для выставления стоимости. Сетевые части, события и токены — разные единицы. Используйте учтённый usage и итоговую запись сервиса; предварительный счётчик в интерфейсе не заменяет денежный расчёт.
Что делать при остановке или обрыве
Закрытие вкладки или отмена клиентского чтения не доказывает, что обработка запроса уже остановилась. Часть генерации могла быть выполнена. Сохраните ID и проверьте состояние в истории запросов; при незавершённой сверке итоговый расход может появиться позже.
Не запускайте автоматический повтор только потому, что клиент получил тайм-аут. Повтор может создать ещё одну платную генерацию. Сначала установите результат исходного запроса. Если его нельзя определить по истории, передайте ID обращения в поддержку через кабинет.
Что показывать пользователю приложения
Разделяйте состояния «получаем ответ», «ответ завершён» и «результат проверяется». Если поток оборвался, уже полученный текст можно сохранить как частичный ответ, но не обозначать его успешным завершением. Сообщение о расходе обновляйте после итоговой записи сервиса.
Для интеграционной проверки начните с короткого ответа и небольшого бюджета ключа. Отдельно проверьте обычное завершение, отмену чтения и сетевой обрыв. Эти сценарии помогают проверить интерфейс без большого расхода и без предположений о результате.
Инструкции для разработчиков
API-ключи моделей и лимиты расходов
Как создать API-ключ SimpleRouter для одной модели, задать лимит, отслеживать расходы и заменить секрет без потери истории.
Как считаются токены, стоимость и резервы
Расчёт стоимости API в USD: входные и выходные токены, цена за 1M токенов, резерв до запроса и итоговое списание в SimpleRouter.
Потоковые ответы API и безопасные повторы
Как подключить потоковый ответ модели, обработать завершение или обрыв соединения и проверить результат платного запроса в SimpleRouter.