ניפוי שגיאות ב-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