- Порезанный
- 18 июля 2026 г. в 21:41 UTC
- Автор
- Kamo
- Обещать
- 8a9a63b
Каждое успешное завершение чата возвращалось как пузырь помощника. The Помощники строк были сохранены с помощью content len=0 и is error=false. Отлаживать было не от чего — клиенты добросовестно ничего не делали. Причина: стриминговые адаптеры отфильтрованы на буквальных «данных:» приставке ('filter(line -> line.startsWith("data:"))'). WebClient декодирует текст/поток событий сами по себе, так что куски приходят с префиксом ALREADY Striped — каждый токен был Отфильтрованный, Flux закончился пустым, и doOnComplete сохранился. Только Успешный ответ, поэтому HuggingFace (который всегда) не удалось с моделью not supported и всплыла его ошибка) выглядела иначе OpenAiCompatible Адаптер / HuggingFaceAdapter: прием кусков SSE с ИЛИ без "Данные:" префикс вместо того, чтобы требовать его. ChatOrchestrationService: поток, завершающий с нулевыми токенами, является отказом, а не Ответ — регистрируйте провайдера/модель и сохраняйте явную ошибку (is error=true) Таким образом, он виден вместо безмолвного пустого пузыря.