Code Scanner: Как мы прикрутили локальные LLM для поиска багов в коде, не сливая его в облако

Code Scanner: Как мы прикрутили локальные LLM для поиска багов в коде, не сливая его в облако

Привет! На связи команда Ubego (Ubego.quest). Мы, как и многие, "подсели" на AI-ассистентов в кодинге. Но каждый раз, когда нужно проверить чувствительный кусок кода или прогнать через анализ весь легаси-модуль, возникал вопрос: "А стоит ли отправлять это во внешний API?".

Плюс, копипастить файлы в чат — утомляет.

Так появился Code Scanner — наш open-source инструмент, который позволяет натравить AI на ваш локальный репозиторий, используя локальные же модели (идеально работает с LM Studio). Без VPN, без сливов данных, и не требует топового железа (обычной RTX 3060 хватает с головой).

Что он умеет?

  1. Сканировать проект целиком: Проходит по всем файлам (учитывая .gitignore).
  2. Умное разбиение: Режет файлы на куски, которые влезают в контекст модели.
  3. Анализ: Ищет баги, уязвимости, Code Smells и просто плохой стиль.
  4. Отчеты: Выдает красивый 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, мы там тоже много интересного пилим.

Начать дискуссию