Вайб-кодинг с Aider и Ollama
Вайб-кодинг с Aider и Ollama

Aider — это open source программа для вайб-кодинга в терминале с подключением любых LLM-моделей.

Для локального вайб-кодинга понадобятся: Ubuntu, Docker, make и видеокарта (либо арендованный сервер). Далее набираем шесть несложных команд и ловим вайб.

Запуск Ollama

Для NVIDIA

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Для AMD

docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

Загружаем модель

docker exec -it ollama ollama pull qwen2.5-coder:32b-instruct-q4_K_M

Для этой модели требуется 24 Гб видеопамяти. Можно выбрать любую другую. Далее по тексту следует заменить её имя на выбранную.

Запуск Aider

git clone https://github.com/HardAndHeavy/aider-docker
cd aider-docker
make gen # Нажмите клавишу Enter, чтобы установить значения по умолчанию
make run

Команда make gen создаёт 4 файла:

  • .aider.conf.yml — устанавливает по умолчанию модель и файлы контекста (правила проекта, описание реализованных задач (ТЗ и ключевые моменты реализации));

  • .aider.model.settings.yml — расширяет контекст согласно рекомендации;

  • .env — хранит переменную OLLAMA_API_BASE для связи Aider с Ollama;

  • CONVENTIONS.md — правила проекта. Например, на каком языке будет вестись разработка, какие библиотеки будут предпочтительными и любые архитектурные решения, которых следует придерживаться.

Команда make run передаёт настройки в контейнер и запускает Aider:

  • -v ./config:/config - передаёт сгенерированную настройку;

  • -e USER=$USER - устанавливает пользователя контейнера Aider текущим пользователем;

  • -v $(HOME):$(HOME) - передаёт локальные настройки пользователя, для того чтобы Aider мог коммитить под текущим пользователем;

  • -v $(APP_DIR):/app - подключает папку проекта.

Вайб-кодинг

Постановка задачи
Постановка задачи
Генерация кода
Генерация кода
Проверка программы
Проверка программы

Мой телеграм-канал, в котором я коплю мысли для будущих статей.

Комментарии (5)


  1. achekalin
    22.05.2025 21:50

    Вот сложно автору было первый абзац посвятить тому что такое aider? Как ollama запускать, вроде писано на Хабре немало (причем, часто новичками, которые где-то пару команд осилили найти, но все же).

    Ну вот хотя бы так:

    Aider — это инструмент с искусственным интеллектом, предназначенный для помощи в написании и редактировании кода. Работая через командную строку, он интегрируется с моделями GPT, чтобы анализировать код в реальном времени, предлагать правки, генерировать новые функции или исправлять ошибки. Пользователь может взаимодействовать с ним через текстовый чат, описывая задачу, а Aider автоматически вносит изменения в файлы проекта, сохраняя контекст кодовой базы. Это упрощает разработку, сокращая время на рутинные операции и минимизируя переключение между редактором и внешними сервисами.

    Примеры использования:

    1. Отладка кода — например, разработчик сталкивается с ошибкой в Python-скрипте. Aider анализирует сообщение об ошибке, находит проблему в синтаксисе или логике и предлагает исправление.

    2. Добавление функционала — при создании веб-приложения на Flask пользователь может запросить реализацию API-эндпоинта. Aider сгенерирует код для маршрута, обработки запросов и интеграции с базой данных, адаптируя его под существующую структуру проекта.

    https://aider.chat/


    1. Soloist Автор
      22.05.2025 21:50

      Спасибо.


  1. holgw
    22.05.2025 21:50

    Aider как инструмент выглядит очень перспективно -- опенсурсный, не прибит гвоздями к IDE, умеет работать с git, поддерживает OpenAI API.

    Но есть и минусы.

    1) Длинные промпты в терминале писать неудобно (нет форматирования, как минимум).

    2) Каждый сеанс -- это лотерея. Может целиком очистить файл переписав содержимое, может в рандомное место воткнуть результат генерации. Возможно это проблема слабых моделей (хотя Qwen2.5-Coder-32B-Instruct не такая уж и слабая модель).

    3) Быстро ест токены. Если пользуешься платной подпиской с ограничением на кол-во токенов, то это может быть критично. Это не минус непосредственно aider'a -- очевидно что агент будет вокруг исходного пользовательского запроса накручивать еще собственную нагрузку в виде дополнительных запросов и от этого никуда не денешься.

    4) Работа с контекстом это просто геморрой. Добавлять в контекст руками все нужные файлы каждый раз сильно утомляет. Фактически, съедает весь профит от использования инструмента. Особенно раздражает когда читаешь ответ модели и понимаешь, что получилась полная чушь из-за того что ты один из классов забыл добавить в контекст. И теперь надо чистить диалог, заново добавлять файлы, писать промпт и ждать нового результата.

    Короче, я в итоге почти отказался от использования aider. В 99% процентов случаев проще кинуть запрос к модели напрямую и ответ просто скопипастить куда надо.

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


    1. egribanov
      22.05.2025 21:50

      Пункт 2 проблема всех моделей, даже sonet 3.7 так делает

      Посоветую void editor, альтернатива курсору, на гитхабе лежит


    1. HiItsYuri
      22.05.2025 21:50

      Ох не знаю на счёт qwen3b, у меня она показывала отвратительные результаты. Даже дипсик лучше справлялся.