# CodeBuddy

> Подключите CodeBuddy к API LMU AI через models.json — укажите полный эндпоинт /chat/completions, чтобы использовать Claude, GPT и китайские модели.

URL: https://docs.lmuai.com/ru/docs/tools/codebuddy



CodeBuddy (помощник для программирования от Tencent Cloud) — это ИИ-редактор кода, который поддерживает пользовательский список моделей через конфигурационный файл `models.json`. Эта страница описывает подключение к LMU AI.

***

## Установка и вход [#установка-и-вход]

1. Скачайте и установите сборку для вашей операционной системы с официального сайта: [https://www.codebuddy.cn](https://www.codebuddy.cn/home/)
2. Войдите в свою учётную запись CodeBuddy при появлении запроса

***

## Настройка LMU AI [#настройка-lmu-ai]

### Шаг 1: Выберите расположение конфигурационного файла [#шаг-1-выберите-расположение-конфигурационного-файла]

| Уровень                                  | Путь                                    | Примечания                                                       |
| ---------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- |
| **Уровень пользователя** (рекомендуется) | `~/.codebuddy/models.json`              | Глобальная конфигурация, применяется ко всем проектам            |
| **Уровень проекта**                      | `<project-root>/.codebuddy/models.json` | Специфична для проекта, имеет приоритет над уровнем пользователя |

Создайте файл, если он не существует. Порядок слияния от высшего к низшему: уровень проекта → уровень пользователя → встроенные значения по умолчанию.

### Шаг 2: Напишите конфигурацию [#шаг-2-напишите-конфигурацию]

На примере файла уровня пользователя `~/.codebuddy/models.json`:

```json
{
  "models": [
    {
      "id": "claude-opus-5",
      "name": "Claude Opus 5 (LMU AI)",
      "vendor": "LMU AI",
      "apiKey": "sk-your-lmu-ai-api-key",
      "url": "https://api.lmuai.com/v1/chat/completions",
      "maxInputTokens": 200000,
      "maxOutputTokens": 32000,
      "supportsToolCall": true,
      "supportsImages": true,
      "supportsReasoning": true
    },
    {
      "id": "gpt-5.6-sol",
      "name": "GPT-5.6 Sol (LMU AI)",
      "vendor": "LMU AI",
      "apiKey": "sk-your-lmu-ai-api-key",
      "url": "https://api.lmuai.com/v1/chat/completions",
      "maxInputTokens": 400000,
      "maxOutputTokens": 32000,
      "supportsToolCall": true
    }
  ]
}
```

<Callout type="warn" title="url должен быть полным путём, а не базовым URL">
  Поле `url` принимает **полный путь эндпоинта**, оканчивающийся на `/chat/completions`:

  * ✅ Правильно: `https://api.lmuai.com/v1/chat/completions`
  * ❌ Неправильно: `https://api.lmuai.com/v1`
  * ❌ Неправильно: `https://api.lmuai.com`

  Это самая частая причина, по которой скопированный минимальный пример не работает — во многих руководствах его считают базовым URL, и тогда CodeBuddy не может достучаться до эндпоинта.
</Callout>

<Callout type="info" title="CodeBuddy поддерживает только формат OpenAI">
  В официальной документации указано, что в настоящее время поддерживаются только API формата **OpenAI**, поэтому подключайтесь к LMU AI по OpenAI-совместимому протоколу.

  Модели Claude тоже прекрасно работают: просто укажите ID модели, например `claude-opus-5`, и бэкенд LMU AI выполнит преобразование OpenAI ↔ Anthropic.
</Callout>

### Шаг 3: Выберите модель и начните чат [#шаг-3-выберите-модель-и-начните-чат]

Просто сохраните файл — models.json поддерживает **горячую перезагрузку** (задержка в 1 секунду), поэтому перезапускать CodeBuddy не нужно. Выберите вашу только что настроенную модель в селекторе моделей окна чата — и всё готово.

Модели, добавленные через models.json, автоматически помечаются тегом `custom`, что делает их легко узнаваемыми в интерфейсе.

***

## Справочник по полям [#справочник-по-полям]

Поля, доступные для каждой записи в массиве `models`:

| Поле                | Тип     | Обязательно | Примечания                                                                                        |
| ------------------- | ------- | ----------- | ------------------------------------------------------------------------------------------------- |
| `id`                | string  | ✓           | Уникальный идентификатор модели — используйте ID модели LMU AI                                    |
| `name`              | string  | -           | Отображаемое имя в выпадающем списке                                                              |
| `vendor`            | string  | -           | Название поставщика; любое на ваш выбор                                                           |
| `apiKey`            | string  | -           | Ключ `sk-`, сгенерированный в консоли LMU AI (само значение ключа, а не имя переменной окружения) |
| `url`               | string  | -           | Полный путь эндпоинта; для LMU AI — `https://api.lmuai.com/v1/chat/completions`                   |
| `maxInputTokens`    | number  | -           | Максимальное число входных токенов                                                                |
| `maxOutputTokens`   | number  | -           | Максимальное число выходных токенов                                                               |
| `supportsToolCall`  | boolean | -           | Поддерживается ли вызов инструментов                                                              |
| `supportsImages`    | boolean | -           | Поддерживается ли ввод изображений                                                                |
| `supportsReasoning` | boolean | -           | Поддерживается ли режим рассуждений                                                               |

***

## Показать только определённые модели [#показать-только-определённые-модели]

Используйте поле верхнего уровня `availableModels`, чтобы управлять тем, какие модели появляются в выпадающем списке:

```json
{
  "models": [
    {
      "id": "claude-opus-5",
      "name": "Claude Opus 5 (LMU AI)",
      "apiKey": "sk-your-lmu-ai-api-key",
      "url": "https://api.lmuai.com/v1/chat/completions",
      "supportsToolCall": true
    }
  ],
  "availableModels": ["claude-opus-5"]
}
```

* Пропущено или пустой массив → показываются все модели
* Задано → появляются только перечисленные ID моделей (как встроенные, так и пользовательские)
* `availableModels` на уровне проекта **полностью переопределяет** значение на уровне пользователя, а не сливается с ним

<Callout type="warn" title="Следите за запятой при удалении availableModels">
  Согласно официальной документации: после удаления поля `availableModels` не забудьте убрать теперь уже лишнюю запятую `,` после массива `models` выше, иначе JSON станет недействительным и вся конфигурация перестанет работать.
</Callout>

***

## Распространённые ID моделей [#распространённые-id-моделей]

| ID модели             | Примечания                             |
| --------------------- | -------------------------------------- |
| `claude-opus-5`       | Claude Opus 5 (флагман, рекомендуется) |
| `claude-sonnet-5`     | Claude Sonnet 5 (сбалансированная)     |
| `claude-haiku-4-5`    | Claude Haiku 4.5 (быстрая)             |
| `gpt-5.6-sol`         | GPT-5.6 Sol                            |
| `glm-5.2`             | GLM-5.2                                |
| `qwen3.8-max-preview` | Qwen 3.8 Max Preview                   |
| `deepseek-v4-pro`     | DeepSeek V4 Pro                        |
| `kimi-k3`             | Kimi K3                                |

Не уверены, какую модель указать? Перейдите в [Галерею моделей](/ru/docs/guide/models), чтобы увидеть все доступные ID моделей и скопировать любой в один клик.

Для контекстного окна в 1M напишите ID модели с суффиксом `[1M]` (например, `claude-opus-5[1M]`) и соответственно увеличьте `maxInputTokens`.

***

## Устранение неполадок [#устранение-неполадок]

### Конфигурация не применяется? [#конфигурация-не-применяется]

1. Проверьте, что **JSON корректен** (пропущенная или лишняя запятая — обычная причина)
2. Убедитесь, что **путь к файлу** правильный (`~/.codebuddy/models.json`)
3. Убедитесь, что у каждой записи есть обязательное поле `id`
4. Убедитесь, что файл действительно **сохранён на диск** (горячая перезагрузка имеет задержку в 1 секунду)

### Модель отсутствует в выпадающем списке? [#модель-отсутствует-в-выпадающем-списке]

* Если задан `availableModels`, проверьте, что ID модели перечислен в нём
* Проверьте, что запись в массиве `models` полная

### Получаете 401 / 404? [#получаете-401--404]

* **401**: является ли `apiKey` ключом `sk-`, сгенерированным в консоли LMU AI?
* **404**: в `url` почти наверняка отсутствует `/chat/completions` — это должен быть полный путь

***

## Примечания [#примечания]

* `url` должен быть **полным путём эндпоинта** `https://api.lmuai.com/v1/chat/completions`, а не просто `/v1` или голым доменом
* CodeBuddy поддерживает **только формат OpenAI**; модели Claude проходят через преобразование протокола LMU AI
* `apiKey` принимает само значение ключа — имена переменных окружения не поддерживаются
* Конфигурация **горячо перезагружается**, поэтому достаточно сохранить; перезапуск не нужен
* Каждой записи модели нужны свои собственные `apiKey` и `url`
* Конфигурация уровня проекта переопределяет уровень пользователя по `id`, тогда как `availableModels` заменяется целиком, а не сливается
