ਮੈਂ ਇੱਕ AI Git Commit Message Generator ਬਣਾਇਆ

ਮੈਂ ਪਹਿਲਾਂ ਮਾੜੇ commit messages ਲਿਖਦਾ ਸੀ।

"fixed bug" ਜਾਂ "updated stuff" ਵਰਗੇ ਮੈਸੇਜ ਆਮ ਸਨ। ਇਸ ਨਾਲ ਮੇਰੀਆਂ pull requests ਵਿੱਚ ਗੜਬੜ ਹੋ ਜਾਂਦੀ ਸੀ। ਮੈਂ ਇਸ ਨੂੰ ਆਟੋਮੇਟ ਕਰਨ ਲਈ ਇੱਕ AI ਟੂਲ ਬਣਾਉਣ ਦਾ ਫੈਸਲਾ ਕੀਤਾ। ਮੈਂ ਆਪਣੇ code diffs ਤੋਂ ਸਪਸ਼ਟ ਅਤੇ ਪੇਸ਼ੇਵਰ ਮੈਸੇਜ ਤਿਆਰ ਕਰਨਾ ਚਾਹੁੰਦਾ ਸੀ।

ਇਹ ਮੇਰੀ ਸੋਚ ਨਾਲੋਂ ਕਿਤੇ ਜ਼ਿਆਦਾ ਮੁਸ਼ਕਲ ਸੀ। ਤੁਸੀਂ ਸਿਰਫ਼ ਇੱਕ ਸਧਾਰਨ prompt ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕਦੇ।

ਇੱਥੇ ਉਹ ਹੈ ਜੋ ਮੈਂ ਇਸ ਪ੍ਰਕਿਰਿਆ ਤੋਂ ਸਿੱਖਿਆ:

ਨਾਕਾਮੀਆਂ

  • ਸ਼ੁਰੂਆਤੀ ਕੋਸ਼ਿਸ਼ਾਂ ਬਹੁਤ ਲੰਬੀਆਂ ਸਨ। AI ਨੇ ਛੋਟੀਆਂ ਲਾਈਨਾਂ ਦੀ ਬਜਾਏ ਪੈਰੇ ਲਿਖ ਦਿੱਤੇ।
  • AI ਨੇ Conventional Commits ਵਰਗੇ ਮਿਆਰੀ ਫਾਰਮੈਟਾਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਦਿੱਤਾ।
  • ਹੋਰ ਹਦਾਇਤਾਂ ਜੋੜਨ ਨਾਲ AI ਅਜਿਹੇ ਬਦਲਾਅ ਦਿਖਾਉਣ ਲੱਗ ਪਿਆ ਜੋ ਉੱਥੇ ਸਨ ਹੀ ਨਹੀਂ (hallucinate)।
  • Local models ਬਹੁਤ ਹੌਲੀ ਸਨ ਜਾਂ ਇੱਕ ਅਜੀਬ, ਕਾਵਿਕ ਸ਼ੈਲੀ ਵਿੱਚ ਲਿਖਦੇ ਸਨ।

ਹੱਲ

ਮੈਂ Node.js ਵਿੱਚ ਤਿੰਨ ਪੜਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਹਾਈਬ੍ਰਿਡ ਸਿਸਟਮ ਬਣਾਇਆ:

  • Type Classification: ਮੈਂ AI ਨੂੰ ਪਹਿਲਾਂ ਇੱਕ type ਚੁਣਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹਾਂ (feat, fix, chore, ਆਦਿ)।
  • Context Truncation: ਮੈਂ diff ਦੀਆਂ ਸਿਰਫ਼ ਪਹਿਲੀਆਂ 250 ਲਾਈਨਾਂ ਭੇਜਦਾ ਹਾਂ। ਇਸ ਨਾਲ ਪੈਸੇ ਦੀ ਬਚਤ ਹੁੰਦੀ ਹੈ ਅਤੇ ਫੋਕਸ ਬਣਿਆ ਰਹਿੰਦਾ ਹੈ।
  • Validation: ਮੈਂ output ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਇੱਕ regex ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ। ਜੇਕਰ ਇਹ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਸਕ੍ਰਿਪਟ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਦੀ ਹੈ।

ਮੇਰੀਆਂ ਤਕਨੀਕੀ ਸੈਟਿੰਗਾਂ

  • Model: ਮੈਂ GPT-4o-mini ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ। ਇਹ ਤੇਜ਼ ਅਤੇ ਸਸਤਾ ਹੈ।
  • Temperature: ਮੈਂ ਇਸਨੂੰ 0.2 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਹੈ। ਘੱਟ temperature ਸਧਾਰਨ ਅਤੇ ਸਥਿਰ ਮੈਸੇਜ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।
  • Workflow: ਮੈਂ auto-commit ਨਹੀਂ ਕਰਦਾ। ਮੈਂ ਮੈਸੇਜ ਸੁਝਾਉਣ ਲਈ ਟੂਲ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ, ਫਿਰ ਮੈਂ ਉਸਦੀ ਸਮੀਖਿਆ ਕਰਦਾ ਹਾਂ ਅਤੇ ਇਸਨੂੰ ਮੈਨੂਅਲੀ ਪੇਸਟ ਕਰਦਾ ਹਾਂ।

ਡਿਵੈਲਪਰਾਂ ਲਈ ਸਬਕ

  • Token limits ਤੁਹਾਡੇ ਮੁੱਖ ਦੁਸ਼ਮਣ ਹਨ। ਵੱਡੇ diffs ਤੁਹਾਡੇ ਬਜਟ ਜਾਂ prompt ਨੂੰ ਖਰਾਬ ਕਰ ਸਕਦੇ ਹਨ।
  • Validation ਜ਼ਰੂਰੀ ਹੈ। ਬਿਨਾਂ regex ਚੈੱਕ ਦੇ, ਤੁਹਾਨੂੰ ਬੇਕਾਰ ਟੈਕਸਟ ਮਿਲੇਗਾ।
  • Manual review ਸੁਰੱਖਿਆ ਹੈ। AI ਗਲਤੀਆਂ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ ਕਦੇ ਵੀ ਆਪਣੀ ਨਿਗਰਾਨੀ ਤੋਂ ਬਿਨਾਂ commit ਨਾ ਕਰਨ ਦਿਓ।
  • Privacy ਮਹੱਤਵਪੂਰਨ ਹੈ। ਜੇਕਰ ਤੁਹਾਡੀ ਕੰਪਨੀ ਮਨ੍ਹਾ ਕਰਦੀ ਹੈ, ਤਾਂ ਸੰਵੇਦਨਸ਼ੀਲ code ਕਿਸੇ ਬਾਹਰੀ 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