AI स्ट्रीमिंग को डीबग करना

मैंने एक AI चैट इंटरफ़ेस बनाने में तीन सप्ताह बिताए। मैं शब्दों का एक सहज प्रवाह चाहता था। लेकिन मुझे डेड कनेक्शन और अधूरे वाक्य मिलने लगे।

मेरा ऐप FastAPI और React का उपयोग करता था। छोटे उत्तर सही काम कर रहे थे। लंबे उत्तर शब्द के बीच में ही कट जाते थे। सर्वर डेटा भेजना बंद कर देता था।

मैंने इसे ठीक करने की कोशिश की। मैंने timeout बढ़ा दिया। इससे कोई फायदा नहीं हुआ। मैंने एक retry loop जोड़ा। इससे शब्द दोहराए जाने लगे।

समस्या parser में थी। AI API डेटा की लाइनें भेजता है। मेरा कोड कनेक्शन को बहुत जल्दी बंद कर देता था। यह end signal का इंतज़ार नहीं करता था।

यहाँ इसका समाधान है:

  • aiter_lines के बजाय aiter_bytes का उपयोग करें।
  • line buffer को मैन्युअल रूप से मैनेज करें।
  • रुकने के लिए [DONE] signal की तलाश करें।

फिर मेरा UI फ्रीज हो गया। सर्वर प्रति सेकंड 50 chunks भेज रहा था। React उसका साथ नहीं दे पा रहा था। मैंने डेटा को throttle करने के लिए सर्वर पर एक छोटा सा delay जोड़ दिया।

आपके लिए सबक:

  • सबसे पहले streaming spec पढ़ें।
  • यह न मानें कि एक खाली लाइन का मतलब अंत है।
  • SSE parsing के लिए किसी library का उपयोग करें।
  • chunk counts और delays को ट्रैक करें।

Streams काफी पेचीदा होते हैं। इनमें कई खामियां होती हैं। कभी भी इस भरोसे न रहें कि एक stream सुचारू रूप से समाप्त होगी।

आपका सबसे अजीब streaming bug कौन सा है?

स्रोत: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi