До начала ответа DSLab может попробовать следующий совместимый маршрут. После первого корректного события поток уже привязан к выбранному маршруту.
До первого события#
Если маршрут отказал до выдачи данных пользователю, возможна безопасная попытка через следующий совместимый вариант.
После первого события#
После того как клиент получил часть ответа, бесшовно продолжить его другой моделью нельзя. При ошибке поток завершается событием в исходном API-диалекте.
Автоматический повтор всего запроса после частичного ответа может:
продублировать текст;
повторно вызвать инструмент;
повторно выполнить внешнее действие;
создать дополнительный расход;
вернуть другой ответ.
Как писать клиент#
имени и полного JSON аргументов.
Считайте поток последовательностью событий, а не строкой JSON.
Сохраняйте уже полученные данные отдельно от финального статуса.
Обрабатывайте событие ошибки и преждевременное закрытие соединения.
Не повторяйте автоматически запрос с побочными эффектами.
Для function calls выполняйте инструмент только после получения полного
Не предполагайте, что каждый usage-кадр содержит
choicesили текст.
Форматы потоков#
Chat Completions возвращает chunks с delta. Messages использует именованные SSE-события. Responses использует типизированные события, например deltas текста, аргументов функции и завершения ответа.
Парсер должен соответствовать endpoint, который вызывает клиент, даже если внутри был использован другой совместимый маршрут.