Обновить

Комментарии 15

ЗакрепленныеЗакреплённые комментарии

UPDATE (Alpha 0.3.5): Упростили синтаксис!

В версии Alpha 0.3.5 мы отказались от обязательного использования флага --command. Теперь работа с CLI стала интуитивнее и быстрее.

Было: codefox --command scan

Стало: codefox scancodefox init соответственно).

Чтобы обновиться до актуальной версии, выполните:
pip install --upgrade codefox

или

uv tool upgrade codefox

Не смог запустить локально, простите) команда init просит токен ollama, что уже странно для локального запуска, потом scan выдает Failed to connect to mode: model 'gemma3:12b' not found (status code: 404) даже если конфиг из статьи подсунуть. Не интуитивно в общем :)

Добрый день! Спасибо за честный фидбек, вы абсолютно правы - сейчас этот шаг выглядит неинтуитивно, простите за путаницу! 🙏

Позвольте пояснить, как это исправить прямо сейчас:

  1. Запрос токена: Команда init просит токен, так как мы заложили поддержку облака Ollama Cloud. Но для работы строго локально этот шаг нужно просто пропустить (ввести null ). Вы правы, для локального инструмента это сбивает с толку. В следующем минорном патче я сделаю локальный режим дефолтным, чтобы токен запрашивался только при явном выборе облака.

  2. Ошибка 404 (model not found): Эта ошибка от самой Ollama означает, что на вашем жестком диске еще нет весов этой модели. CodeFox пока не умеет скачивать их автоматически. Чтобы всё заработало, нужно предварительно выполнить в терминале: ollama pull gemma3:12b (или имя той модели, которую вы выбрали).

Посмотреть скачанные у вас модели можно командой codefox --command list (или на локальной машине через команду ollama list).

В следующий версии обязательно добавим авто-скачивание моделей и уберу обязательный вопрос про токен в новой Alpha-версии. Будем рады, если дадите инструменту второй шанс!

Да, заработало, спасибо! Пробую на codellama

Звезду на гитхабе влепил, мне нравится, будут обкатывать!

UPDATE (Alpha 0.3.5): Упростили синтаксис!

В версии Alpha 0.3.5 мы отказались от обязательного использования флага --command. Теперь работа с CLI стала интуитивнее и быстрее.

Было: codefox --command scan

Стало: codefox scancodefox init соответственно).

Чтобы обновиться до актуальной версии, выполните:
pip install --upgrade codefox

или

uv tool upgrade codefox

Вот бы еще этот инструмент умел запускаться в пайлайне CI/CD Gitlab и писать inline комментарии прямо в Merge Request. Планируется такая функциональность?

Добрый день! Да, 100% планируется! :-)
Для пайплайнов мы готовим отдельную утилиту - это будут полноценные боты для GitLab CI и GitHub Actions, которые смогут делать ревью и писать inline-комментарии прямо в Merge Request

В качестве пожелания - было бы круто предусмотреть возможность подключения дополнительных MCP серверов. Например для периодической векторизации кода и метаданных проекта, для подключения собственных правил стат. анализа, интеграции с внешними источниками знаний (документация, ADR, архитектурные решения).
Тогда ревью в MR сможет опираться не только на diff текущего изменения, но и на накопленный контекст по репозиторию. Может сильно повысить качество cr

Спасибо большое за развернутое пожелание! Да, мы как раз смотрим в эту сторону. Интеграция с MCP-серверами идеально ложится в нашу концепцию умного ревью. Одно дело - просто читать соседние файлы через RAG, и совсем другое - дать модели доступ к ADR и документации проекта при ревью Merge Request'ов. Это у нас уже есть в планах на следующие мажорные версии)

уже есть давно такие инструменты

Всё так, инструментов действительно много.
Но большинство из них - либо платные SaaS-решения, либо довольно простые скрипты, которые требуют отправки кода во внешний API.

Наша цель - сделать open-source инструмент, который:

  1. может работать внутри изолированного контура (On-Premise);

  2. поддерживает локальные модели вроде Ollama;

  3. и понимает контекст проекта через RAG.

Кстати, а какие из существующих ботов вы пробовали на практике?
Буду признателен, если поделитесь, что в них понравилось, а что раздражало - это сильно поможет нам не наступить на чужие грабли 🙂

Даже не пробуйте. Для нормального анализа больших данных из rag нужна хорошая llm с нормальной контекстной длиной, а это только "поиграться" типа : " сколько у птички ножек ? "

Справедливое замечание - если пытаться запихнуть весь проект в 7B модель.
Но архитектура CodeFox работает иначе.

Во-первых, мы не привязаны к одной LLM. В конфиге можно переключиться на Gemini или любой API через OpenRouter (GPT-4, Claude и т.д.), где с длиной контекста проблем нет.

Во-вторых, RAG не предназначен для загрузки “больших данных” в контекст. Его задача - точно извлечь релевантные куски.

В нашем случае это обычно 2–3 файла, связанные с Merge Request.

Для пре-коммит ревью этого более чем достаточно, чтобы ловить реальные баги, а не считать ножки у птичек 🙂

Круто!

Я сам для компании писал аналогичный софт, но мне и компании не нравятся локальные llm и то что выдает гитхаб. Сделал на основе copilot cli (позднее перешёл на sdk).

У меня идёт бесконечный опрос целевых репозиториев, когда появляется запрос ревью у аккаунта бота - скачиваю дифф.

У нас они как правило большие, так что сразу разбиваю на чанки по ханкам.

Далее запускаю агента(cli/sdk) на репозитории и скармливаю чанки по очереди.

Результат работы агент сразу пишет в файл json.

Была трабла с номерами строк, агент часто их путает или пытается комментить старые строки. Оказало проще заставить агента писать абсолютный номер строки в его дифе, а уже затем конвертировать в line+side и фильтровать.

Результат по апи в виде комментариев к конкретным строкам кода, часто с susgestions.

Хочу попробовать вначале каждой строки прописать уникальный хэш, читал что одному парню удалось так улучшить навигацию агента по строкам.

Минусы подхода:

  • Работа через облако, хотя никто не мешает подключить локальную ллм к агенту

  • Требует подписки копилота для аккаунта бота

Плюсы:

  • Возможность юзать крутые модели (у нас используется sonnet 4.6)

  • Переваривает все диффы, за счёт чанкованмя

  • Работает автоматически, т.к. крутится на билд машине.

  • Расширяется с mcp

  • Это полноценный агент способный к параллельному изучению кода, а не только раг.

P.S. будете применять мой опыт - упомяните где-нибудь в репе)

t.me/dezmontdexa

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации