Bir Yapay Zeka Git Commit Mesajı Oluşturucu Geliştirdim

Eskiden kötü commit mesajları yazardım.

"fixed bug" veya "updated stuff" gibi mesajlar yaygındı. Bu durum pull request'lerimi karmaşık hale getiriyordu. Bunu otomatikleştirmek için bir yapay zeka aracı geliştirmeye karar verdim. Kod farklarımdan (diffs) net ve profesyonel mesajlar üretmek istiyordum.

Düşündüğümden daha zordu. Sadece basit bir prompt kullanarak bunu yapamazsınız.

İşte bu süreçten öğrendiklerim:

Başarısızlıklar

  • İlk denemeler çok uzundu. Yapay zeka kısa satırlar yerine paragraflar yazıyordu.
  • Yapay zeka, Conventional Commits gibi standart formatları görmezden geliyordu.
  • Daha fazla talimat eklemek, yapay zekanın orada olmayan değişiklikleri uydurmasına (hallucination) neden oluyordu.
  • Yerel modeller çok yavaştı veya tuhaf, şiirsel bir tarzda yazıyordu.

Çözüm

Node.js kullanarak üç adımlı hibrit bir sistem kurdum:

  • Tip Sınıflandırması: Yapay zekayı önce bir tip seçmeye (feat, fix, chore, vb.) zorluyorum.
  • Bağlam Kısaltma: Diff'in sadece ilk 250 satırını gönderiyorum. Bu, maliyeti düşürüyor ve odağın korunmasını sağlıyor.
  • Doğrulama: Çıktıyı kontrol etmek için bir regex kullanıyorum. Eğer başarısız olursa, betik tekrar deniyor.

Teknik Ayarlarım

  • Model: GPT-4o-mini kullanıyorum. Hızlı ve ucuz.
  • Temperature: 0.2 olarak ayarladım. Düşük sıcaklık, sıkıcı ama tutarlı mesajlar sağlar.
  • İş Akışı: Otomatik commit yapmıyorum. Aracı bir mesaj önermek için kullanıyorum, ardından mesajı inceleyip manuel olarak yapıştırıyorum.

Geliştiriciler İçin Dersler

  • Token limitleri en büyük düşmanınızdır. Büyük diff'ler bütçenizi veya prompt'unuzu bozacaktır.
  • Doğrulama gereklidir. Bir regex kontrolü olmadan işe yaramaz metinler alırsınız.
  • Manuel inceleme güvenlik sağlar. Yapay zeka hata yapar. Gözünüzün üzerinde olmadığı bir commit işlemini asla yapmasına izin vermeyin.
  • Gizlilik önemlidir. Şirketiniz yasaklıyorsa hassas kodları harici bir API'ye göndermeyin.

Bunu denemek isterseniz, bir Git alias'ı olarak çalıştırın. Bu, süreci sorunsuz hale getirir.

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

İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi