5 Perkara yang AI Silap Mengenai Fetch API
Pembantu pengekodan AI menulis kod yang kelihatan betul. Ia tidak menulis kod yang benar-benar betul.
Kebanyakan model mencadangkan petikan (snippet) fetch yang ringkas. Ia berfungsi dalam demo, tetapi gagal dalam pengeluaran (production). Fetch API ialah alat tahap rendah (low-level), bukan klien HTTP yang lengkap. Ia memerlukan anda membuat keputusan seni bina yang tidak dapat dibuat oleh AI.
Berikut adalah 5 cara AI gagal dengan fetch:
Pengendalian Ralat AI menganggap permintaan yang gagal akan menolak (reject) promise tersebut. Ini salah. Ralat 404 atau 500 tidak mencetuskan blok catch. Anda mesti menyemak
response.oksecara manual. Jika tidak, aplikasi anda akan menganggap halaman ralat sebagai data yang berjaya.Pembatalan Permintaan AI sering terlupa untuk menggunakan
AbortController. Ini menyebabkan kebocoran memori (memory leaks) dan keadaan perlumbaan (race conditions) dalam rangka kerja seperti React. Jika pengguna klik melalui senarai dengan pantas, permintaan lama mungkin selesai selepas permintaan baharu. Ini menyebabkan UI anda memaparkan data lapuk. Anda juga mesti menapisAbortErrorsupaya anda tidak memaparkan mesej ralat semasa pembatalan yang disengajakan.Penstriman Data AI menganggap respons sebagai blok tunggal. Ini akan bermasalah apabila mengendalikan fail besar atau respons LLM. Cebisan (chunks) rangkaian boleh membahagikan satu aksara atau satu baris JSON kepada dua bahagian. Anda mesti menggunakan
TextDecoderStreamdan buffer untuk mengendalikan bait (bytes) dengan betul merentasi cebisan tersebut.Ketahanan dan Percubaan Semula (Retries) AI menyediakan gelung percubaan semula (retry loops) yang naif. Gelung ini berbahaya. Ia sering melakukan percubaan semula bagi permintaan POST, yang boleh menyebabkan caj berganda atau data pendua. Ia juga kekurangan mekanisme backoff dan jitter. Ini mengubah gangguan kecil pelayan menjadi terputus perkhidmatan (outage) yang besar. Anda hanya perlu melakukan percubaan semula bagi permintaan idempotent dan menggunakan exponential backoff.
Perbezaan Persekitaran AI mencampuradukkan peraturan Pelayar (Browser) dan Node.js. Node.js tidak menguatkuasakan CORS. Node.js mempunyai tetapan masa tamat (timeout) lalai yang berbeza. Dalam Node, anda mesti menggunakan (consume) kandungan badan (body) untuk mengelakkan kebocoran sambungan. AI tidak tahu masa larian (runtime) sasaran anda, jadi ia sering memberikan kod yang berfungsi dalam satu persekitaran tetapi gagal dalam yang lain.
Strategi:
Gunakan AI untuk rangka kerja (scaffolding). Biarkan ia menulis kod templat (boilerplate) dan struktur asas.
Anda mesti menguasai semantik. Anda yang menentukan sama ada 404 adalah ralat. Anda menentukan bajet percubaan semula anda. Anda menentukan cara mengendalikan pengepala (header) pengesahan anda.
AI mengoptimumkan kod yang kelihatan munasabah. Anda mesti mengoptimumkan ketepatan.
Sumber: https://dev.to/devunionx/new5-things-even-ai-cant-do-fetch-api-328e
