{}const=>[]async()letfn</>var
ИИРазработка

Локальный ChatGPT в VS Code: Ollama, Continue и модель для кода

Настраиваем локальный AI-чат в VS Code через Ollama и Continue, выбираем отдельные модели для чата и автодополнения, ограничиваем контекст и проверяем localhost.

К

Кодик

Автор

6 мин чтения

Официальный ChatGPT локально в VS Code не запускается, но похожий приватный чат можно собрать на локальной модели через Ollama. Самый понятный путь: проверить модель в Ollama, установить Continue, указать provider ollama и назначить отдельную маленькую модель для autocomplete.

Ollama поднимает локальный API на компьютере, а расширение IDE отправляет ему выбранный контекст. VS Code также документирует интеграцию Ollama с Copilot Chat в локальном режиме, поэтому у пользователя есть несколько интерфейсов. Качество зависит от модели, памяти и объёма переданных файлов. Слово «локальный» нужно подтвердить проверкой endpoint и сетевых настроек каждой роли. Перед рабочим проектом проверьте связку на отдельной папке с двумя файлами, чистым Git и простым тестом.

1Ollama

Скачивает модель и обслуживает локальный API.

2Continue

Добавляет chat, edit и autocomplete в VS Code.

3Две модели

Чат требует качества, autocomplete требует низкой задержки.

Continue шлёт контекст на localhost:11434, отвечает модель в Ollama
Путь одного ответа: Continue забирает выделенный код в VS Code, отправляет его на localhost:11434, Ollama поднимает qwen3:4b и возвращает текст в панель чата.

Локальный ChatGPT в VS Code: пример config.yaml

Сначала выполните ollama pull qwen3:4b и ollama pull qwen2.5-coder:1.5b. Убедитесь, что curl http://localhost:11434 отвечает. Затем создайте локальную конфигурацию Continue. Названия моделей должны совпадать с ollama list. Маленькая base-модель подходит для быстрых продолжений, а instruct-модель для диалога и правок.

name: Local Coding
version: 0.0.1
schema: v1

models:
  - name: Local Chat
    provider: ollama
    model: qwen3:4b
    roles:
      - chat
      - edit
    defaultCompletionOptions:
      contextLength: 4096

  - name: Local Autocomplete
    provider: ollama
    model: qwen2.5-coder:1.5b-base
    roles:
      - autocomplete
Ожидаемый результат
  • В селекторе Continue появляется Local Chat
  • Автодополнение использует отдельную быструю модель

Если Continue показывает ошибку памяти, уменьшите contextLength. Расширение может отправлять больше контекста, чем простой терминальный чат. Для Agent mode модель должна корректно поддерживать tools, а одной записи capabilities недостаточно, если сама модель не умеет вызывать инструменты. Начните с chat и edit, просматривайте diff и запускайте тесты вручную.

🔥 100 000+ учеников уже с нами

Устал читать теорию?
Пора кодить!

Кодик — приложение, где ты учишься программировать через практику. AI-наставник, интерактивные уроки, реальные проекты.

🤖 AI 24/7
🎓 Сертификаты
💰 Бесплатно
🚀 Начать учиться
Присоединились сегодня

Как разделить роли моделей

ЭлементЧто означаетЧто делать
ChatОбъяснения и вопросыКачественная instruct-модель
EditЛокальные изменения файлаМодель, которая следует формату правок
AutocompleteПродолжение текущей строкиМаленькая быстрая base/coder
EmbedПоиск по кодовой базеСпециализированная embedding-модель
AgentКоманды и несколько файловНадёжный tool use и больше контекста

Не назначайте одну тяжёлую reasoning-модель на autocomplete: задержка разрушит поток ввода. И наоборот, 1.5B autocomplete-модель не обязана хорошо планировать рефакторинг. Разделение ролей экономит память и делает поведение предсказуемее. Если одновременно загружаются две модели, проверьте суммарную память и время выгрузки.

Разбор поломки: сначала Ollama, затем model tag, затем роли
Порядок диагностики: сначала ollama list и curl http://localhost:11434, потом совпадение тега модели в config.yaml, и только затем разбор ролей chat, edit и autocomplete.

Практика: соберите локальный чат на Ollama и Continue

