నేను ఒక AI Git Commit Message Generatorను రూపొందించాను

నేను గతంలో తప్పుగా ఉండే commit messages రాసేవాడిని.

"fixed bug" లేదా "updated stuff" వంటి సందేశాలు సాధారణంగా ఉండేవి. దీనివల్ల నా pull requests గందరగోళంగా మారేవి. దీనిని ఆటోమేట్ చేయడానికి ఒక AI టూల్‌ను రూపొందించాలని నేను నిర్ణయించుకున్నాను. నా code diffs నుండి స్పష్టమైన, ప్రొఫెషనల్ సందేశాలను రూపొందించాలని నేను అనుకున్నాను.

ఇది నేను అనుకున్నదానికంటే కష్టంగా ఉంది. మీరు కేవలం ఒక సాధారణ promptను ఉపయోగించి దీనిని సాధించలేరు.

ఈ ప్రక్రియ ద్వారా నేను నేర్చుకున్న విషయాలు ఇక్కడ ఉన్నాయి:

వైఫల్యాలు

  • ప్రారంభ ప్రయత్నాలు చాలా సుదీర్ఘంగా ఉండేవి. AI చిన్న లైన్ల బదులు పేరాగ్రాఫ్‌లను రాసేది.
  • AI, Conventional Commits వంటి ప్రామాణిక ఫార్మాట్‌లను పట్టించుకోలేదు.
  • ఎక్కువ సూచనలు (instructions) ఇవ్వడం వల్ల, లేని మార్పులను కూడా AI సృష్టించడం (hallucinate) మొదలుపెట్టింది.
  • Local models చాలా నెమ్మదిగా ఉండేవి లేదా వింతైన, కవితాత్మక శైలిలో రాసేవి.

పరిష్కారం

నేను Node.jsలో మూడు దశలతో కూడిన ఒక hybrid systemను రూపొందించాను:

  • Type Classification: మొదట ఒక రకాన్ని (feat, fix, chore, మొదలైనవి) ఎంచుకోవాలని నేను AIని ఆదేశిస్తాను.
  • Context Truncation: నేను diffలోని మొదటి 250 లైన్లను మాత్రమే పంపిస్తాను. ఇది ఖర్చును తగ్గిస్తుంది మరియు దృష్టిని కేంద్రీకరిస్తుంది.
  • Validation: అవుట్‌పుట్‌ను తనిఖీ చేయడానికి నేను regexని ఉపయోగిస్తాను. అది విఫలమైతే, స్క్రిప్ట్ మళ్ళీ ప్రయత్నిస్తుంది.

నా సాంకేతిక సెట్టింగ్‌లు

  • Model: నేను GPT-4o-miniని ఉపయోగిస్తాను. ఇది వేగంగా మరియు తక్కువ ఖర్చుతో కూడుకున్నది.
  • Temperature: నేను దీనిని 0.2కి సెట్ చేశాను. తక్కువ temperature వల్ల సందేశాలు స్థిరంగా (consistent) ఉంటాయి.
  • Workflow: నేను auto-commit చేయను. సందేశాన్ని సూచించడానికి నేను ఈ టూల్‌ను ఉపయోగిస్తాను, ఆపై దానిని స్వయంగా సమీక్షించి (review), మాన్యువల్‌గా పేస్ట్ చేస్తాను.

డెవలపర్ల కోసం పాఠాలు

  • 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