Перейти к основному содержимому

Матрица совместимости протоколов и провайдеров

  • Дата: 3 августа 2026 года
  • Статус: принято для gpt2giga 0.3
  • Ответственные направления: матрица совместимости и интеграция
  • Схема матрицы: gpt2giga.bridge-loss-matrix.v1
  • Схема списка маршрутов: gpt2giga.route-support-matrix.v1
  • Схема возможностей модели: gpt2giga.effective-capabilities.v1

Зачем нужна отдельная матрица

Внутренняя нормализованная матрица v1 показывает, можно ли перенести отдельную возможность в другой публичный протокол без потерь. Для релиза нужна ещё одна таблица: насколько готова каждая пара «публичный протокол — внешний провайдер».

Эта таблица описывает зрелость маршрута в целом. По ней нельзя судить о списке доступных моделей или о возможностях конкретной модели.

Решение

В матрице четыре публичных протокола:

  • openai_responses;
  • openai_chat_completions;
  • anthropic_messages;
  • gemini_generate_content.

Им соответствуют четыре типа провайдеров: gigachat, openai_compatible, anthropic и gemini. Получается 16 обязательных ячеек.

Статусы маршрутов

СтатусЧто он означает
stableЗаявленное подмножество проверено на зафиксированных версиях клиента и провайдера, а также в изолированных E2E-тестах релиза.
technical_previewОсновные сценарии работают, но остаются известные семантические потери или заметный риск изменений со стороны провайдера.
blockedБезопасного маршрута нет. Шлюз отклоняет запрос до обращения к сети.

У каждой ячейки должен быть один из этих статусов. Значение unknown, пропущенные ячейки и неявные значения по умолчанию для маршрутов запрещены.

Для конкретной модели правило другое: если данных недостаточно, её возможность остаётся в состоянии unknown. Отсутствие подтверждений нельзя автоматически трактовать ни как поддержку, ни как запрет.

Матрица относится только к нормализованным маршрутам. Нативная реализация GigaChat Responses остаётся стабильным основным путём и находится вне этой матрицы. Нормализованный маршрут OpenAI Responses → GigaChat имеет статус technical_preview, пока он не поддержит вложения и остальные принятые сценарии нативной реализации.

Что хранится в ячейке

Ячейка содержит status, reasons, evidence_ids, проверенные диапазоны версий клиента и провайдера, а также таблицу отдельных возможностей. В ней учитываются роли, мультимодальные данные, инструменты и их идентификаторы, параллельные вызовы, JSON Schema, потоковые ответы, сведения о токенах, причины остановки и отказа, рассуждения (reasoning), состояние предыдущего ответа, файлы, изображения, встроенные инструменты, отмена, тайм-ауты и ошибки потока.

Каждая возможность получает одну из трёх оценок:

  • exact — смысл сохраняется полностью;
  • conditional — решение зависит от выбранной модели и режима API;
  • unsupported — сохранить смысл запроса нельзя.

Для conditional шлюз проверяет публичный протокол, адаптер провайдера, данные о модели, режим API и политику маршрута. Результат этой проверки — supported, unsupported или unknown с причиной, источником данных и ревизией.

Ревизия и проверка запроса

Матрица без секретов приводится к каноническому JSON. Её ревизия имеет вид sha256:<lowercase-hex>. На хеш влияют статусы, причины, диапазоны версий и идентификаторы подтверждений. Время проверки, состояние сервиса и оформление документа в хеш не входят.

До чтения учётных данных и сетевого вызова шлюз:

  1. выбирает неизменяемый маршрут провайдера;
  2. находит модель в общем каталоге;
  3. проверяет ячейку протокола и провайдера;
  4. определяет возможности модели в выбранном режиме API;
  5. извлекает из запроса все значимые требования;
  6. применяет политику для unknown и отклоняет неподдерживаемые возможности;
  7. записывает решение без пользовательского содержимого, но с ревизиями конфигурации, профиля, каталога и матрицы;
  8. вызывает один выбранный адаптер провайдера.

Шлюз не упрощает запрос молча и не переключается на другого провайдера или модель. Если смысл сохранить нельзя, он возвращает unsupported_semantic с путём к публичному полю и коротким идентификатором причины.

Машиночитаемое представление

GET /bridge/capabilities без параметра model возвращает все 16 маршрутов. Если передать модель, протокол и режим API, метод вернёт возможности конкретной модели в трёх состояниях. В этих ответах нет промптов, тел ответов, учётных данных, userinfo из URL и необработанных данных провайдера.

Миграция и откат

  • PROTOCOL_LOSS_MATRIX_V1 остаётся внутренним источником данных, пока новая схема полностью его не заменит.
  • Ячейки без подтверждений начинают со статуса blocked.
  • При откате на 0.2.x метод API и предварительная проверка исчезнут, но файлы матрицы останутся неактивными и не повлияют на пользовательские данные.