𝗔𝗜 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗸𝗼 𝗗𝗲𝗯𝘂𝗴𝗴𝗶𝗻𝗴: 𝗖𝗵𝘂𝗻𝗸𝘀 𝗮𝗻𝗱 𝗧𝗶𝗺𝗲𝗼𝘂𝘁𝘀
मैंने एक AI चैट इंटरफ़ेस बनाया। मैं शब्द-दर-शब्द (word-by-word) रिस्पॉन्स चाहता था। यह विफल रहा। रिस्पॉन्स शब्द के बीच में ही कट रहे थे।
मैंने टाइमआउट बढ़ा दिया। इससे कोई फायदा नहीं हुआ। मैंने रिट्राय लूप्स (retry loops) आज़माए। इससे शब्द दोहराए जाने लगे। मैंने बफरिंग (buffering) की कोशिश की। इससे ऐप धीमा हो गया।
इसका कारण एक पार्सिंग एरर (parsing error) था। API JSON-LD लाइन्स भेजता है। मेरा कोड स्ट्रीम खत्म होने से पहले ही रुक गया। इसने एंड सिग्नल (end signal) को नज़रअंदाज़ कर दिया।
समाधान:
- लाइन्स के बजाय बाइट्स (bytes) का उपयोग करें।
- बफर को मैन्युअल रूप से मैनेज करें।
- [DONE] सिग्नल को खोजें।
- कनेक्शन को खुला रखें।
फिर फ्रंटएंड फ्रीज़ हो गया। React बहुत तेज़ी से अपडेट हो रहा था। इसे ठीक करने के लिए मैंने सर्वर को थ्रॉटल (throttle) किया।
आपके लिए कुछ टिप्स:
- स्ट्रीमिंग स्पेसिफिकेशन (spec) को पढ़ें।
- स्पष्ट एंड इवेंट (end event) को खोजें।
- SSE लाइब्ररीज़ का उपयोग करें।
- अपने डेटा को ट्रैक करें।
कभी भी यह भरोसा न करें कि स्ट्रीम अपने आप सुचारू रूप से (gracefully) समाप्त हो जाएगी।
आपका सबसे अजीब स्ट्रीमिंग बग (bug) कौन सा है?
स्रोत: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m