AI Streaming کی ڈیبگنگ

میں نے ایک AI چیٹ انٹرفیس بنانے میں تین ہفتے لگائے۔ میں الفاظ کا ایک ہموار بہاؤ چاہتا تھا۔ مجھے ڈیڈ کنکشنز اور ٹوٹے ہوئے جملے ملے۔

میری ایپ میں FastAPI اور React استعمال ہو رہے تھے۔ مختصر جوابات ٹھیک کام کر رہے تھے۔ طویل جوابات لفظ کے درمیان میں ہی کٹ جاتے تھے۔ سرور ڈیٹا بھیجنا بند کر دیتا تھا۔

میں نے اسے ٹھیک کرنے کی کوشش کی۔ میں نے timeout بڑھا دیا۔ اس سے کوئی فائدہ نہیں ہوا۔ میں نے ایک retry loop شامل کیا۔ اس سے الفاظ کا تکرار ہونے لگا۔

مسئلہ parser کا تھا۔ AI API ڈیٹا کی لائنیں بھیجتی ہے۔ میرا کوڈ کنکشن بہت جلدی بند کر دیتا تھا۔ یہ ختم ہونے کے سگنل کا انتظار نہیں کرتا تھا۔

یہ رہا حل:

  • aiter_lines کے بجائے aiter_bytes استعمال کریں۔
  • لائن بفر (line buffer) کو مینوئل طریقے سے مینیج کریں۔
  • رکنے کے لیے [DONE] سگنل تلاش کریں۔

پھر میرا UI فریز ہو گیا۔ سرور فی سیکنڈ 50 چنکس بھیج رہا تھا۔ React اس رفتار کا مقابلہ کرنے میں ناکام رہا۔ میں نے ڈیٹا کی رفتار کو کنٹرول (throttle) کرنے کے لیے سرور پر ایک چھوٹا سا تاخیر (delay) کا وقفہ شامل کیا۔

آپ کے لیے اسباق:

  • پہلے streaming spec پڑھیں۔
  • یہ فرض نہ کریں کہ ایک خالی لائن کا مطلب خاتمہ ہے۔
  • SSE parsing کے لیے کسی لائبریری کا استعمال کریں۔
  • چنکس کی تعداد اور تاخیر (delays) کو ٹریک کریں۔

Streams پیچیدہ ہوتے ہیں۔ ان میں عجیب و غریب مسائل ہوتے ہیں۔ کبھی بھی اس بات پر بھروسہ نہ کریں کہ ایک stream باوقار طریقے سے ختم ہو جائے گا۔

آپ کا سب سے عجیب ترین streaming bug کون سا ہے؟

ماخذ: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi