Відлагодження AI-стрімінгу: чанки та таймаути

Я створив інтерфейс для AI-чату. Я хотів, щоб відповіді з'являлися по одному слову. Це не спрацювало. Відповіді обривалися посеред слова.

Я збільшив таймаут. Це не допомогло. Я спробував цикли повторних спроб. Це призвело до дублювання слів. Я спробував буферизацію. Це сповільнило додаток.

Причиною була помилка парсингу. API надсилає рядки JSON-LD. Мій код зупинявся до того, як стрім завершувався. Він ігнорував сигнал завершення.

Рішення:

  • Використовувати байти замість рядків.
  • Керувати буфером вручну.
  • Шукати сигнал [DONE].
  • Тримати з'єднання відкритим.

Потім завис фронтенд. React оновлювався занадто швидко. Я обмежив швидкість сервера (throttling), щоб це виправити.

Поради для вас:

  • Вивчайте специфікацію стрімінгу.
  • Шукайте явну подію завершення.
  • Використовуйте бібліотеки SSE.
  • Відстежуйте свої дані.

Ніколи не покладайтеся на те, що стрім завершиться коректно.

Який ваш найдивніший баг зі стрімінгом?

Джерело: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m