Code Scanner: Как мы прикрутили локальные LLM для поиска багов в коде, не сливая его в облако
Привет! На связи команда Ubego (Ubego.quest). Мы, как и многие, "подсели" на AI-ассистентов в кодинге. Но каждый раз, когда нужно проверить чувствительный кусок кода или прогнать через анализ весь легаси-модуль, возникал вопрос: "А стоит ли отправлять это во внешний API?".
Плюс, копипастить файлы в чат — утомляет.
Так появился Code Scanner — наш open-source инструмент, который позволяет натравить AI на ваш локальный репозиторий, используя локальные же модели (идеально работает с LM Studio). Без VPN, без сливов данных, и не требует топового железа (обычной RTX 3060 хватает с головой).
Что он умеет?
- Сканировать проект целиком: Проходит по всем файлам (учитывая .gitignore).
- Умное разбиение: Режет файлы на куски, которые влезают в контекст модели.
- Анализ: Ищет баги, уязвимости, Code Smells и просто плохой стиль.
- Отчеты: Выдает красивый Markdown или JSON, который можно автоматически пушить в коммент к Pull Request.
Как это работает "под капотом"? Code Scanner написан на Python. Мы используем простую, но эффективную логику для общения с API (будь то OpenAI-compatible API от LM Studio или реальный OpenAI). В конфиге config.toml можно задать всё: от системного промпта до списка исключений.
Пример конфига (для LM Studio):
[llm]
provider = "lm-studio"
model_name = "deepseek-coder-v2"
base_url = "http://localhost:1234/v1"
Зачем вам это?
- Приватность: Ваш код никуда не уходит.
- CI/CD: Можно встроить в пайплайн и валить билд, если AI нашел критичные баги.
- Refactoring: Отлично помогает найти места, которые "пахнут", но глаз замылился.
Где взять? Проект полностью открытый (MIT License). GitHub: https://github.com/ubego/AI-Code-Scanner
Будем рады звездам, ишью и пулл-реквестам. И заходите посмотреть наш основной проект — Ubego.quest, мы там тоже много интересного пилим.