Собственные модели

Ограниченный доступ

Info

По умолчанию сессии и GigaCode-разработчик работают на платформенной модели. Вместо нее можно подключить собственные модели и выбирать их при запуске работы агента.

Поддерживаются два способа подключения:

  • cloud.ru Foundation Models — модели Cloud.ru с вашим API-ключом;
  • собственный инференс — сервис с API, совместимым с OpenAI, доступный по сети из окружения агента.

Info

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

Оба способа можно использовать одновременно. На GigaCode-ассистента эти настройки не влияют.

Модель подключается в три шага: сохранить ключ в секрет, описать модель в каталоге и выбрать ее при запуске агента.

1. Сохраните ключ доступа в секрет

  1. Перейдите в настройки репозитория, в котором работает агент > Секреты и переменные. Чтобы модели были доступны всем репозиториям организации, используйте настройки организации — см. Каталог на уровне организации.

  2. Создайте секрет с API-ключом. Имя секрета выберите сами: позже вы укажете его в поле api_key_secret каталога моделей.

  3. В значение запишите только сам ключ: без префикса Bearer и без лишних переводов строки.

На каждый ключ нужен отдельный секрет. Например, если вы подключаете и Cloud.ru, и собственный инференс, создайте два секрета — CLOUDRU_API_KEY с ключом Cloud.ru и LLM_API_KEY с ключом инференса. Если вы используете только один способ, достаточно одного секрета.

Warning

Не указывайте ключи в переменных, в каталоге моделей или в файлах репозитория — только в секретах. Подробнее — Секреты и переменные.

2. Опишите модели в каталоге

Каталог моделей — переменная AI_SESSION_MODELS со значением в виде JSON-массива. Каждый элемент массива описывает одну модель.

  1. Перейдите в настройки репозитория или организации > Секреты и переменные.

  2. Создайте переменную AI_SESSION_MODELS. Если она уже есть, добавьте новые объекты в существующий массив, не удаляя прежние модели.

  3. Укажите модели. Пример каталога с моделью Cloud.ru и собственным инференсом:

[
  {
    "profile_id": "cloudru-coder",
    "name": "Cloud.ru — мой ключ",
    "auth_mode": "bifrost_byok",
    "model": "<ID модели из каталога Cloud.ru>",
    "api_key_secret": "CLOUDRU_API_KEY"
  },
  {
    "profile_id": "team-llm",
    "name": "Модель команды",
    "auth_mode": "direct",
    "base_url": "https://llm.example.com/v1",
    "model": "<ID модели вашего инференса>",
    "api_key_secret": "LLM_API_KEY",
    "context_limit": 128000,
    "output_limit": 16000
  }
]

Поля описания модели:

ПолеОбязательноеОписание
profile_idдауникальный идентификатор модели в каталоге: латиница, цифры, ., _, -, до 64 символов. Значение platform-default зарезервировано
nameданазвание, которое отображается в списке моделей
auth_modeдаспособ подключения: bifrost_byok — Cloud.ru с вашим ключом, direct — собственный инференс
modelдаточный идентификатор модели у провайдера
api_key_secretдаимя секрета с ключом доступа, а не сам ключ
base_urlтолько для directадрес API инференса
context_limitнетразмер контекстного окна модели в токенах
output_limitнетмаксимальный размер ответа модели в токенах
input_modalitiesнеттипы входных данных. По умолчанию — только текст

Модель Cloud.ru

  1. В model укажите точный идентификатор модели, доступной вашему ключу, — его можно посмотреть в каталоге Cloud.ru Foundation Models.

  2. Префикс провайдера (например, cloudru/) не добавляйте — платформа подставит его сама. Собственный префикс модели, если он входит в ее идентификатор, сохраните.

  3. Поле base_url не указывайте: адрес Cloud.ru задает платформа.

Собственный инференс

  1. Инференс должен поддерживать API, совместимый с OpenAI, и авторизацию по Bearer-токену.

  2. В base_url укажите адрес без /chat/completions. Для примера выше запросы отправляются на https://llm.example.com/v1/chat/completions.

  3. Запросы идут напрямую из облачного окружения агента, поэтому инференс должен быть доступен из него.

Требования к модели и ограничения

  1. Агенту нужны модели с поддержкой потоковой генерации (streaming) и вызова инструментов (tool calling).

  2. Лимиты context_limit и output_limit можно не задавать. Если задаете — укажите оба поля, причем output_limit должен быть больше нуля и не больше context_limit.

  3. Значение "input_modalities": ["text", "image"] указывайте только для моделей, которые принимают изображения.

Каталог на уровне организации

Секреты и каталог AI_SESSION_MODELS можно задать в настройках организации — тогда они доступны всем ее репозиториям.

Warning

Переменная AI_SESSION_MODELS репозитория полностью заменяет каталог организации, а не дополняет его. Чтобы использовать модели организации и добавить свои, перечислите в каталоге репозитория все нужные модели. Значение [] отключает модели организации в этом репозитории.

3. Выберите модель

Обновите страницу, чтобы загрузить изменения каталога. Подключенные модели отображаются в списке по названию из поля name. Если модель не выбрана, агент работает на платформенной модели.

В сессии

  1. Создайте новую сессию.

  2. До отправки первого сообщения выберите модель.

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

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

Подробнее — Сессии.

Для GigaCode-разработчика

При передаче задачи GigaCode-разработчику модель выбирается в модальном окне. Подробнее — GigaCode-разработчик.

Если модель недоступна

Проверьте:

  1. Секрет создан, и его имя совпадает со значением api_key_secret.
  2. Значение AI_SESSION_MODELS — корректный JSON-массив.
  3. Для собственного инференса — сервис доступен из облачного окружения агента.
  4. Для сессии с несколькими репозиториями — каталог и секреты заданы в основном репозитории.