Я: хочу автодополнение кода
Также я: у нас уже есть автодополнение кода дома
Автодополнение кода дома:

Привет, Хабр! Я Саша, разработчик из Cloud4Y. Хочу поделиться с вами своей идеей локального развёртывания нейросети для автодополнения кода. Есть идеи, как можно сделать это ещё лучше? С радостью послушаю.
Это руководство описывает, как развернуть локальную нейросеть с использованием Ollama в Docker — на удалённом сервере с GPU и на локальной машине через WSL. После установки и запуска модели вы сможете подключить её к вашей JetBrains IDE через плагин ProxyAI (ранее CodeGPT) и использовать нейросеть для автодополнения кода. Без сторонних облачных сервисов.
В этом примере мы будем использовать модель Qwen2.5-Coder на 14B параметров. Если у вас недостаточно VRAM, можете использовать модели на 7B, 3B, 1.5B, 0.5B.
Шаг 1. Подготовка окружения
Перед запуском нейросети убедитесь, что у вас есть одно из двух:
Удалённый сервер с GPU (Nvidia) с установленным Linux.
Локальная машина с Windows и WSL2 (Ubuntu).
Также необходимо, чтобы на машине уже были установлены: Docker, Docker Compose и Nvidia Container Toolkit (благодаря ему Docker‑контейнеры могут использовать GPU). Если этого ещё нет — установите по официальным инструкциям:
Проверьте, что всё работает корректно:
docker --version
docker compose version
nvidia-smi
Если на nvidia‑smi вы видите информацию о вашей видеокарте и она доступна в системе — можно переходить к следующему шагу.
Шаг 2. Запуск Ollama в Docker
Переходим к запуску Ollama в контейнере. Для этого создадим файл docker‑compose.yml в отдельной папке (например, ollama‑docker). Вот актуальный пример docker‑compose.yml (на момент написания используется версия 0.6.5, актуальную можно посмотреть здесь):
version: '3'
services:
ollama:
image: ollama/ollama:0.6.5
volumes:
- ./ollama:/root/.ollama
ports:
- 11434:11434
environment:
OLLAMA_KEEP_ALIVE: -1
runtime: nvidia
restart: unless-stopped
Что тут происходит:
image — версия Ollama, на момент написания последняя — 0.6.5.
volumes — сохраняем модели и настройки локально, чтобы не качать заново при перезапуске.
ports — пробрасываем порт 11434 наружу, именно через него будет работать API.
OLLAMA_KEEP_ALIVE: -1 — отключает автоотключение модели, чтобы она оставалась в памяти. В ином случае модель выгрузиться из памяти спустя 5 минут с последнего использования.
runtime: nvidia — позволяет контейнеру использовать GPU.
restart: unless-stopped — контейнер автоматически перезапускается при перезагрузке системы.
Запускаем контейнер:
docker compose up -d
Проверяем, что всё работает:
docker compose ps
docker compose logs
curl http://localhost:11434
Если всё корректно работает, после вызова curl http://localhost:11434 должна вывестись надпись: Ollama is running.
Шаг 3. Загрузка модели в Ollama
Загрузим модель qwen2.5-coder:14b:
docker compose exec ollama ollama pull qwen2.5-coder:14b
Запустим модель:
docker compose exec ollama ollama run qwen2.5-coder:14b
После запуска у вас появится чат, для выхода из которого используйте команду /bye.
Командой nvidia-smi можете посмотреть текущую загруженность видеокарты.
Проверим, что через curl всё работает корректно:
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5-coder:14b",
"prompt": "Напиши функцию на php, которая проверяет, является ли число простым.",
"stream": false
}'
Шаг 4. Установка плагина в JetBrains IDE
Из‑за определённых ограничений доступ к серверам JetBrains из России может быть затруднён. Это может повлиять на установку плагинов напрямую из интерфейса IDE. В таких случаях, возможно, придётся воспользоваться альтернативными способами — например, скачать нужный плагин вручную или использовать доступ через прокси.
На момент написания статьи плагин работает только с версии IDE 2022.3 и новее, более ранние версии не поддерживаются.
Установка плагина через интерфейс:
Откройте IDE и перейдите в Settings (или Preferences на Mac).
В меню слева выберите Plugins.
Нажмите на иконку Marketplace в правом верхнем углу.
В поисковой строке введите название плагина Proxy Ai (ранее CodeGPT).
Нажмите Install рядом с плагином, который хотите установить.
После установки перезапустите IDE, чтобы плагин активировался.
Установка плагина вручную (если доступ через интерфейс затруднён):
Перейдите на официальный сайт плагина или на другую платформу, где можно скачать плагин (например, GitHub).
Скачайте файл плагина в формате .zip или .jar.
Откройте IDE и перейдите в Settings (или Preferences на Mac).
В меню слева выберите Plugins.
Нажмите на иконку шестерёнки в правом верхнем углу и выберите Install Plugin from Disk.
В появившемся окне выберите файл с плагином, который вы только что скачали.
Нажмите OK и дождитесь, пока плагин будет установлен.
Перезапустите IDE для активации плагина.

Шаг 5. Настройка плагина
После того как плагин установлен, необходимо настроить подключение к локальной (или удалённой) нейросети, которую мы развернули через Ollama.
Откройте IDE и перейдите в меню: File → Settings (или Preferences на macOS).
В меню слева откройте Tools → ProxyAI.
В разделе Providers выберите тип подключения: Ollama (Local).
Укажите следующие параметры:
Base host: http://localhost:11434
(при использовании удаленного сервер, вместо localhost адрес будет содержать ip сервера; если вы работаете через WSL или с удалённым сервером — убедитесь, что порт проброшен и доступен с вашей машины)Model: qwen2.5-coder:14b
(можно заменить на 7b, 3b, 1.5b или 0.5b, если используете облегченную версию модели)
Активируйте автодополнение кода:
Поставьте галочку напротив Enable code completions.
Убедитесь, что включена опция Use built-in FIM template.

После применения этих настроек плагин будет отправлять ваш код в Ollama и получать локально сгенерированные подсказки, не покидая вашу машину или сервер.
Результат

Вот и всё. Если у вас есть вопросы или предложения, напишите в комментарии. Постараюсь ответить.
Всё то, о чём вы хотели спросить:
Почему Ollama? Удобно, универсально, корректно работает с разными версиями cuda, меньше всего заморочек с поднятием и настройкой, хорошо подключается в плагин.
Почему qwen2.5-coder? Качественная модель, очень быстро работает, подходит под плагин.
Немного про разницу в квантах Q4, Q6, Q8. Ollama для моделей по умолчанию использует Q4 качество. Это быстро, но бывает неточно. Можно использовать Q6 или Q8 для более точных ответов, но потребуется большее количество VRAM. Q4 — высокая скорость, худшее качество, меньше VRAM, Q6 — баланс между скоростью и качеством, средний VRAM, Q8 — лучшее качество, худшая скорость и большее потребление VRAM.
Будет ли qwen2.5-coder на 7b с Q8 лучше, чем qwen2.5-coder на 14b с Q4? Вопрос сложный, надо тестить. Также есть Q2, Q5 и так далее, по аналогии.
Почему Proxy AI (CodeGPT)? Самый простой и удобный вариант, просто устанавливаешь, в пару полей прописываешь подключение к ollama, выбираешь модель, ставишь две галочки и все работает. Альтернативы требуют куда больше усилий на настройку.
Спасибо за внимание. Ваш Cloud4Y. Читайте нас здесь или в Telegram‑канале!