મેં અમારા ૩ વર્ષ જૂના ફિનટેક કોડબેઝ પર AI ને ભ્રમિત (hallucinating) થતું કેવી રીતે અટકાવ્યું

AI કોડિંગ ટૂલ્સ વાસ્તવિક પ્રોડક્શન પ્રોજેક્ટ્સમાં નિષ્ફળ જાય છે. તેઓ નવા કોડ પર કામ કરે છે પરંતુ ઇતિહાસ ધરાવતા જૂના કોડબેઝ પર નિષ્ફળ જાય છે.

મેં અમારા ફિનટેક પ્રોજેક્ટ સાથે આ કઠિન રીતે શીખ્યું. અમારી પાસે બે React ફ્રન્ટએન્ડ્સ, એક એડમિન પેનલ અને એક FastAPI બેકએન્ડ છે. અમારું ડેટાબેઝ જટિલ છે. તેમાં સંવેદનશીલ નાણાકીય અને વપરાશકર્તા ડેટા હોય છે.

અમે ઝડપથી આગળ વધવા માટે AI નો ઉપયોગ કરવાનો પ્રયાસ કર્યો. તે તરત જ નિષ્ફળ ગયું.

મેં AI ને કોન્ટેક્ટ્સ ટેબલ (contacts table) બનાવવા કહ્યું. તેણે નામ અને ઈમેલ માટે નવા કોલમ બનાવ્યા. આ કોલમ પહેલેથી જ અમારા યુઝર્સ ટેબલમાં (users table) અસ્તિત્વ ધરાવતા હતા. AI એ ફોરેન કી (foreign key) નો ઉપયોગ કરવાને બદલે ડેટા ડુપ્લીકેટ કરી દીધો. તેને ખબર જ નહોતી કે અમારું યુઝર્સ ટેબલ અસ્તિત્વમાં છે.

મેં AI ને વધુ સારો કોડ કેવી રીતે લખાવવો તે પૂછવાનું બંધ કરી દીધું. મેં એ પૂછવાનું શરૂ કર્યું કે સારા નિર્ણયો લેવા માટે AI એ શું જાણવું જરૂરી છે.

AI એટલું જ સારું છે જેટલો તમે તેને સંદર્ભ (context) આપો છો. અમે અમારા સંદર્ભને સ્પષ્ટ અને અધિકૃત બનાવ્યો. અમે બનાવેલી સિસ્ટમ અહીં છે:

• ADR Files: અમે docs/adrs/ ફોલ્ડર બનાવ્યું. આ ફાઇલો રેકોર્ડ કરે છે કે અમે આર્કિટેક્ચરલ નિર્ણયો શા માટે લઈએ છીએ. એક ફાઇલ (ADR-001) AI ને કહે છે: "પહેલા અસ્તિત્વમાં રહેલા ટેબલ તપાસો. ફોરેન કીનો ઉપયોગ કરો. યુઝર ડેટા ક્યારેય ડુપ્લીકેટ કરશો નહીં."

• context.md: આ ફાઇલ અમારા ચોક્કસ શબ્દો સમજાવે છે. તે AI ને જણાવે છે કે અમારી સિસ્ટમમાં વિવિધ ખ્યાલો એકબીજા સાથે કેવી રીતે સંબંધિત છે.

• plot.md: આ એક હાઈ-લેવલ મેપ છે. તે દર્શાવે છે કે અમારા પ્રોજેક્ટના વિવિધ ભાગો કેવી રીતે જોડાયેલા છે.

• કડક નિયમો (Strict Rules): અમે AI ને કહ્યું કે docs ડિરેક્ટરી એ અંતિમ સત્તા છે. તેણે આ નિયમો ક્રમ અનુસાર અનુસરવા જ જોઈએ.

• ફરજિયાત ટેસ્ટ (Mandatory Tests): દરેક નવા API રૂટ માટે ટેસ્ટ કેસ હોવા જ જોઈએ.

આ સિસ્ટમ AI ને અનુમાનિત (predictable) બનાવે છે.

એકવાર, AI એ એક શેર કરેલા ફંક્શનમાં ફેરફાર કર્યો જેના કારણે એપના અન્ય આઠ ભાગો બગડી ગયા. કારણ કે અમારી પાસે ટેસ્ટ હતા, AI એ નિષ્ફળતાઓ જોઈ લીધી. તેણે ફંક્શનનું નવું વર્ઝન બનાવીને પોતાની ભૂલ સુધારી લીધી જે જૂની અને નવી બંને જરૂરિયાતોને હેન્ડલ કરી શકે. ટેસ્ટ વગર, તે બગ પ્રોડક્શન સુધી પહોંચી ગયો હોત.

તમારો કોડબેઝ ન જાણવા બદલ AI ને દોષ આપવાનું બંધ કરો. તેની સાથે નવા કર્મચારી (new hire) ની જેમ વર્તો. તમે નવા કર્મચારીને તમારા નિયમો ન જાણવા બદલ દોષ આપતા નથી. તમે તેમને ડોક્યુમેન્ટેશન અને ઓનબોર્ડિંગ આપો છો.

અમારી રચના આ મુજબ છે:

docs/

  • context.md (શબ્દો અને જોડાણો)
  • plot.md (હાઈ-લેવલ મેપ)
  • adr/ (ટેબલ બનાવવું અથવા API સ્ટ્રક્ચર જેવા ચોક્કસ નિયમો)

તમારા વર્કફ્લો માટે ત્રણ ટિપ્સ:

  • તમારા ADRs માં ચોક્કસ બનો. અસ્પષ્ટ સલાહને બદલે સ્પષ્ટ સૂચનાઓનો ઉપયોગ કરો.
  • ડોક્યુમેન્ટ્સને અધિકૃત બનાવો. AI ને કહો કે આ નિયમો પ્રથમ આવે છે.
  • ભૂલોને નિયમોમાં બદલો. જ્યારે પણ AI નિષ્ફળ જાય, ત્યારે તેને રોકવા માટે નવો ADR બનાવો.

આ AI ને સંપૂર્ણ બનાવતું નથી. તે તેને સુસંગત (consistent) બનાવે છે.

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

વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi