Створіть локального AI-рев'юера коду за допомогою Ollama
Ваш CI «зелений», але поверхневий. Колега може пропустити просту помилку через зайнятість. Ви можете створити «другу пару очей» за допомогою локальної LLM.
Ви можете створити TypeScript CLI, який перевірятиме ваш staged git diff перед комітом. Це забезпечує конфіденційність вашого коду. Інструмент не потребує API-ключів або хмарних провайдерів.
Як працює інструмент:
• Отримуйте staged diff за допомогою git diff --cached.
• Надсилайте diff в Ollama зі спеціальним промптом.
• Запитуйте вивід у форматі JSON та валідуйте його за допомогою Zod.
• Виводьте результати в термінал.
• Налаштуйте його як pre-commit hook.
Технічні рішення для кращих результатів:
• Використовуйте --no-color, щоб видалити ANSI-коди з промпту.
• Використовуйте -U3, щоб надати моделі три рядки контексту.
• Встановіть temperature на 0 для детермінованих результатів.
• Використовуйте спеціальний системний промпт, щоб ігнорувати вподобання щодо стилю та іменування.
Зосередьте модель на логічних помилках, зверненні до null та проблемах безпеки. Скажіть їй, що ігнорувати. Повідомити маленькій моделі, про що не варто повідомляти, ефективніше, ніж вказувати, що саме шукати.
Практичний робочий процес для локальних моделей:
• Використовуйте qwen2.5-coder:7b для вашого git hook.
• Використовуйте qwen2.5-coder:1.5b для швидкого локального тестування.
• Блокуйте коміти лише при виявленні помилок високої критичності.
• Помилки середньої та низької критичності нехай будуть лише рекомендаціями.
Локальні моделі — це не staff engineers. Вони пропускають складну логіку, що охоплює кілька файлів, а також можуть видавати хибнопозитивні результати. Проте вони вловлюють дрібні помилки, як-от відсутність await або неправильні оператори.
Використовуйте цей інструмент, щоб виявляти необережні помилки до того, як вони потраплять у pull request. Це заощаджує час вашій команді та допомагає підтримувати чистоту коду.
Optional learning community: https://t.me/GyaanSetuAi