Відлагодження AI-стрімінгу: чанки та таймаути
Я створив інтерфейс для AI-чату. Я хотів, щоб відповіді з'являлися по одному слову. Це не спрацювало. Відповіді обривалися посеред слова.
Я збільшив таймаут. Це не допомогло. Я спробував цикли повторних спроб. Це призвело до дублювання слів. Я спробував буферизацію. Це сповільнило додаток.
Причиною була помилка парсингу. API надсилає рядки JSON-LD. Мій код зупинявся до того, як стрім завершувався. Він ігнорував сигнал завершення.
Рішення:
- Використовувати байти замість рядків.
- Керувати буфером вручну.
- Шукати сигнал [DONE].
- Тримати з'єднання відкритим.
Потім завис фронтенд. React оновлювався занадто швидко. Я обмежив швидкість сервера (throttling), щоб це виправити.
Поради для вас:
- Вивчайте специфікацію стрімінгу.
- Шукайте явну подію завершення.
- Використовуйте бібліотеки SSE.
- Відстежуйте свої дані.
Ніколи не покладайтеся на те, що стрім завершиться коректно.
Який ваш найдивніший баг зі стрімінгом?
Джерело: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m