AI स्ट्रीमिंग डीबग करणे
मी एक AI चॅट इंटरफेस तयार करण्यासाठी तीन आठवडे खर्च केले. मला शब्दांचा एक अखंड प्रवाह हवा होता. पण मला डेड कनेक्शन्स आणि तुटलेली वाक्ये मिळाली.
माझे ॲप FastAPI आणि React वापरत होते. लहान उत्तरे व्यवस्थित येत होती. मोठी उत्तरे शब्दाच्या मध्येच कापली जात होती. सर्व्हर डेटा पाठवणे थांबवत होता.
मी ते सुधारण्याचा प्रयत्न केला. मी 'timeout' वाढवला, पण त्याचा काही उपयोग झाला नाही. मी 'retry loop' जोडला, ज्यामुळे शब्दांची पुनरावृत्ती होऊ लागली.
समस्या 'parser' मध्ये होती. AI API डेटाच्या ओळी पाठवते. माझा कोड कनेक्शन खूप लवकर बंद करत होता. तो 'end signal' ची वाट पाहत नव्हता.
हे आहे त्याचे निराकरण:
aiter_linesऐवजीaiter_bytesवापरा.- 'line buffer' मॅन्युअली मॅनेज करा.
- थांबण्यासाठी [DONE] सिग्नल शोधा.
त्यानंतर माझे UI फ्रीझ झाले. सर्व्हर प्रति सेकंद ५० chunks पाठवत होता. React त्याचा वेग सांभाळू शकले नाही. डेटाचा वेग नियंत्रित (throttle) करण्यासाठी मी सर्व्हरवर थोडा विलंब (delay) जोडला.
तुमच्यासाठी काही धडे:
- प्रथम स्ट्रीमिंग स्पेसिफिकेशन (spec) वाचा.
- रिकामी ओळ म्हणजे शेवट आहे असे समजू नका.
- SSE पार्सिंगसाठी लायब्ररी वापरा.
- 'chunk' संख्या आणि विलंब (delays) ट्रॅक करा.
स्ट्रीमिंग गोंधळलेले असते. त्यात अनेक बारकावे असतात. स्ट्रीमिंग व्यवस्थितपणे संपेलच, असा कधीही विश्वास ठेवू नका.
तुमचा सर्वात विचित्र स्ट्रीमिंग बग कोणता आहे?
स्रोत: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m पर्यायी लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi