Comments 16
Реву это состояние после кода ревью на утро пятницы?)
А какже sonarqube?
И второй момент, ReVu работает только в контексте изменений в PR, или же в целом по всей кодовой базе и анализирует, или хотя бы в котексте соседнего кода? И сохраняет ли он историю по ревью?
А где технические подробности? Что улетает в контекст для LLMки, используются ли RAGи, и если да, то как для них нарезается исходный код? Как подбирались промпты, и какие они сейчас? Есть ли ограничения по языкам программирования?
Локальный запуск LLM для ревью прямо внутри раннера гитхаба — мечта.
Что улетает в контекст для LLMки
Ответ есть в статье:
ИИ анализирует
diff
и оставляет комментарии по коду
Улетает diff, а также название и описание PR. На данный момент это всё. Как отвечал выше, в будущем планирую реализовать передачу в контекст прошлых комментариев при дополнении PR'а, чтобы ответ не повторялся.
используются ли RAGи
RAG не используется, но подумаю над этим.
Как подбирались промпты, и какие они сейчас?
Промпты сейчас не в лучшем виде, они есть в репозитории. Пока, что они на русском и с зашитым ответом на русском, впоследствии реализую систему кастомных промптов и расширю имеющиеся.
Есть ли ограничения по языкам программирования?
Всё ограничивается используемым ИИ-провайдером и моделью. Если подключите локальную дообученную для питона, то будет не лучшая идея давать ей условную Java.
Локальный запуск LLM для ревью прямо внутри раннера гитхаба
Сомневаюсь, что у раннера гитхаба хватит для этого мощностей, но идея запускать проект в воркфлоу тоже есть, с подключением к ИИ на стороне.
Спасибо за статью, крутая реализация
Я недавно пробовал похожее решение для ревью https://habr.com/ru/articles/953598/. Он делает примерно то же самое, только запускается напрямую в CI/CD, без отдельного сервера
Я не видел)
Я не проверял, но как выше написал, я не думаю, что в раннере гитхаба можно запустить мощную модель, которая сможет более-менее хорошо обработать большой diff.
Спасибо, а для Gitea тоже поддерживается inline review?
Расскажите про свой опыт с разными моделями для ревью
Я тестировал пока только на трёх провайдерах (которые реализованы в проекте): OpenAI, GigaChat от Сбера и YandexGPT.
От OpenAI использую модель gpt-4.1-mini
, она достаточно дешева и выдаёт достойные комментарии. Их можно посмотреть в закрытых PR репозитория.
GigaChat на стандартной модели выдаёт крайне посредственные и ограниченные комментарии.
YandexGPT тестировал на стандартной модели yandexgpt
. Результат не совсем дотягивает до OpenAI, но вполне достойный.
Думаю, что подбирать модели буду в последствии, когда реализую других провайдеров и наведу порядок в промптах.
Я могу сказать по своему опыту, что все модели которые пробовал дают в основном полный мусор, который легко детектится обычными линтерами. Единственный кто достойно себя проявил, это gpt-5-codex, но для этого дифов мало, нужен глубокий анализ всего связанного с изменениями контекста, тогда есть шанс найти логические баги, все остальное это пустая трата токенов.
ReVu — Open Source AI-ревьюер для ваших Pull Request