मी एक AI Git Commit Message Generator तयार केला
मी पूर्वी चुकीचे commit messages लिहायचो.
"fixed bug" किंवा "updated stuff" सारखे संदेश सामान्य होते. यामुळे माझे pull requests विस्कळीत व्हायचे. मी हे काम स्वयंचलित करण्यासाठी एक AI टूल तयार करण्याचा निर्णय घेतला. मला माझ्या code diffs मधून स्पष्ट आणि व्यावसायिक संदेश तयार करायचे होते.
हे माझ्या कल्पनेपेक्षा कठीण होते. तुम्ही फक्त एक साधा prompt वापरून हे करू शकत नाही.
या प्रक्रियेतून मी काय शिकलो ते खालीलप्रमाणे आहे:
अपयश
- सुरुवातीचे प्रयत्न खूप शब्दबंबाळ होते. AI ने लहान ओळींऐवजी पूर्ण परिच्छेद लिहिले.
- AI ने Conventional Commits सारख्या मानक फॉरमॅट्सकडे दुर्लक्ष केले.
- अधिक सूचना दिल्याने AI ने अस्तित्वात नसलेले बदल (hallucinate) दाखवण्यास सुरुवात केली.
- स्थानिक (Local) मॉडेल्स खूप संथ होते किंवा विचित्र, काव्यमय शैलीत लिहीत होते.
उपाय
मी Node.js मध्ये तीन पायऱ्या वापरून एक हायब्रिड सिस्टम तयार केली:
- Type Classification: मी AI ला प्रथम एक प्रकार निवडण्यास भाग पाडतो (feat, fix, chore, इ.).
- Context Truncation: मी फक्त diff च्या पहिल्या 250 ओळी पाठवतो. यामुळे पैसे वाचतात आणि लक्ष केंद्रित राहते.
- Validation: आउटपुट तपासण्यासाठी मी regex वापरतो. जर ते अयशस्वी झाले, तर स्क्रिप्ट पुन्हा प्रयत्न करते.
माझी तांत्रिक सेटिंग्ज
- Model: मी GPT-4o-mini वापरतो. ते जलद आणि स्वस्त आहे.
- Temperature: मी ते 0.2 वर सेट केले आहे. कमी तापमानामुळे कंटाळवाणे पण सुसंगत संदेश मिळतात.
- Workflow: मी auto-commit करत नाही. मी संदेश सुचवण्यासाठी या टूलचा वापर करतो, त्यानंतर मी स्वतः त्याची पडताळणी करतो आणि तो मॅन्युअली पेस्ट करतो.
डेव्हलपर्ससाठी धडे
- Token limits हे तुमचे मुख्य शत्रू आहेत. मोठे diffs तुमच्या बजेटवर किंवा prompt वर परिणाम करू शकतात.
- Validation आवश्यक आहे. regex तपासणीशिवाय तुम्हाला निरुपयोगी मजकूर मिळेल.
- मॅन्युअल रिव्ह्यू ही सुरक्षितता आहे. AI चुका करते. तुमच्या देखरेखीशिवाय त्याला कधीही commit करू देऊ नका.
- गोपनीयता महत्त्वाची आहे. जर तुमच्या कंपनीने मनाई केली असेल, तर संवेदनशील कोड कोणत्याही बाह्य API ला पाठवू नका.
जर तुम्हाला हे वापरून पाहायचे असेल, तर ते Git alias म्हणून चालवा. यामुळे प्रक्रिया अखंड होते.
Optional learning community: https://t.me/GyaanSetuAi
