Конфигурация провайдеров и каталог моделей
- Дата: 3 августа 2026 года
- Статус: принято для gpt2giga 0.3
- Ответственные направления: профили провайдеров и интеграция
- Схемы профилей:
gpt2giga.provider-profiles.v1,gpt2giga.provider-profiles.v2 - Схема контекста исполнения:
gpt2giga.execution-context.v1
Контекст
Настройки маршрута, публичное имя модели и список моделей провайдера — разные сущности. Профиль отвечает за стабильную конфигурацию подключения, но не должен выдавать заданные в нём алиасы за полный список доступных моделей.
Решение
Как выбирается файл конфигурации
Шлюз принимает один файл профилей:
gpt2giga --config <path>
GPT2GIGA_CONFIG=<path> gpt2giga
Параметр --config имеет приоритет над GPT2GIGA_CONFIG. Если оба источника
указывают разные пути, шлюз завершает запуск с ошибкой invalid_profile.
Без файла конфигурации gpt2giga 0.3 создаёт встроенный маршрут GigaChat из
существующих переменных GIGACHAT_*. Так сохраняется привычный сценарий
запуска, но другие провайдеры автоматически не включаются.
Если файл указан, только он определяет адреса провайдеров, ссылки на учётные данные, алиасы, доступность маршрутов и их политики. Тело запроса и заголовки не могут изменить эти настройки. Список моделей GigaChat по-прежнему запрашивается у провайдера, даже если в профиле заданы алиасы или модель по умолчанию.
Единый каталог моделей
Один ModelCatalog хранит снимок, который используют:
- публичные варианты
/models; GET /bridge/models;- проверка выбранной модели;
- проверка её возможностей.
Для GigaChat каталог получает список через API моделей с авторизацией. Алиас из профиля задаёт точный маршрут к модели, но не ограничивает полный список, который вернул провайдер.
GIGACHAT_MODEL задаёт модель по умолчанию или явно описанную принудительную
модель. Переменная не заменяет и не фильтрует каталог. Новая модель остаётся
видимой, даже если её возможности пока имеют состояние unknown.
Версии схемы
Версия 1 сохраняет прежнюю схему со статическим списком алиасов. Версия 2 добавляет динамический каталог:
schema_version: gpt2giga.provider-profiles.v2
profiles:
- profile_id: gigachat-main
provider_kind: gigachat
base_url: https://api.giga.chat/v1
credential_env: GIGACHAT_CREDENTIALS
network_policy_ref: public-gigachat
tls_policy_ref: system-default
model_inventory: dynamic
Неизвестные поля считаются ошибкой. Обязательны версия схемы, profile_id, тип
провайдера, адрес, ссылки на политики и имя переменной с учётными данными.
В версии 1 и в статических профилях версии 2 нужен хотя бы один алиас. Значение
model_inventory: dynamic разрешено только для одного профиля GigaChat; алиасы
в нём необязательны и не фильтруют результат обнаружения моделей.
Секреты нельзя записывать в профиль открытым текстом. Значения profile_id и
public_alias должны быть уникальны после проверки Unicode и пробелов. Регистр
в алиасах важен: шлюз не пытается угадывать похожие имена.
Ревизия конфигурации
После проверки профиль без секретов сериализуется в канонический JSON UTF-8:
ключи объектов сортируются, лишние пробелы удаляются, порядок элементов
массивов сохраняется. Ревизия имеет вид sha256:<lowercase-hex>. Загруженная
конфигурация не меняется до перезапуска процесса; автоматического обновления в
0.3 нет.
Контекст исполнения gpt2giga.execution-context.v1 хранит config_revision,
profile_id, public_alias, provider_kind, upstream_model,
capability_profile и loss_matrix_revision. В диагностике можно показать имя
переменной окружения, но не её значение, хеш значения или заголовок
авторизации.
Выбор маршрута и модели
До проверки возможностей и обращения к провайдеру шлюз выполняет цепочку:
публичная модель или алиас -> точный маршрут провайдера -> фактическая модель
-> ревизия каталога -> ревизия возможностей
Неизвестный, неоднозначный, отключённый или устаревший алиас не заменяется
другим. То же правило действует для временно недоступной модели.
/bridge/models и все варианты /models строятся из одного снимка каталога и
публикуют его безопасную ревизию.
При запуске и предварительной проверке используются коды
invalid_profile_schema, duplicate_profile_id, duplicate_model_alias,
invalid_destination, credential_unavailable и
invalid_policy_reference. Во время обработки запроса неизвестный алиас даёт
unknown_model_alias. Ни одна из этих ошибок не содержит значение учётных
данных.
Миграция и откат
- Без файла конфигурации продолжает работать встроенный маршрут GigaChat.
- Существующие алиасы сохраняют свои маршруты и не сужают динамический каталог GigaChat.
- После удаления
--configследующий запуск снова использует встроенный маршрут. - Версия 0.2.x игнорирует отдельный файл профилей; миграция данных не нужна.