Nilijenga Kijenereta cha Ujumbe wa Git Commit kwa kutumia AI

Zamani nilikuwa nikiandika ujumbe mbaya wa commit kama "fixed bug" au "updated stuff." Hii ilifanya pull requests zangu kuwa na vurugu. Niliamua kuifanya iwe ya kiotomatiki kwa kutumia AI. Nilitaka kutengeneza ujumbe safi na wa kawaida (conventional) kutoka kwenye code diffs zangu.

Ilikuwa vigumu kuliko nilivyofikiria. Prompt rahisi haikufanya kazi.

Majaribio ya awali yalifeli kwa sababu nyingi:

  • AI iliandika aya ndefu badala ya mistari mifupi.
  • Ilipuuza viambishi (prefixes) vinavyohitajika kama "feat:" au "fix:".
  • Ilidai kuwepo kwa vipengele (features) ambavyo havikuwepo kwenye code.
  • Local models zilikuwa polepole sana na ziliandika kwa mtindo wa kishairi usio na manufaa.

Hatimaye nilijenga mfumo mseto (hybrid system) unaofanya kazi. Hii ndiyo muundo ninayotumia:

  • Uainishaji wa Aina (Type Classification): Naomba model ichague aina kama feat, fix, au chore kabla ya kuandika ujumbe.
  • Kupunguza Muktadha (Context Truncation): Ninatuma mistari 250 ya kwanza tu ya diff. Hii huokoa pesa na kuweka umakini ukiwa mkali.
  • Uhakiki (Validation): Ninatumia regex kukagua matokeo. Ikiwa ujumbe ni mbaya, script inajaribu tena.
  • Joto la Chini (Low Temperature): Ninaweka temperature kuwa 0.2. Hii inafanya matokeo yawe thabiti na ya kawaida. Kawaida ni nzuri kwa logs.

Situmii automatic commit hooks. AI hufanya makosa. Ninatumia script hiyo kama git alias. Inapendekeza ujumbe, nami huukagua kabla ya ku-commit. Ukaguzi wa mwongozo (manual review) ndio bima bora dhidi ya historia mbaya ya git.

Masomo matatu niliyojifunza:

  • Vizuizi vya token ni adui yako. Diffs kubwa zitaharibu bajeti yako au prompt yako.
  • Uhakiki ni lazima. Bila hiyo, utapata mambo yasiyo na maana.
  • Kasi ni muhimu. Ninatumia GPT-4o-mini kwa sababu ni ya haraka na rahisi.

Ikiwa unafanya kazi kwenye code nyeti, usitume diffs zako kwenye API ya nje. Tumia local model badala yake.

Unashughulikiaje ujumbe wako wa commit? Je, unatumia AI au unayaandika kwa mkono?

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