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

Локальный 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 и запускайте тесты вручную.
Как разделить роли моделей
| Элемент | Что означает | Что делать |
|---|---|---|
| Chat | Объяснения и вопросы | Качественная instruct-модель |
| Edit | Локальные изменения файла | Модель, которая следует формату правок |
| Autocomplete | Продолжение текущей строки | Маленькая быстрая base/coder |
| Embed | Поиск по кодовой базе | Специализированная embedding-модель |
| Agent | Команды и несколько файлов | Надёжный tool use и больше контекста |
Не назначайте одну тяжёлую reasoning-модель на autocomplete: задержка разрушит поток ввода. И наоборот, 1.5B autocomplete-модель не обязана хорошо планировать рефакторинг. Разделение ролей экономит память и делает поведение предсказуемее. Если одновременно загружаются две модели, проверьте суммарную память и время выгрузки.

Практика: соберите локальный чат на Ollama и Continue
Проверяйте связку на отдельной папке с двумя файлами и чистым Git, а не на рабочем проекте. Успех выглядит так: в селекторе Continue появился Local Chat, автодополнение идёт от qwen2.5-coder:1.5b-base, а ответ приходит при выключенном интернете. Каждый шаг проверяйте до установки следующего.
- Модели через ollama pull. Выполните ollama pull qwen3:4b и ollama pull qwen2.5-coder:1.5b, затем ollama list. В выводе должны быть обе строки с точными тегами, их вы позже впишете в config.yaml.
- Ответ на localhost:11434. Проверьте curl http://localhost:11434 и задайте вопрос через ollama run qwen3:4b. Пока ответа нет в терминале, расширение ставить рано: иначе непонятно, что сломано, модель, сервер или IDE.
- Continue и config.yaml. Установите Continue в VS Code и опишите в локальном config.yaml первую модель: provider ollama, model qwen3:4b, роли chat и edit, contextLength 4096. В селекторе Continue появится пункт Local Chat.
- Отдельная модель на autocomplete. Добавьте вторую запись с model qwen2.5-coder:1.5b-base и единственной ролью autocomplete. Наберите начало функции: подсказка приходит заметно быстрее, а тяжёлая qwen3:4b остаётся только на чат и правки.
- Просмотр diff перед принятием. Попросите Continue в режиме edit переименовать переменную в одном файле и прочитайте diff до того, как примете правку. После применения git status и git diff покажут ровно одно изменение, которое легко откатить.
Впишите в config.yaml несуществующий тег, например qwen3:4b-turbo, и задайте вопрос в чате. Continue вернёт 404: сервер на 11434 работает, но такой модели в ollama list нет. Верните точный тег и повторите запрос. Отдельно поднимите contextLength до 32768 и посмотрите, как ответ упирается в память или резко замедляется, потому что расширение отправляет больше контекста, чем терминальный чат.
Дальше вынесите роль edit на отдельную модель и сравните, какая аккуратнее держит формат правок. Agent mode включайте только после того, как модель уверенно вызывает инструменты: одной записи capabilities в конфиге для этого мало. Если планируете embed и поиск по кодовой базе, проверьте, что embedding-модель тоже локальная, иначе часть контекста уйдёт в облако.
Частые ошибки и почему они появляются
Самая частая ошибка состоит в установке расширения до проверки модели в терминале. Тогда непонятно, сломана модель, сервер или IDE. Вторая ошибка: включить Agent mode на маленькой модели без tool use. Третья: считать локальным любой интерфейс, хотя embeddings или дополнительный провайдер настроены на облако.
Начните с 4096 или меньше и увеличивайте только для измеренной задачи.
Чистый 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.
