Создайте локального 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 для быстрого локального тестирования. • Блокируйте коммиты только при обнаружении багов высокой степени критичности (high severity). • Пусть замечания средней и низкой степени критичности будут носить рекомендательный характер.

Локальные модели — это не staff engineers. Они могут упускать сложную логику, охватывающую несколько файлов, а также выдавать ложноположительные результаты. Однако они отлично находят мелкие ошибки, такие как пропущенные await или неверные операторы.

Используйте этот инструмент, чтобы отлавливать небрежные ошибки до того, как они попадут в pull request. Это сэкономит время вашей команде и поможет поддерживать чистоту кода.

Источник: https://dev.to/pavelespitia/building-a-local-ai-code-reviewer-with-ollama-that-catches-bugs-before-your-team-49d3

Опциональное сообщество для обучения: https://t.me/GyaanSetuAi