Fetch API ਦੇ ਸੰਬੰਧ ਵਿੱਚ 5 ਚੀਜ਼ਾਂ ਜੋ AI ਗਲਤ ਕਰਦਾ ਹੈ

AI ਕੋਡਿੰਗ ਸਹਾਇਕ ਅਜਿਹਾ ਕੋਡ ਲਿਖਦੇ ਹਨ ਜੋ ਦੇਖਣ ਵਿੱਚ ਸਹੀ ਲੱਗਦਾ ਹੈ। ਪਰ ਉਹ ਅਜਿਹਾ ਕੋਡ ਨਹੀਂ ਲਿਖਦੇ ਜੋ ਅਸਲ ਵਿੱਚ ਸਹੀ ਹੋਵੇ।

ਜ਼ਿਆਦਾਤਰ ਮਾਡਲ ਇੱਕ ਸਧਾਰਨ fetch snippet ਸੁਝਾਉਂਦੇ ਹਨ। ਇਹ ਇੱਕ ਡੈਮੋ ਵਿੱਚ ਚੱਲ ਜਾਂਦਾ ਹੈ, ਪਰ production ਵਿੱਚ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ। Fetch API ਇੱਕ low-level ਟੂਲ ਹੈ, ਕੋਈ ਮੁਕੰਮਲ HTTP client ਨਹੀਂ। ਇਸ ਲਈ ਤੁਹਾਨੂੰ ਅਜਿਹੇ ਆਰਕੀਟੈਕਚਰਲ ਫੈਸਲੇ ਲੈਣੇ ਪੈਂਦੇ ਹਨ ਜੋ AI ਨਹੀਂ ਲੈ ਸਕਦਾ।

