ניפוי שגיאות ב-AI Streaming: Chunks ו-Timeouts

בניתי ממשק צ'אט AI. רציתי תגובות מילה-אחר-מילה. זה נכשל. התגובות נקטעו באמצע מילה.

הגדלתי את ה-timeout. זה לא עבד. ניסיתי לולאות retry. זה גרם למילים כפולות. ניסיתי buffering. זה הפך את האפליקציה לאיטית.

הסיבה הייתה שגיאת parsing. ה-API שולח שורות JSON-LD. הקוד שלי נעצר לפני שהסטרימינג הסתיים. הוא התעלם מאות הסיום.

הפתרון:

  • שימוש ב-bytes במקום בשורות.
  • ניהול ה-buffer באופן ידני.
  • חיפוש אחר הסימן [DONE].
  • שמירה על החיבור פתוח.

ואז ה-frontend קפא. React התעדכן מהר מדי. ביצעתי throttling לשרת כדי לתקן זאת.

טיפים בשבילכם:

  • קראו את ה-streaming spec.
  • מצאו את אירוע הסיום המפורש.
  • השתמשו בספריות SSE.
  • עקבו אחר הנתונים שלכם.

לעולם אל תסמכו על כך שסטרימינג יסתיים בצורה מסודרת.

מה באג הסטרימינג הכי מוזר שלכם?

Source: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m