GitHub Copilot в России: аккаунт, планы и Custom Endpoint
Как разделить аккаунт и план GitHub Copilot, добавить внешнюю модель в VS Code через Custom Endpoint и проверить запрос без подмены inline completions.
Содержание

Внешнюю модель для Chat в VS Code можно подключить через BetterToken Custom Endpoint. Аккаунт GitHub, план Copilot и API-доступ отвечают за разные функции. Актуальная документация VS Code разрешает использовать BYOK-модель в Chat без входа в GitHub или плана Copilot; при этом semantic search, inline suggestions и embeddings по-прежнему требуют аккаунт GitHub и подключение к интернету, а требования плана нужно проверять для конкретной функции. API Key из ${input:...} VS Code хранит в локальном secret storage.
Что именно вы настраиваете
У Copilot есть несколько независимых слоёв. Если разделить их до настройки, будет проще понять, почему Chat отвечает, а подсказки в редакторе не изменились.
| Слой | За что отвечает | Заменяет ли его Custom Endpoint |
|---|---|---|
| Аккаунт GitHub | Вход и доступ к функциям, которые обслуживает GitHub | Для BYOK Chat в VS Code не обязателен; для других функций может быть нужен |
| План Copilot | Квоты встроенных моделей и возможности сервиса Copilot | Для BYOK Chat в VS Code не обязателен; Custom Endpoint не даёт функции плана |
| Локальный BYOK / Custom Endpoint | Выбор внешней модели в поддерживаемом клиенте и поверхности Chat | Только запросы, которые клиент направляет выбранной модели |
| Inline completions | Дополнение кода непосредственно в редакторе | Нет, они остаются частью сервиса GitHub Copilot |
GitHub отдельно описывает локальный BYOK: ключ хранится на устройстве, а поддержка зависит от клиента. В организации Business или Enterprise администратор может отключить эту возможность. Enterprise BYOK — другой, серверный сценарий с отдельными требованиями.
Настройку BetterToken Custom Endpoint сверяйте с актуальной инструкцией. BetterToken предоставляет OpenAI-compatible API-доступ и историю использования в Dashboard, но не выдаёт аккаунт GitHub, не активирует план Copilot и не меняет региональные правила GitHub.
Что проверить до настройки GitHub Copilot в России
- Установите актуальную стабильную версию VS Code.
- Выполните команду Chat: Manage Language Models или выберите Manage Language Models в интерфейсе Chat.
- Проверьте, что доступна команда Add Models → Custom Endpoint.
- Создайте собственный API Key BetterToken и выберите точный Model ID в каталоге моделей.
Поддержка BYOK меняется не одновременно во всех клиентах. Наличие Custom Endpoint в VS Code не доказывает, что та же конфигурация работает в JetBrains, Xcode, GitHub.com или другом интерфейсе. Текущий список поддерживаемых клиентов и ограничений публикует GitHub.
Для официального Copilot действует ещё одна граница. В политике GitHub по торговым ограничениям указано, что Copilot нельзя продавать или экспортировать в Россию без соответствующего разрешения. Custom Endpoint не отменяет эту политику. Здесь нет инструкции по смене региона, оплате через третьих лиц или обходу проверки аккаунта.
Как добавить BetterToken Custom Endpoint в VS Code
Перед настройкой нужен собственный API Key. Создайте аккаунт BetterToken, затем добавьте ключ через интерфейс VS Code. Создать аккаунт BetterToken
1. Откройте управление моделями
В поле ввода Chat выберите Manage Language Models либо выполните Chat: Manage Language Models из Command Palette. Затем нажмите Add Models → Custom Endpoint.
Если этого пункта нет, сначала обновите VS Code. Не переносите конфигурацию из случайного старого руководства: имена команд и схема файла могли измениться.
2. Создайте группу и сохраните ключ
В поле Group Name введите BetterToken. Когда VS Code запросит API Key, вставьте свой ключ во всплывающем окне и нажмите Enter.
В конфигурации используйте input variable, а не реальный ключ:
"apiKey": "${input:betterTokenApiKey}"
При первом обращении VS Code запросит значение и сохранит его в Secret Storage. Это поведение прямо описано в текущей документации VS Code по language models. Не заменяйте ссылку реальным ключом и не добавляйте ключ в settings.json, .env внутри публичного репозитория или commit.
3. Выберите протокол Chat Completions
Для проверенной конфигурации BetterToken выберите Chat Completions. После этого VS Code откроет chatLanguageModels.json.
Минимальный ориентир для полей выглядит так:
[
{
"name": "BetterToken",
"vendor": "customendpoint",
"apiKey": "${input:betterTokenApiKey}",
"apiType": "chat-completions",
"models": [
{
"id": "YOUR_MODEL_ID",
"name": "YOUR_MODEL_ID",
"url": "https://www.bettertoken.ai/v1/chat/completions"
}
]
}
]
YOUR_MODEL_ID — плейсхолдер. Замените его точным идентификатором доступной модели. Поле url здесь содержит полный Chat Completions endpoint; одного Base URL https://www.bettertoken.ai/v1 для этого поля недостаточно. Параметры toolCalling, vision и лимиты token context добавляйте только в соответствии с возможностями выбранной модели и текущей документацией BetterToken.
4. Перезагрузите окно VS Code
Сохраните файл и выполните команду из Command Palette:
Developer: Reload Window
После перезагрузки снова откройте селектор Chat и выберите модель из группы BetterToken.
5. Выполните короткую проверку
Отправьте запрос с легко проверяемым результатом, например:
Верни только JSON с двумя полями: language="ru" и sum=2+2.
Подключение можно считать подтверждённым, если одновременно выполнены три условия:
- Chat возвращает валидный JSON без ошибки авторизации или Model ID;
- запрос появляется в истории использования BetterToken Dashboard;
- inline completion проверяется отдельно и не принимается за результат Custom Endpoint.
Если вы используете Chat без входа в GitHub, учитывайте официально указанную границу: semantic search, inline suggestions и embeddings требуют аккаунт GitHub и подключения к интернету. Требования плана и организационной политики проверяйте отдельно для нужной функции на странице VS Code о language models, не копируя устаревшие имена настроек.
Почему Chat работает, а inline completion не изменился
Custom Endpoint подключает модель к Chat. Для Agent Host sessions использование BYOK-модели требует текущей экспериментальной настройки chat.agentHost.byokModels.enabled; без неё не считайте успешный запрос в обычном Chat подтверждением agent workflow. Автодополнение, которое появляется прямо в редакторе, остаётся функцией GitHub Copilot. Поэтому успешный запрос к BetterToken не подтверждает работу официальных completions и не расходует их тем же способом.
Некоторые функции VS Code также опираются на сервисы GitHub: документация называет semantic search, inline suggestions и embeddings. Для них нужны аккаунт GitHub и подключение к интернету; требования плана зависят от конкретной функции. Если ваша задача — только разговор с моделью в Chat, локального BYOK может быть достаточно. Для Agent Host, completions и других интегрированных возможностей отдельно проверяйте текущую настройку, план и политику организации.
Частые ошибки Custom Endpoint
Модель не появилась в селекторе
Проверьте актуальность VS Code, наличие записи в chatLanguageModels.json и точное совпадение Model ID. Затем выполните Developer: Reload Window. Если устройство управляется организацией, уточните, не запрещён ли локальный BYOK политикой Copilot Business или Enterprise.
Ошибка 401 или Invalid token
Повторно добавьте модель через Add Models, чтобы VS Code запросил ключ и сохранил его в Secret Storage. В JSON должна остаться ссылка ${input:...}, а не реальное значение. Проверьте, что ключ принадлежит вашему аккаунту BetterToken и активен.
404 или model not found
Для apiType: "chat-completions" проверьте полный URL https://www.bettertoken.ai/v1/chat/completions. Затем сравните id с актуальным Model ID в каталоге BetterToken. Base URL, полный endpoint и Model ID — три разных поля проверки.
В Chat есть ответ, но completions остались прежними
Это ожидаемая граница функции. Custom Endpoint не заменяет inline completions. Для них отдельно нужен доступ к соответствующей функции GitHub Copilot.
Что в итоге зависит от GitHub, а что — от BetterToken
GitHub контролирует аккаунт, планы Copilot, региональные и организационные ограничения, а также встроенные функции вроде inline completions. BetterToken в этом сценарии отвечает за внешний OpenAI-compatible запрос, API Key, доступный Model ID и запись использования в Dashboard.
Перед настройкой проверьте текущую поддержку BYOK в нужном клиенте. Затем откройте актуальную инструкцию BetterToken, добавьте Custom Endpoint через интерфейс VS Code и завершите проверку коротким запросом и записью в Dashboard.
FAQ
Можно ли использовать Custom Endpoint без платного плана Copilot?
Для BYOK Chat в актуальном VS Code платный план и даже вход в GitHub не требуются. Это не относится к semantic search, inline suggestions, embeddings и другим функциям GitHub Copilot: для них нужны аккаунт GitHub и подключение к интернету, а требования плана зависят от функции.
Заменяет ли BetterToken подписку GitHub Copilot?
Нет. BetterToken подключает внешнюю модель там, где клиент поддерживает Custom Endpoint или BYOK. Аккаунт GitHub, план, completions и другие функции Copilot остаются отдельными.
Можно ли хранить API Key в chatLanguageModels.json?
Реальное значение ключа туда записывать не следует. Введите ключ во всплывающем окне VS Code и оставьте созданную приложением secret-ссылку.
Нужен ли VPN для этой схемы?
Для подключения к BetterToken API Endpoint из России VPN не требуется. Это утверждение относится только к endpoint BetterToken. Доступ к сайту GitHub, вход, загрузка клиента, обновления и функции Copilot зависят от условий GitHub и вашей сети.