> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bettertoken.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Настройка кастомной модели GitHub Copilot через BetterToken

> Настройте BetterToken API Key и Base URL в GitHub Copilot Chat через Custom Endpoint в VS Code.

GitHub Copilot Chat поддерживает пользовательские модели через **Custom Endpoint**. Для подключения BetterToken используйте API Key из группы **GPT** и выберите **Chat Completions**.

<Info>
  Эта инструкция настраивает пользовательскую языковую модель для GitHub Copilot Chat в VS Code. Она не заменяет inline code completion в GitHub Copilot.
</Info>

## Перед началом

* Установлена актуальная версия VS Code
* Установлен GitHub Copilot / Copilot Chat, выполнен вход в аккаунт
* Получен BetterToken API Key (<a href={"https://www.bettertoken.ai/register"}>зарегистрироваться и получить</a>)
* API Key относится к группе **GPT**
* Вы знаете ID модели, например `gpt-5.5`

<Warning>
  Не записывайте реальный API Key вручную в `chatLanguageModels.json`. Вставьте ключ в окно ввода VS Code. VS Code сам создаст локальную secret-ссылку вида `${input:chat.lm.secret...}`.
</Warning>

## Шаги настройки

<Steps>
  <Step title="Откройте управление моделями">
    В области ввода Copilot Chat нажмите на выбор модели, затем выберите **Manage Models...**.

    <Frame>
      <img src="https://mintcdn.com/bettertoken-d796114e/yi2bQP5Q3QRPQ3t1/images/github-copilot/manage-models-entry.png?fit=max&auto=format&n=yi2bQP5Q3QRPQ3t1&q=85&s=3da2a3bfd2075089badec39f1539163f" alt="Открытие Manage Models из выбора модели в Copilot Chat." style={{ borderRadius: '0.5rem' }} width="3012" height="1600" data-path="images/github-copilot/manage-models-entry.png" />
    </Frame>
  </Step>

  <Step title="Добавьте Custom Endpoint">
    В окне **Language Models** нажмите **Add Models**, затем выберите **Custom Endpoint**.

    <Frame>
      <img src="https://mintcdn.com/bettertoken-d796114e/yi2bQP5Q3QRPQ3t1/images/github-copilot/add-custom-endpoint.png?fit=max&auto=format&n=yi2bQP5Q3QRPQ3t1&q=85&s=4337457654b042759dc2ff9dd91e8361" alt="Кнопка Add Models в Language Models и выбор Custom Endpoint." style={{ borderRadius: '0.5rem' }} width="3840" height="2160" data-path="images/github-copilot/add-custom-endpoint.png" />
    </Frame>
  </Step>

  <Step title="Введите название группы">
    В поле **Group Name** введите:

    ```text theme={null}
    BetterToken
    ```

    Затем нажмите **Enter**.

    <Frame>
      <img src="https://mintcdn.com/bettertoken-d796114e/yi2bQP5Q3QRPQ3t1/images/github-copilot/group-name.png?fit=max&auto=format&n=yi2bQP5Q3QRPQ3t1&q=85&s=a5267989018590d7770ff695020c7295" alt="Ввод BetterToken в поле Group Name." style={{ borderRadius: '0.5rem' }} width="3840" height="2160" data-path="images/github-copilot/group-name.png" />
    </Frame>
  </Step>

  <Step title="Введите API Key">
    VS Code попросит ввести API Key. Вставьте BetterToken API Key и нажмите **Enter**.

    Значение ключа не будет напрямую показано в конфигурационном файле. VS Code сохранит его как локальный secret и создаст ссылку вида:

    ```json theme={null}
    "apiKey": "${input:chat.lm.secret.xxxxx}"
    ```

    <Warning>
      Не заменяйте `${input:chat.lm.secret...}` на реальный API Key. Оставьте secret-ссылку, которую сгенерировал VS Code.
    </Warning>
  </Step>

  <Step title="Выберите тип API">
    В **Custom Endpoint: API Type** выберите **Chat Completions**.

    <Frame>
      <img src="https://mintcdn.com/bettertoken-d796114e/yi2bQP5Q3QRPQ3t1/images/github-copilot/select-chat-completions.png?fit=max&auto=format&n=yi2bQP5Q3QRPQ3t1&q=85&s=f6913b1b4f19834d2ad35b26028f2fc3" alt="Выбор Chat Completions в Custom Endpoint API Type." style={{ borderRadius: '0.5rem' }} width="3012" height="1600" data-path="images/github-copilot/select-chat-completions.png" />
    </Frame>
  </Step>

  <Step title="Отредактируйте JSON-конфигурацию">
    VS Code откроет `chatLanguageModels.json`. Проверьте или измените конфигурацию:

    <Frame>
      <img src="https://mintcdn.com/bettertoken-d796114e/yi2bQP5Q3QRPQ3t1/images/github-copilot/chat-language-models-json.png?fit=max&auto=format&n=yi2bQP5Q3QRPQ3t1&q=85&s=25c0f8719dab7cf2d9dbf2d582bbba06" alt="Настройка URL модели BetterToken, toolCalling, vision и лимитов токенов в chatLanguageModels.json." style={{ borderRadius: '0.5rem' }} width="3012" height="1600" data-path="images/github-copilot/chat-language-models-json.png" />
    </Frame>

    ```json theme={null}
    [
      {
        "name": "BetterToken",
        "vendor": "customendpoint",
        "apiKey": "${input:chat.lm.secret.xxxxx}",
        "apiType": "chat-completions",
        "models": [
          {
            "id": "gpt-5.5",
            "name": "gpt-5.5",
            "url": "https://www.bettertoken.ai/v1/chat/completions",
            "toolCalling": true,
            "vision": true,
            "maxInputTokens": 1000000,
            "maxOutputTokens": 64000
          }
        ]
      }
    ]
    ```

    Проверьте ключевые поля:

    | Поле              | Рекомендуемое значение                                                                                        |
    | ----------------- | ------------------------------------------------------------------------------------------------------------- |
    | `name`            | `BetterToken`                                                                                                 |
    | `apiType`         | `chat-completions`                                                                                            |
    | `id`              | `gpt-5.5` или другой ID модели из группы GPT в <a href={"https://www.bettertoken.ai/pricing"}>model plaza</a> |
    | `name`            | Совпадает с ID модели                                                                                         |
    | `url`             | `https://www.bettertoken.ai/v1/chat/completions`                                                              |
    | `toolCalling`     | `true`                                                                                                        |
    | `vision`          | `true`                                                                                                        |
    | `maxInputTokens`  | `1000000`                                                                                                     |
    | `maxOutputTokens` | `64000`                                                                                                       |
  </Step>

  <Step title="Сохраните и перезагрузите VS Code">
    Сохраните `chatLanguageModels.json`, затем выполните команду:

    ```text theme={null}
    Developer: Reload Window
    ```

    После перезагрузки вернитесь к выбору модели в Copilot Chat и выберите `gpt-5.5`.
  </Step>

  <Step title="Отправьте тестовое сообщение">
    Отправьте простое сообщение в Copilot Chat:

    ```text theme={null}
    Опиши в одном предложении, какую модель ты используешь.
    ```

    Если Copilot Chat отвечает нормально, BetterToken Custom Endpoint настроен успешно.
  </Step>
</Steps>

## FAQ

### Почему API Key нужно вводить во всплывающем окне?

VS Code сохраняет API Key в локальном secret storage и использует в JSON ссылку `${input:chat.lm.secret...}`. Это безопаснее, чем записывать реальный API Key в JSON-файл.

### Почему нужно выбрать Chat Completions?

Проверенная рабочая конфигурация использует **Chat Completions**. URL:

```text theme={null}
https://www.bettertoken.ai/v1/chat/completions
```

Не используйте `/v1/responses` и не оставляйте только `/v1`.

### Эта настройка заменяет inline completion в GitHub Copilot?

Нет. Custom Endpoint в основном используется для запросов языковой модели в Copilot Chat. Inline completion в GitHub Copilot по-прежнему работает через сервис GitHub Copilot.

### Что делать при ошибке Invalid token?

Проверьте по порядку:

1. API Key был введён во всплывающем окне VS Code
2. В JSON сохранена ссылка `${input:chat.lm.secret...}`
3. API Key относится к группе **GPT**
4. `url` равен `https://www.bettertoken.ai/v1/chat/completions`
5. `apiType` равен `chat-completions`
6. ID модели взят из группы GPT в <a href={"https://www.bettertoken.ai/pricing"}>model plaza</a>