Проверяйте связку на отдельной папке с двумя файлами и чистым Git, а не на рабочем проекте. Успех выглядит так: в селекторе Continue появился Local Chat, автодополнение идёт от qwen2.5-coder:1.5b-base, а ответ приходит при выключенном интернете. Каждый шаг проверяйте до установки следующего.

  1. Модели через ollama pull. Выполните ollama pull qwen3:4b и ollama pull qwen2.5-coder:1.5b, затем ollama list. В выводе должны быть обе строки с точными тегами, их вы позже впишете в config.yaml.
  2. Ответ на localhost:11434. Проверьте curl http://localhost:11434 и задайте вопрос через ollama run qwen3:4b. Пока ответа нет в терминале, расширение ставить рано: иначе непонятно, что сломано, модель, сервер или IDE.
  3. Continue и config.yaml. Установите Continue в VS Code и опишите в локальном config.yaml первую модель: provider ollama, model qwen3:4b, роли chat и edit, contextLength 4096. В селекторе Continue появится пункт Local Chat.
  4. Отдельная модель на autocomplete. Добавьте вторую запись с model qwen2.5-coder:1.5b-base и единственной ролью autocomplete. Наберите начало функции: подсказка приходит заметно быстрее, а тяжёлая qwen3:4b остаётся только на чат и правки.
  5. Просмотр diff перед принятием. Попросите Continue в режиме edit переименовать переменную в одном файле и прочитайте diff до того, как примете правку. После применения git status и git diff покажут ровно одно изменение, которое легко откатить.

Впишите в config.yaml несуществующий тег, например qwen3:4b-turbo, и задайте вопрос в чате. Continue вернёт 404: сервер на 11434 работает, но такой модели в ollama list нет. Верните точный тег и повторите запрос. Отдельно поднимите contextLength до 32768 и посмотрите, как ответ упирается в память или резко замедляется, потому что расширение отправляет больше контекста, чем терминальный чат.

Критерий готовности. Готово, когда вы объясняете, куда уходит запрос из редактора, какая модель отвечает в chat, какая в autocomplete и где искать причину ошибки. Подтверждение: отключённая сеть не мешает ответу, а строка model в config.yaml совпадает с ollama list символ в символ.

Дальше вынесите роль edit на отдельную модель и сравните, какая аккуратнее держит формат правок. Agent mode включайте только после того, как модель уверенно вызывает инструменты: одной записи capabilities в конфиге для этого мало. Если планируете embed и поиск по кодовой базе, проверьте, что embedding-модель тоже локальная, иначе часть контекста уйдёт в облако.

Частые ошибки и почему они появляются

Самая частая ошибка состоит в установке расширения до проверки модели в терминале. Тогда непонятно, сломана модель, сервер или IDE. Вторая ошибка: включить Agent mode на маленькой модели без tool use. Третья: считать локальным любой интерфейс, хотя embeddings или дополнительный провайдер настроены на облако.

Слишком большой contextLength

Начните с 4096 или меньше и увеличивайте только для измеренной задачи.

Нет Git перед edit

Чистый diff позволяет увидеть каждое изменение и безопасно откатиться.

Секреты в контексте

Локальная модель снижает сетевой риск, но логи, плагины и индекс всё равно требуют проверки.

Самопроверка

Можно ли запустить официальный ChatGPT локально в VS Code?

Официальный ChatGPT локально в VS Code не запускается: его веса не публикуют, доступ идёт только через облачный API. Похожий приватный чат собирают на open-weight модели через Ollama и расширение Continue.

Зачем для чата и автодополнения нужны две разные модели?

Две модели нужны потому, что роли требуют разного. Chat и edit берут качественную instruct-модель вроде qwen3:4b, а autocomplete работает от маленькой base-модели на 1.5B, где важна низкая задержка, а не рассуждения.

Что проверять, если Continue отвечает 404?

Ошибка 404 в Continue почти всегда означает расхождение тега модели. Сравните строку model в config.yaml с выводом ollama list символ в символ и убедитесь, что curl http://localhost:11434 отвечает.

Что делать при ошибке памяти в Continue?

Ошибка памяти лечится уменьшением contextLength в defaultCompletionOptions: начните с 4096 и поднимайте только под измеренную задачу. Проверьте и то, не держатся ли в памяти одновременно чат-модель и autocomplete-модель, их вес суммируется.

Правда ли, что такой чат работает полностью офлайн?

Локальным чат считается только тогда, когда каждая роль ведёт на localhost. Embeddings, отдельный провайдер для autocomplete или сторонние плагины могут ходить в сеть, поэтому endpoint проверяют у всех ролей отдельно.

Почему Agent mode плохо работает на маленькой модели?

Agent mode требует надёжного вызова инструментов и большего контекста, а модель на 1.5B этого не вытягивает. Запись capabilities в конфиге не добавляет умения, если сама модель не умеет вызывать tools, поэтому начинают с chat и edit.

Что делать дальше

Сначала настройте только chat, затем edit и последним autocomplete. Для каждой роли запишите модель, контекст и критерий скорости. Базовые навыки кода можно закрепить на курсе GenAI. Размер модели подберите по статье про память Ollama, а другие интерфейсы сравните в материале про аналоги Cursor.

🎯Хватит откладывать

Понравилась статья?
Пора применять на практике!

В Кодик ты не просто читаешь — ты сразу пишешь код. Теория + практика = реальный скилл.

Мгновенная практика
🧠AI объяснит код
🏆Сертификат

Без регистрации • Без карты