𝗗𝗲𝗯𝘂𝗴𝗴𝗶𝗻𝗴 𝗔𝗜 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴

મેં AI ચેટ ઇન્ટરફેસ બનાવવામાં ત્રણ અઠવાડિયા વિતાવ્યા. મારે શબ્દોનો એક સરળ પ્રવાહ જોઈતો હતો. પણ મને ડેડ કનેક્શન અને અધૂરા વાક્યો મળ્યા.

મારું એપ FastAPI અને React નો ઉપયોગ કરતું હતું. ટૂંકા જવાબો બરાબર કામ કરતા હતા. લાંબા જવાબો શબ્દની વચ્ચેથી જ કપાઈ જતા હતા. સર્વર ડેટા મોકલવાનું બંધ કરી દેતું હતું.

મેં તેને સુધારવાનો પ્રયાસ કર્યો. મેં timeout વધાર્યો. પણ તેનાથી કંઈ કામ થયું નહીં. મેં retry loop ઉમેર્યો, જેના કારણે શબ્દોનું ડુપ્લીકેશન થવા લાગ્યું.

સમસ્યા parser માં હતી. AI API ડેટાની લાઈનો મોકલે છે. મારા કોડ દ્વારા કનેક્શન ખૂબ જ વહેલું બંધ કરી દેવામાં આવતું હતું. તે અંતના સિગ્નલ (end signal) ની રાહ જોતું નહોતું.

અહીં તેનો ઉકેલ છે:

  • aiter_lines ને બદલે aiter_bytes નો ઉપયોગ કરો.
  • લાઇન બફરને (line buffer) મેન્યુઅલી મેનેજ કરો.
  • અટકવા માટે [DONE] સિગ્નલ શોધો.

ત્યારબાદ મારું UI ફ્રીઝ થઈ ગયું. સર્વર પ્રતિ સેકન્ડ 50 chunks મોકલતું હતું. React તેને હેન્ડલ કરવામાં નિષ્ફળ રહ્યું. મેં ડેટાને નિયંત્રિત (throttle) કરવા માટે સર્વર પર થોડો વિલંબ (delay) ઉમેર્યો.

તમારા માટે શીખવા જેવી બાબતો:

  • પહેલા સ્ટ્રીમિંગ સ્પેસિફિકેશન (streaming spec) વાંચો.
  • એવું ન માનો કે ખાલી લાઇનનો અર્થ અંત છે.
  • SSE parsing માટે લાઇબ્રેરીનો ઉપયોગ કરો.
  • chunk ની સંખ્યા અને વિલંબ (delays) પર નજર રાખો.

સ્ટ્રીમ્સ અસ્તવ્યસ્ત હોય છે. તેમાં કેટલીક અજીબ બાબતો હોય છે. સ્ટ્રીમ યોગ્ય રીતે પૂરી થશે તેની ક્યારેય ખાતરી ન કરો.

તમારો સૌથી અજીબ સ્ટ્રીમિંગ બગ (bug) કયો છે?

Source: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m Optional learning community: https://t.me/GyaanSetuAi