ਇੱਥੇ 5 ਤਰੀਕੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨਾਲ AI fetch ਵਿੱਚ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ:

  • Error Handling AI ਮੰਨ ਲੈਂਦਾ ਹੈ ਕਿ ਇੱਕ ਫੇਲ ਹੋਈ ਰਿਕੁਐਸ promise ਨੂੰ reject ਕਰ ਦਿੰਦੀ ਹੈ। ਇਹ ਗਲਤ ਹੈ। 404 ਜਾਂ 500 error catch block ਨੂੰ trigger ਨਹੀਂ ਕਰਦਾ। ਤੁਹਾਨੂੰ ਮੈਨੂਅਲੀ response.ok ਦੀ ਜਾਂਚ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਅਜਿਹਾ ਨਹੀਂ ਕਰਦੇ, ਤਾਂ ਤੁਹਾਡੀ ਐਪ error pages ਨੂੰ ਸਫਲ data ਵਜੋਂ ਮੰਨ ਲਵੇਗੀ।

  • Request Cancellation AI ਅਕਸਰ AbortController ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਭੁੱਲ ਜਾਂਦਾ ਹੈ। ਇਸ ਨਾਲ React ਵਰਗੇ frameworks ਵਿੱਚ memory leaks ਅਤੇ race conditions ਪੈਦਾ ਹੁੰਦੇ ਹਨ। ਜੇਕਰ ਕੋਈ ਯੂਜ਼ਰ ਤੇਜ਼ੀ ਨਾਲ ਇੱਕ ਲਿਸਟ ਵਿੱਚ ਕਲਿੱਕ ਕਰਦਾ ਹੈ, ਤਾਂ ਪੁਰਾਣੀਆਂ ਰਿਕੁਐਸਾਂ ਨਵੀਆਂ ਰਿਕੁਐਸਾਂ ਤੋਂ ਬਾਅਦ resolve ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਨਾਲ ਤੁਹਾਡੀ UI ਵਿੱਚ ਪੁਰਾਣਾ (stale) data ਰਹਿ ਜਾਂਦਾ ਹੈ। ਤੁਹਾਨੂੰ AbortError ਲਈ ਫਿਲਟਰ ਵੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਜੋ ਜਾਣਬੁੱਝ ਕੇ ਕੀਤੀਆਂ ਗਈਆਂ cancellations ਦੌਰਾਨ error messages ਨਾ ਦਿਖਾਈ ਦੇਣ।

  • Streaming Data AI responses ਨੂੰ ਇੱਕੋ ਵਾਰ ਦੇ ਬਲਾਕ ਵਜੋਂ ਮੰਨਦਾ ਹੈ। ਵੱਡੀਆਂ ਫਾਈਲਾਂ ਜਾਂ LLM responses ਨੂੰ ਸੰਭਾਲਣ ਵੇਲੇ ਇਹ ਤਰੀਕਾ ਟੁੱਟ ਜਾਂਦਾ ਹੈ। Network chunks ਇੱਕ ਸਿੰਗਲ character ਜਾਂ JSON ਲਾਈਨ ਨੂੰ ਅੱਧ ਵਿਚਕਾਰੋਂ ਵੰਡ ਸਕਦੇ ਹਨ। ਤੁਹਾਨੂੰ chunks ਵਿੱਚ bytes ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲਣ ਲਈ TextDecoderStream ਅਤੇ ਇੱਕ buffer ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।

  • Resilience and Retries AI ਬਹੁਤ ਹੀ ਸਧਾਰਨ (naive) retry loops ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇਹ loops ਖ਼ਤਰਨਾਕ ਹਨ। ਉਹ ਅਕਸਰ POST requests ਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ (retry) ਕਰਦੇ ਹਨ, ਜਿਸ ਨਾਲ double charges ਜਾਂ ਡੁਪਲੀਕੇਟ data ਹੋ ਸਕਦਾ ਹੈ। ਉਹਨਾਂ ਵਿੱਚ backoff ਅਤੇ jitter ਦੀ ਵੀ ਕਮੀ ਹੁੰਦੀ ਹੈ। ਇਹ ਸਰਵਰ ਦੀ ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਖਰਾਬੀ ਨੂੰ ਇੱਕ ਵੱਡੇ outage ਵਿੱਚ ਬਦਲ ਸਕਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਸਿਰਫ਼ idempotent requests ਨੂੰ ਹੀ retry ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ exponential backoff ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।

  • Environment Differences AI Browser ਅਤੇ Node.js ਦੇ ਨਿਯਮਾਂ ਵਿੱਚ ਗਲਤੀ ਕਰ ਦਿੰਦਾ ਹੈ। Node.js CORS ਨੂੰ ਲਾਗੂ ਨਹੀਂ ਕਰਦਾ। Node.js ਦੇ default timeouts ਵੱਖਰੇ ਹੁੰਦੇ ਹਨ। Node ਵਿੱਚ, connections leak ਹੋਣ ਤੋਂ ਬਚਣ ਲਈ ਤੁਹਾਨੂੰ body ਨੂੰ consume ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। AI ਤੁਹਾਡੇ target runtime ਬਾਰੇ ਨਹੀਂ ਜਾਣ ਸਕਦਾ, ਇਸ ਲਈ ਇਹ ਅਕਸਰ ਅਜਿਹਾ ਕੋਡ ਦਿੰਦਾ ਹੈ ਜੋ ਇੱਕ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ ਪਰ ਦੂਜੇ ਵਿੱਚ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ।

The Strategy:

Scaffolding ਲਈ AI ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਸਨੂੰ boilerplate ਅਤੇ ਬੁਨਿਆਦੀ ਢਾਂਚਾ ਲਿਖਣ ਦਿਓ।

ਤੁਹਾਨੂੰ semantics (ਅਰਥਾਂ) ਦੀ ਜ਼ਿੰਮੇਵਾਰੀ ਲੈਣੀ ਚਾਹੀਦੀ ਹੈ। ਤੁਸੀਂ ਫੈਸਲਾ ਕਰਦੇ ਹੋ ਕਿ ਕੀ 404 ਇੱਕ error ਹੈ। ਤੁਸੀਂ ਆਪਣਾ retry budget ਤੈਅ ਕਰਦੇ ਹੋ। ਤੁਸੀਂ ਫੈਸਲਾ ਕਰਦੇ ਹੋ ਕਿ ਆਪਣੇ auth headers ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਣਾ ਹੈ।

AI ਸੰਭਾਵੀ (plausible) ਕੋਡ ਲਈ optimize ਕਰਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਸਹੀ ਕੋਡ (correctness) ਲਈ optimize ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।

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