મેં એક AI Git Commit Message Generator બનાવ્યું

હું "fixed bug" અથવા "updated stuff" જેવા ખરાબ commit messages લખતો હતો. આના કારણે મારા pull requests અસ્તવ્યસ્ત બની જતા હતા. મેં AI નો ઉપયોગ કરીને તેને ઓટોમેટ કરવાનો નિર્ણય લીધો. મારે મારા code diffs માંથી સ્વચ્છ અને conventional commit messages જનરેટ કરવા હતા.

તે મારા વિચાર કરતા વધુ અઘરું હતું. એક સાદો prompt કામ નહોતો કરતો.

શરૂઆતના પ્રયાસો ઘણા કારણોસર નિષ્ફળ ગયા:

  • AI ટૂંકી લાઈનોને બદલે લાંબા ફકરા લખતું હતું.
  • તે જરૂરી "feat:" અથવા "fix:" prefixes ને અવગણતું હતું.
  • તે એવા ફીચર્સ વિશે કલ્પના (hallucinate) કરતું હતું જે code માં હતા જ નહીં.
  • Local models ખૂબ જ ધીમા હતા અને કાવ્યાત્મક, નકામી શૈલીમાં લખતા હતા.

અંતે મેં એક હાઇબ્રિડ સિસ્ટમ બનાવી જે કામ કરે છે. હું જે સ્ટ્રક્ચરનો ઉપયોગ કરું છું તે અહીં છે:

  • Type Classification: હું મેસેજ લખતા પહેલા મોડેલને feat, fix, અથવા chore જેવો પ્રકાર પસંદ કરવા કહું છું.
  • Context Truncation: હું diff ની ફક્ત પ્રથમ 250 લાઈનો જ મોકલું છું. આનાથી પૈસા બચે છે અને ફોકસ સચવાય છે.
  • Validation: હું આઉટપુટ તપાસવા માટે regex નો ઉપયોગ કરું છું. જો મેસેજ ખોટો હોય, તો સ્ક્રિપ્ટ ફરીથી પ્રયાસ કરે છે.
  • Low Temperature: હું temperature 0.2 સેટ કરું છું. આ આઉટપુટને સુસંગત અને બોરિંગ બનાવે છે. લોગ્સ માટે બોરિંગ હોવું સારું છે.

હું automatic commit hooks નો ઉપયોગ કરતો નથી. AI ભૂલો કરે છે. હું સ્ક્રિપ્ટને git alias તરીકે ચલાવું છું. તે એક મેસેજ સૂચવે છે, અને હું commit કરતા પહેલા તેની સમીક્ષા કરું છું. ખરાબ git history સામે મેન્યુઅલ રિવ્યુ એ શ્રેષ્ઠ વીમો છે.

મેં શીખેલા ત્રણ પાઠ:

  • Token limits તમારા દુશ્મન છે. મોટા diffs તમારા બજેટ અથવા તમારા prompt ને બગાડી શકે છે.
  • Validation અનિવાર્ય છે. તેના વગર, તમને બિનજરૂરી (nonsense) પરિણામો મળશે.
  • Speed મહત્વની છે. હું GPT-4o-mini નો ઉપયોગ કરું છું કારણ કે તે ઝડપી અને સસ્તું છે.

જો તમે સંવેદનશીલ (sensitive) code પર કામ કરતા હોવ, તો તમારા diffs ને એક્સટર્નલ API પર મોકલશો નહીં. તેના બદલે local model નો ઉપયોગ કરો.

તમે તમારા commit messages કેવી રીતે હેન્ડલ કરો છો? તમે AI નો ઉપયોગ કરો છો કે તેને જાતે લખો છો?

Source: https://dev.to/__c1b9e06dc90a7e0a676b/i-built-a-git-commit-message-generator-with-ai-heres-what-i-learned-2534