میں نے ایک AI Git Commit Message Generator بنایا

میں پہلے برے commit messages لکھا کرتا تھا۔

"fixed bug" یا "updated stuff" جیسے پیغامات عام تھے۔ اس سے میری pull requests بکھری ہوئی ہو جاتی تھیں۔ میں نے اس عمل کو خودکار بنانے کے لیے ایک AI ٹول بنانے کا فیصلہ کیا۔ میں اپنے code diffs سے واضح اور پیشہ ورانہ پیغامات تیار کرنا چاہتا تھا۔

یہ میری سوچ سے زیادہ مشکل تھا۔ آپ صرف ایک سادہ prompt استعمال نہیں کر سکتے۔

اس عمل سے میں نے جو کچھ سیکھا وہ یہ ہے:

The Failures

  • ابتدائی کوششیں بہت طویل تھیں۔ AI مختصر لائنوں کے بجائے پیراگراف لکھ رہا تھا۔
  • AI نے Conventional Commits جیسے معیاری فارمیٹس کو نظر انداز کر دیا۔
  • مزید ہدایات دینے سے AI ایسی تبدیلیوں کا ذکر کرنے لگا جو حقیقت میں موجود ہی نہیں تھیں۔
  • Local models بہت سست تھے یا ایک عجیب و غریب شاعرانہ انداز میں لکھتے تھے۔

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