Ollama ഉപയോഗിച്ച് ഒരു ലോക്കൽ AI കോഡ് റിവ്യൂവർ നിർമ്മിക്കാം
നിങ്ങളുടെ CI പച്ച നിറത്തിലാണെങ്കിലും (green) അത് ആഴത്തിലുള്ള പരിശോധന നൽകുന്നില്ലായിരിക്കാം. തിരക്കുകൾ കാരണം ഒരു സഹപ്രവർത്തകന് ലളിതമായ ഒരു ബഗ് (bug) ശ്രദ്ധിക്കാതെ പോകാൻ സാധ്യതയുണ്ട്. ഒരു ലോക്കൽ LLM ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇതിനായി ഒരു രണ്ടാമതൊരു ജോഡി കണ്ണുകൾ (second pair of eyes) നിർമ്മിക്കാവുന്നതാണ്.
കമിറ്റ് (commit) ചെയ്യുന്നതിന് മുമ്പ് നിങ്ങളുടെ സ്റ്റേജ് ചെയ്ത (staged) git diff പരിശോധിക്കുന്ന ഒരു TypeScript CLI നിങ്ങൾക്ക് നിർമ്മിക്കാം. ഇത് നിങ്ങളുടെ കോഡ് സ്വകാര്യമായി സൂക്ഷിക്കുന്നു. ഇതിന് API കീകുകളോ ക്ലൗഡ് പ്രൊവൈഡർമാരോ ആവശ്യമില്ല.
ടൂൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു:
• git diff --cached ഉപയോഗിച്ച് സ്റ്റേജ് ചെയ്ത diff എടുക്കുക.
• ഒരു പ്രത്യേക പ്രോംപ്റ്റ് (prompt) ഉപയോഗിച്ച് ഈ diff Ollama-ലേക്ക് അയക്കുക.
• JSON ഔട്ട്പുട്ട് ആവശ്യപ്പെടുകയും Zod ഉപയോഗിച്ച് അത് പരിശോധിക്കുകയും (validate) ചെയ്യുക.
• കണ്ടെത്തിയ കാര്യങ്ങൾ നിങ്ങളുടെ ടെർമിനലിൽ പ്രിന്റ് ചെയ്യുക.
• ഇതിനെ ഒരു pre-commit hook ആയി സെറ്റ് ചെയ്യുക.
മികച്ച ഫലങ്ങൾക്കായി സാങ്കേതികമായ തിരഞ്ഞെടുപ്പുകൾ:
• പ്രോംപ്റ്റിൽ നിന്ന് ANSI കോഡുകൾ ഒഴിവാക്കാൻ --no-color ഉപയോഗിക്കുക.
• മോഡലിന് മൂന്ന് വരികൾ കോൺടെക്സ്റ്റ് (context) നൽകാൻ -U3 ഉപയോഗിക്കുക.
• കൃത്യമായ ഫലങ്ങൾക്കായി (deterministic results) temperature 0 ആയി സെറ്റ് ചെയ്യുക.
• സ്റ്റൈൽ, പേരിടൽ രീതികൾ (naming preferences) എന്നിവ അവഗണിക്കാൻ ഒരു പ്രത്യേക സിസ്റ്റം പ്രോംപ്റ്റ് ഉപയോഗിക്കുക.
ലോജിക് പിശകുകൾ (logic errors), null access, സെക്യൂരിറ്റി പ്രശ്നങ്ങൾ എന്നിവയിൽ മാത്രം മോഡൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ നിർദ്ദേശിക്കുക. എന്തൊക്കെ അവഗണിക്കണമെന്ന് അതിനോട് പറയുക. ഒരു ചെറിയ മോഡലിനോട് എന്തൊക്കെ കണ്ടെത്തണം എന്ന് പറയുന്നതിനേക്കാൾ ഫലപ്രദം എന്തൊക്കെ റിപ്പോർട്ട് ചെയ്യരുത് എന്ന് പറയുന്നതാണ്.
ലോക്കൽ മോഡലുകൾക്കായുള്ള ഒരു പ്രായോഗിക വർക്ക്ഫ്ലോ (workflow):
• നിങ്ങളുടെ git hook-നായി qwen2.5-coder:7b ഉപയോഗിക്കുക.
• വേഗത്തിലുള്ള ലോക്കൽ ടെസ്റ്റിംഗിനായി qwen2.5-coder:1.5b ഉപയോഗിക്കുക.
• ഉയർന്ന തീവ്രതയുള്ള (high severity) ബഗുകൾ കണ്ടെത്തിയാൽ മാത്രം കമിറ്റുകൾ ബ്ലോക്ക് ചെയ്യുക.
• ഇടത്തരം (medium), കുറഞ്ഞ (low) തീവ്രതയുള്ള കണ്ടെത്തലുകൾ നിർദ്ദേശങ്ങൾ (advisory) മാത്രമായി നിലനിർത്തുക.
ലോക്കൽ മോഡലുകൾ സ്റ്റാഫ് എഞ്ചിനീയർമാരല്ല. ഒന്നിലധികം ഫയലുകളിലായി വ്യാപിച്ചു കിടക്കുന്ന സങ്കീർണ്ണമായ ലോജിക്കുകൾ അവയ്ക്ക് കണ്ടെത്താൻ കഴിയില്ല. അവ തെറ്റായ വിവരങ്ങളും (false positives) നൽകിയേക്കാം. എന്നിരുന്നാലും, 'missing awaits' അല്ലെങ്കിൽ തെറ്റായ ഓപ്പറേറ്ററുകൾ (wrong operators) പോലുള്ള ചെറിയ തെറ്റുകൾ അവ കൃത്യമായി കണ്ടെത്തും.
ഒരു pull request-ലേക്ക് എത്തുന്നതിന് മുമ്പ് തന്നെ അശ്രദ്ധമായ ബഗുകൾ കണ്ടെത്താൻ ഈ ടൂൾ ഉപയോഗിക്കുക. ഇത് നിങ്ങളുടെ ടീമിന്റെ സമയം ലാഭിക്കുകയും കോഡ് വൃത്തിയായി സൂക്ഷിക്കുകയും ചെയ്യും.
ഓപ്ഷണൽ ലേണിംഗ് കമ്മ്യൂണിറ്റി: https://t.me/GyaanSetuAi