Почему все плагины хотят интернет?
Вы открываете PyCharm или VS Code. Видите предложение установить AI-дополнение. Нажимаете "Установить". И попадаете в ловушку: плагин требует API-ключ, облачный сервис, ежемесячную подписку. Ваш код летит куда-то в Калифорнию, а вы платите за эту привилегию.
Ollama? Да, он локальный. Но он требует установки целого сервера, работает через REST API и иногда ведет себя как капризный ребенок - зависает на полуслове, требует танцев с бубном.
Проблема: все хотят ваши данные. Copilot, ChatGPT, Claude - они кормятся вашим кодом. А потом этот код появляется у конкурентов. Или в тренировочных датасетах. Или где-то еще.
Что нам нужно на самом деле?
Не супер-интеллект. Не GPT-5. Нам нужно:
- Дополнять следующую строку кода
- Понимать контекст файла
- Работать оффлайн
- Не есть всю оперативку
- Не отправлять код в облако
Все. Никаких разговоров, никаких чатов, никаких генераций целых микросервисов. Просто автодополнение. Как Tabnine, но локальное и бесплатное.
Стек, который работает (а не обещает)
Забудьте про Ollama. Забудьте про LM Studio. Мы будем использовать старый добрый llama.cpp - он быстрый, легкий и не требует лишнего. Плюс koboldcpp как API-сервер. И плагин для IDE, который умеет работать с локальным сервером.
| Компонент | Зачем нужен | Альтернативы |
|---|---|---|
| llama.cpp | Инференс модели на CPU/GPU. Самая оптимизированная C++ реализация. | Нет. Серьезно, не ищите. |
| Qwen3-Coder-7B-Instruct-GGUF | Модель для кода от Alibaba. Работает на 8 ГБ VRAM или 16 ГБ RAM. | DeepSeek-Coder, CodeLlama, StarCoder2 |
| koboldcpp | Обертка над llama.cpp с HTTP API. Поднимает локальный сервер. | llama.cpp server (но он сырой) |
| Continue (VS Code) / CodeGPT (PyCharm) | Плагины для IDE с поддержкой локальных серверов. | Tabby, Windsurf (но они сложнее) |
Шаг 1: Качаем модель (правильную)
Не берите первую попавшуюся. На февраль 2026 года лучший баланс качества и размера - Qwen3-Coder-7B-Instruct. У нее есть GGUF-версия с квантованием Q4_K_M - это золотая середина между качеством и скоростью.
1 Скачиваем модель
# Создаем папку для моделей
mkdir -p ~/models/code
cd ~/models/code
# Качаем Qwen3-Coder-7B-Instruct
# Используем wget или curl
wget https://huggingface.co/Qwen/Qwen3-Coder-7B-Instruct-GGUF/resolve/main/qwen3-coder-7b-instruct-q4_k_m.gguf
# Или если wget нет
curl -L -o qwen3-coder-7b-instruct-q4_k_m.gguf \
https://huggingface.co/Qwen/Qwen3-Coder-7B-Instruct-GGUF/resolve/main/qwen3-coder-7b-instruct-q4_k_m.gguf
Размер файла: ~4 ГБ. Убедитесь, что есть место. Если нет - возьмите Qwen3-Coder-1.5B, но качество будет заметно хуже.
Шаг 2: Ставим llama.cpp и koboldcpp
Не устанавливайте из репозиториев - там старые версии. Собирайте из исходников. Это не так страшно, как кажется.
2 Сборка llama.cpp
# Клонируем репозиторий
cd ~
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# Собираем с поддержкой CUDA (если есть NVIDIA)
# Для Linux/macOS
make LLAMA_CUDA=1
# Для Windows (в PowerShell)
# cmake -B build -DLLAMA_CUDA=ON
# cmake --build build --config Release
3 Установка koboldcpp
# Качаем последнюю версию koboldcpp
cd ~
wget https://github.com/LostRuins/koboldcpp/releases/download/v2.0/koboldcpp-linux-cuda
# Делаем исполняемым
chmod +x koboldcpp-linux-cuda
# Для Windows качаем .exe версию
# Для macOS - соответствующую бинарку
Koboldcpp - это просто обертка. Она запускает llama.cpp с правильными параметрами и поднимает HTTP-сервер.
Шаг 3: Запускаем сервер (правильно)
Здесь большинство ошибается. Запускают с дефолтными параметрами, получают 2 токена в секунду и говорят "локальный AI - отстой".
4 Оптимальный запуск
# Переходим в папку с koboldcpp
cd ~
# Запускаем с оптимизациями
./koboldcpp-linux-cuda \
--model ~/models/code/qwen3-coder-7b-instruct-q4_k_m.gguf \
--port 5001 \
--threads 8 \
--blasbatchsize 512 \
--contextsize 4096 \
--usecublas \
--gpulayers 35
Что здесь важно:
- --threads 8: используем все ядра CPU (если нет GPU)
- --usecublas: включаем CUDA (если есть NVIDIA)
- --gpulayers 35: сколько слоев загружать на GPU. Для 7B модели и 8 ГБ VRAM - 35-40
- --contextsize 4096: размер контекста. Больше - лучше, но медленнее
Шаг 4: Настраиваем IDE
Теперь подключаем IDE к локальному серверу. Для VS Code и PyCharm подходы разные, но суть одна.
5 VS Code: плагин Continue
- Устанавливаем плагин "Continue" из Marketplace
- Открываем настройки (Ctrl+,)
- Ищем "Continue"
- В config.json добавляем:
{
"models": [
{
"title": "Local Qwen Coder",
"provider": "openai",
"model": "gpt-3.5-turbo",
"apiBase": "http://localhost:5001/v1",
"apiKey": "not-needed"
}
],
"tabAutocompleteModel": {
"title": "Local Qwen Coder",
"provider": "openai",
"model": "gpt-3.5-turbo",
"apiBase": "http://localhost:5001/v1",
"apiKey": "not-needed"
}
}
Да, мы притворяемся, что это OpenAI API. Koboldcpp поддерживает этот протокол.
6 PyCharm: плагин CodeGPT
- Устанавливаем CodeGPT из Marketplace
- File → Settings → Tools → CodeGPT
- Выбираем "Custom" как провайдер
- URL: http://localhost:5001/v1
- Model: gpt-3.5-turbo (да, снова обман)
- API Key: любая строка (например, "local")
Важно: в PyCharm CodeGPT может не работать с автодополнением, только с чатом. Для автодополнения в PyCharm лучше использовать Tabby - но его сложнее настроить.
Что пойдет не так (и как это починить)
Вы запустили. Ничего не работает. Или работает, но предлагает ерунду. Знакомо?
Проблема 1: "Connection refused"
Сервер не запустился. Проверьте:
# Проверяем, слушает ли порт 5001
netstat -tulpn | grep 5001
# Или
curl http://localhost:5001/v1/models
Если нет ответа - koboldcpp не запущен. Ищите ошибки в логах запуска.
Проблема 2: Модель не загружается
Не хватает памяти. Для Qwen3-Coder-7B нужно:
- Или 8 ГБ VRAM (с --gpulayers 35)
- Или 16 ГБ RAM (без GPU)
Если памяти мало - возьмите Qwen3-Coder-1.5B или уменьшите --gpulayers.
Проблема 3: Дополнения - бред
Модель не понимает контекст. Увеличьте --contextsize до 8192. И проверьте промпт.
Секрет: koboldcpp по умолчанию использует чатовый промпт. А нам нужно дополнение кода. Нужно настроить плагин на правильный промпт.
Для Continue в VS Code добавьте в config.json:
{
"tabAutocompletePrompt": {
"template": "Complete the following code. Return ONLY the code completion, no explanations.\n\nCode:\n{{code_prefix}}\n\nCompletion:",
"provider": "openai",
"model": "gpt-3.5-turbo"
}
}
Почему это лучше Copilot (иногда)
Да, Copilot умнее. Да, он быстрее. Но:
- Он не видит ваш приватный код (если не разрешили)
- Он стоит $10/месяц
- Он требует интернет
- Он отправляет код в Microsoft
Наша связка:
- Работает в самолете
- Никуда не отправляет код
- Бесплатная (кроме электричества)
- Можно дообучить на своем коде
Как говорилось в "Локальный ИИ против Copilot" - иногда приватность важнее скорости.
А если хочется больше?
Эта настройка дает базовое автодополнение. Но если нужен полноценный AI-ассистент с планированием, исправлением ошибок, рефакторингом - смотрите "Идеальный стек".
Там описывается связка локальной LLM с LSP-сервером, линтерами и системой авто-исправления. Это уже уровень Cursor AI, но локально.
Совет на будущее: сохраните эту инструкцию. Через год, когда выйдет Qwen4-Coder и все плагины перестанут работать со старыми API, она еще пригодится. Локальный AI - это не про "установил и забыл". Это про контроль. Даже если этот контроль требует времени.
P.S. Если все работает - попробуйте заменить Qwen3-Coder на DeepSeek-Coder-V2. Он больше (16B), но умнее. Только убедитесь, что хватит памяти. Или дождитесь Qwen4-Coder - обещают на февраль 2026.