Fetch API માં AI જે 5 બાબતોમાં ભૂલ કરે છે

AI કોડિંગ આસિસ્ટન્ટ્સ એવો કોડ લખે છે જે જોવામાં સાચો લાગે છે. પરંતુ તેઓ સાચો કોડ લખતા નથી.

મોટાભાગના મોડલ્સ એક સાદું fetch snippet સૂચવે છે. તે ડેમોમાં ચાલે છે, પરંતુ પ્રોડક્શનમાં નિષ્ફળ જાય છે. Fetch API એ લો-લેવલ ટૂલ છે, સંપૂર્ણ HTTP ક્લાયન્ટ નથી. તે તમારી પાસે એવા આર્કિટેક્ચરલ નિર્ણયો લેવાની માંગ કરે છે જે AI લઈ શકતું નથી.

Fetch સાથે AI નિષ્ફળ જાય તે રીતે અહીં 5 છે:

  • Error Handling AI એવું માની લે છે કે નિષ્ફળ થયેલી રિક્વેસ્ટ promise ને reject કરશે. આ ખોટું છે. 404 અથવા 500 એરર catch block ને ટ્રિગર કરતી નથી. તમારે response.ok મેન્યુઅલી ચેક કરવું જોઈએ. જો તમે તેમ નહીં કરો, તો તમારું એપ એરર પેજને સફળ ડેટા તરીકે ગણશે.

  • Request Cancellation AI ઘણીવાર AbortController નો ઉપયોગ કરવાનું ભૂલી જાય છે. આના કારણે React જેવા ફ્રેમવર્ક માં memory leaks અને race conditions થાય છે. જો યુઝર ઝડપથી લિસ્ટમાં ક્લિક કરે, તો જૂની રિક્વેસ્ટ નવી રિક્વેસ્ટ પછી રિઝોલ્વ થઈ શકે છે. આનાથી તમારા UI માં જૂનો (stale) ડેટા રહી જાય છે. તમારે AbortError માટે પણ ફિલ્ટર કરવું જોઈએ જેથી ઇરાદાપૂર્વક કરવામાં આવેલા કેન્સલેશન દરમિયાન એરર મેસેજ ન દેખાય.

  • Streaming Data AI રિસ્પોન્સને સિંગલ બ્લોક્સ તરીકે ગણે છે. જ્યારે મોટી ફાઇલો અથવા LLM રિસ્પોન્સ હેન્ડલ કરવામાં આવે ત્યારે આ પદ્ધતિ નિષ્ફળ જાય છે. નેટવર્ક ચંક્સ (chunks) એક સિંગલ કેરેક્ટર અથવા JSON લાઇનને અડધી કરી શકે છે. ચંક્સમાં બાઇટ્સને યોગ્ય રીતે હેન્ડલ કરવા માટે તમારે TextDecoderStream અને બફરનો ઉપયોગ કરવો જોઈએ.

  • Resilience and Retries AI સાધારણ (naive) retry loops આપે છે. આ લૂપ્સ જોખમી છે. તેઓ ઘણીવાર POST રિક્વેસ્ટને ફરીથી ટ્રાય કરે છે, જેના કારણે ડબલ ચાર્જ અથવા ડુપ્લીકેટ ડેટા થઈ શકે છે. તેમાં backoff અને jitter નો પણ અભાવ હોય છે. આના કારણે સર્વરમાં આવતી નાની સમસ્યા પણ મોટી સમસ્યા (outage) માં ફેરવાઈ શકે છે. તમારે ફક્ત idempotent રિક્વેસ્ટને જ ફરીથી ટ્રાય કરવી જોઈએ અને exponential backoff નો ઉપયોગ કરવો જોઈએ.

  • Environment Differences AI બ્રાઉઝર અને Node.js ના નિયમોમાં ભૂલ કરે છે. Node.js માં CORS લાગુ પડતું નથી. Node.js માં ડિફોલ્ટ ટાઈમઆઉટ અલગ હોય છે. Node માં, કનેક્શન લીક થતું અટકાવવા માટે તમારે બોડી (body) નો ઉપયોગ કરવો જ પડે છે. AI તમારા ટાર્ગેટ રનટાઇમ વિશે જાણી શકતું નથી, તેથી તે ઘણીવાર એવો કોડ આપે છે જે એકમાં કામ કરે છે પણ બીજામાં બગડી જાય છે.

The Strategy:

સ્કેફોલ્ડિંગ (scaffolding) માટે AI નો ઉપયોગ કરો. તેને બૉઇલરપ્લેટ (boilerplate) અને મૂળભૂત માળખું લખવા દો.

તમારે semantics પર નિયંત્રણ રાખવું પડશે. 404 એ એરર છે કે નહીં તેનો નિર્ણય તમારે લેવો પડશે. તમારું retry budget તમે નક્કી કરશો. તમારા auth headers કેવી રીતે હેન્ડલ કરવા તે પણ તમે નક્કી કરશો.

AI સંભવિત (plausible) કોડ માટે ઓપ્ટિમાઇઝ કરે છે. તમારે સચોટતા (correctness) માટે ઓપ્ટિમાઇઝ કરવું જોઈએ.

Source: https://dev.to/devunionx/new5-things-even-ai-cant-do-fetch-api-328e