Bagaimana Saya Menghentikan AI Daripada Berhalusinasi pada Pangkalan Kod Fintech Kami yang Berusia 3 Tahun

Alatan pengekodan AI gagal dalam projek pengeluaran yang sebenar. Ia berfungsi pada kod baharu tetapi gagal apabila berhadapan dengan pangkalan kod lama yang mempunyai sejarah.

Saya mempelajari perkara ini dengan cara yang sukar melalui projek fintech kami. Kami mempunyai dua frontend React, panel admin, dan backend FastAPI. Pangkalan data kami adalah kompleks. Ia menyimpan data kewangan dan pengguna yang sensitif.

Kami cuba menggunakan AI untuk bergerak lebih pantas. Ia gagal serta-merta.

Saya meminta AI untuk mencipta jadual kenalan (contacts table). Ia mencipta lajur baharu untuk nama dan e-mel. Lajur ini sebenarnya sudah wujud dalam jadual pengguna (users table) kami. AI tersebut menduplikasi data dan bukannya menggunakan kunci asing (foreign key). Ia langsung tidak tahu bahawa jadual pengguna kami wujud.

Saya berhenti bertanya bagaimana untuk membuat AI menulis kod yang lebih baik. Saya mula bertanya apa yang perlu diketahui oleh AI untuk membuat keputusan yang baik.

AI hanya akan menjadi sebaik konteks yang anda berikan kepadanya. Kami menjadikan konteks kami eksplisit dan berautoriti. Berikut adalah sistem yang kami bina:

• Fail ADR: Kami mencipta folder docs/adrs/. Fail-fail ini merekodkan mengapa kami membuat keputusan seni bina. Satu fail (ADR-001) memberitahu AI: "Semak jadual sedia ada terlebih dahulu. Gunakan kunci asing. Jangan sesekali duplikasi data pengguna."

• context.md: Fail ini menjelaskan istilah khusus kami. Ia memberitahu AI bagaimana konsep yang berbeza berkaitan antara satu sama lain dalam sistem kami.

• plot.md: Ini adalah peta peringkat tinggi. Ia menunjukkan bagaimana bahagian-bahagian berbeza dalam projek kami saling berhubung.

• Peraturan Ketat: Kami memberitahu AI bahawa direktori docs adalah autoriti tertinggi. Ia mesti mengikut peraturan ini mengikut urutan.

• Ujian Mandatori: Setiap laluan (route) API baharu mesti mempunyai kes ujian (test cases).

Sistem ini menjadikan AI lebih boleh diramal.

Pernah sekali, AI mengubah satu fungsi kongsi (shared function) yang merosakkan lapan bahagian lain dalam aplikasi tersebut. Oleh kerana kami mempunyai ujian, AI dapat melihat kegagalan tersebut. Ia membetulkan kesilapannya sendiri dengan mencipta versi baharu fungsi tersebut yang mengendalikan keperluan lama dan baharu. Tanpa ujian, pepijat (bug) tersebut pasti akan sampai ke peringkat pengeluaran.

Berhenti menyalahkan AI kerana tidak mengetahui pangkalan kod anda. Layan ia seperti pekerja baharu. Anda tidak menyalahkan pekerja baharu kerana tidak mengetahui peraturan anda. Anda memberikan mereka dokumentasi dan proses orientasi (onboarding).

Struktur kami kelihatan seperti ini:

docs/

  • context.md (Istilah dan perkaitan)
  • plot.md (Peta peringkat tinggi)
  • adr/ (Peraturan khusus seperti penciptaan jadual atau struktur API)

Tiga tip untuk aliran kerja anda:

  • Jadilah spesifik dalam ADR anda. Gunakan arahan yang jelas dan bukannya nasihat yang samar-samar.
  • Jadikan dokumentasi sebagai autoriti. Beritahu AI bahawa peraturan ini adalah keutamaan.
  • Tukarkan kesilapan menjadi peraturan. Setiap kali AI gagal, cipta ADR baharu untuk mengelakkannya daripada berulang.

Ini tidak menjadikan AI sempurna. Ia menjadikannya konsisten.

Sumber: https://dev.to/jaskiratanand/how-i-made-ai-stop-hallucinating-on-our-3-year-old-fintech-codebase-3g0h

Komuniti pembelajaran pilihan: https://t.me/GyaanSetuAi