Локальный ИИ-помощник по программированию с Ollama
В этой главе настраивается специализированная локальная модель для программирования example-coder и подключается к VS Code и Claude Code, создавая полностью офлайн-ассистента для программирования, не требующего токенов.
Основная работа включает три вещи: выбор подходящей модели для кода, написание надёжного Modelfile для программирования и интеграция её в удобный инструмент.
Шаг 1: Выбор модели для кода — VRAM решает
Модели для кода демонстрируют более заметные различия в возможностях, чем чат-модели, но и порог входа выше. Выбирайте в соответствии с вашей VRAM:
| Ваше оборудование | Рекомендуемая модель | Ожидаемая производительность |
|---|---|---|
| 24GB+ VRAM | qwen3-coder | Специализированные модели для кода обеспечивают наилучшее понимание в рамках нескольких файлов; параметры уровня 30B требуют большого объёма VRAM, а длинные контексты — ещё большего запаса. |
| 16GB RAM без дискретного GPU | qwen3.5:9b, кастомная версия | Достаточно для повседневного автодополнения, объяснения кода и написания модульных тестов |
| Старый компьютер с 8GB RAM | qwen3.5:4b / 0.8b, кастомная версия | Лёгкие вопросы и ответы; сложные задачи оставьте облаку |
Если вашего объёма VRAM недостаточно для запуска qwen3-coder, не стоит сожалеть: используйте тег :cloud, чтобы напрямую вызвать облачную версию. Командам с чувствительным кодом следует сначала провести проверку на соответствие требованиям.
Выполните pull в соответствии с вашим оборудованием:
ollama pull qwen3-coder # 24GB+ 显存 ollama pull qwen3.5:9b # 16GB 内存
Шаг 2: Напишите Modelfile для сценариев программирования
Базовая модель умеет писать код, но она не «профессиональна»: нет комментариев, легко уходит от темы и неаккуратное форматирование. Используйте Modelfile, чтобы закрепить стандарты кодирования:
Пример
# Если у вас 24GB+ VRAM, замените базовую модель на qwen3-coder
FROM qwen3.5:9b
СИСТЕМА """
Вы — ассистент по программированию команды EXAMPLE. Следуйте этим правилам:
1. Предпочитайте полный, непосредственно запускаемый код фрагментам
2. Пишите комментарии на китайском для каждого ключевого шага, объясняя"почему""
3. Следуйте PEP 8 (Python) или официальному стилю языка
4. Когда задействованы незнакомые API, напоминайте сверяться с официальной документацией; не выдумывайте интерфейсы
5. Структура ответа: идея одним предложением — код — примечания
"""
# Для сценариев с кодом сохраняйте стабильность; уменьшите случайность
PARAMETER temperature 0.2
# Сценарии Agent/редактора имеют большой контекст кода; обеспечьте достаточное окно
PARAMETER num_ctx 65536
Соберите свою специализированную модель для программирования:
ollama create example-coder -f Modelfile
Чтобы проверить, была ли она "правильно настроена", протестируйте её на трёх стандартных задачах: сделайте функцию сразу пригодной к использованию (проверка полноты), объясните фрагмент устаревшего кода с подводными камнями (проверка понимания) и попросите её написать модульные тесты (проверка соответствия стандартам). Подключайте её к редактору только после того, как все три будут пройдены.
num_ctx 65536 предназначен для сценариев редактора и Agent: в них в контекст помещается целый файл или даже несколько файлов. При нехватке VRAM уменьшите его до 32768 и с помощью ollama ps проверьте, по-прежнему ли PROCESSOR использует 100% GPU.
Шаг 3: Подключите его к вашему редактору
Пользовательские и базовые модели ничем не отличаются с точки зрения инструментов. Способ интеграции точно такой же, как в главе 11.
Интеграция с чатом VS Code
После установки официального расширения Ollama выберите example-coder в селекторе модели чата. Никакой другой настройки не требуется.
Интеграция Claude Code
Пример
ollama launch claude --model example-coder
# Ручной способ: укажите в переменных окружения локальный адрес и используйте имя пользовательской модели
export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model example-coder
После интеграции возможности Claude Code по редактированию файлов, выполнению команд и многораундовому рефакторингу обеспечиваются локальной моделью. Перед запуском длительных задач не забудьте проверить, что контекстное окно настроено так, как описано выше.
Сравнение производительности и стратегия переключения моделей
Для разных задач следует использовать модели разных размеров. Закрепите стратегию выбора, чтобы не спорить каждый раз:
| Тип задачи | Рекомендуемая модель | Причина |
|---|---|---|
| Автодополнение функций, объяснение кода, написание модульных тестов | example-coder (локальный) | Быстрый, бесплатный, приватный |
| Межфайловый рефакторинг, сложная отладка | qwen3-coder или облачный флагман | Требует более сильного понимания длинного контекста |
| Пакетная генерация, скриптовая обработка | Локальная небольшая модель + API | Большой объём при нулевой стоимости |
Стоимость переключения должна быть достаточно низкой, чтобы вы действительно переключились:
Пример
/load qwen3-coder
# В VS Code просто нажмите на селектор модели
# Укажите с помощью --model при запуске Claude Code
Другие расширенияПрактичная комбинированная стратегия: позвольте локальной небольшой модели обрабатывать 90% повседневных запросов, а переключайтесь на большую модель или облачную модель только при столкновении с действительно сложными задачами. Сосуществование нескольких тегов в Ollama делает эту «многоуровневую» стратегию полностью свободной от затрат на переключение.