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

હું ખરાબ commit messages લખતો હતો.

"fixed bug" અથવા "updated stuff" જેવા મેસેજ સામાન્ય હતા. આના કારણે મારા pull requests અસ્તવ્યસ્ત બની જતા હતા. મેં આ પ્રક્રિયાને ઓટોમેટ કરવા માટે એક AI ટૂલ બનાવવાનું નક્કી કર્યું. હું મારા code diffs માંથી સ્પષ્ટ અને વ્યાવસાયિક (professional) મેસેજ જનરેટ કરવા માંગતો હતો.

તે મારા વિચાર કરતા વધુ મુશ્કેલ હતું. તમે ફક્ત એક સાદા prompt નો ઉપયોગ કરી શકતા નથી.

આ પ્રક્રિયામાંથી મેં જે શીખ્યું તે અહીં છે:

The Failures

  • શરૂઆતના પ્રયાસો ખૂબ લાંબા હતા. AI ટૂંકી લાઇન લખવાને બદલે આખા ફકરા લખતું હતું.
  • AI એ Conventional Commits જેવા પ્રમાણિત ફોર્મેટને અવગણ્યું.
  • વધુ સૂચનાઓ ઉમેરવાથી AI એવા ફેરફારોની કલ્પના (hallucinate) કરવા લાગ્યું જે ત્યાં હતા જ નહીં.
  • લોકલ મોડલ્સ ખૂબ ધીમા હતા અથવા વિચિત્ર, કાવ્યાત્મક શૈલીમાં લખતા હતા.

The Solution

મેં Node.js માં ત્રણ સ્ટેપ્સનો ઉપયોગ કરીને એક હાઇબ્રિડ સિસ્ટમ બનાવી:

  • Type Classification: હું AI ને પહેલા એક પ્રકાર (feat, fix, chore, વગેરે) પસંદ કરવા માટે મજબૂર કરું છું.
  • Context Truncation: હું diff ની ફક્ત પ્રથમ 250 લાઇન જ મોકલું છું. આનાથી પૈસા બચે છે અને ધ્યાન કેન્દ્રિત રહે છે.
  • Validation: હું આઉટપુટ તપાસવા માટે regex નો ઉપયોગ કરું છું. જો તે નિષ્ફળ જાય, તો સ્ક્રિપ્ટ ફરીથી પ્રયાસ કરે છે.

My Technical Settings

  • Model: હું GPT-4o-mini નો ઉપયોગ કરું છું. તે ઝડપી અને સસ્તું છે.
  • Temperature: મેં તેને 0.2 પર સેટ કર્યું છે. ઓછી temperature એકધારા અને સાદા મેસેજ સુનિશ્ચિત કરે છે.
  • Workflow: હું auto-commit નથી કરતો. હું મેસેજ સૂચવવા માટે આ ટૂલનો ઉપયોગ કરું છું, પછી હું તેને રિવ્યૂ કરું છું અને મેન્યુઅલી પેસ્ટ કરું છું.

Lessons for Developers

  • Token limits તમારા મુખ્ય દુશ્મન છે. મોટા diffs તમારા બજેટ અથવા prompt ને બગાડી શકે છે.
  • Validation જરૂરી છે. regex ચેક વગર, તમને નકામો ટેક્સ્ટ મળશે.
  • Manual review સુરક્ષા છે. AI ભૂલો કરે છે. તમારા જોયા વગર તેને ક્યારેય commit કરવા ન દો.
  • Privacy મહત્વની છે. જો તમારી કંપની મનાઈ કરતી હોય, તો સેન્સિટિવ કોડ કોઈ એક્સટર્નલ API ને મોકલશો નહીં.

જો તમે આ અજમાવવા માંગતા હોવ, તો તેને Git alias તરીકે ચલાવો. તે પ્રક્રિયાને સરળ બનાવે છે.

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

Optional learning community: https://t.me/GyaanSetuAi