RussiaAPI

Руководство для разработчиков

/v1/models: как проверить доступные модели в OpenAI-совместимом API

Запрос GET /v1/models — безопасная отправная точка для OpenAI-совместимой интеграции. Он позволяет увидеть каталог, который доступен именно вашему ключу, до первого платного сценария. Используйте собственный ключ RussiaAPI, не копируйте старые идентификаторы моделей и проверяйте функции отдельным тестом.

Опубликовано 15 августа 2026 · 10 минут чтения · Ключевой запрос: /v1/models openai совместимый api

Граница сервиса. RussiaAPI — независимый сторонний API gateway, а не официальный сервис OpenAI, Anthropic, Google или производителя моделей. «OpenAI-совместимый» описывает часть формата API, а не партнёрство, постоянную доступность или полное совпадение возможностей. Не используйте сервис для обхода правил, законов, санкций или ограничений и не передавайте внешние ключи.

Что возвращает /v1/models — и чего он не доказывает

В типичной совместимой схеме endpoint возвращает объект с массивом моделей. Это полезный снимок прав текущего ключа: вместо догадки по названию из чужого проекта вы берёте идентификатор из ответа. Но список не является обещанием «всего каталога» и не описывает каждую характеристику. Наличие модели не подтверждает контекстное окно, стоимость, скорость, мультимодальность, streaming, function calling, structured output или продолжительную доступность.

Правильная логика состоит из трёх проверок. Сначала получите список собственным ключом. Затем сопоставьте нужный идентификатор с текущим каталогом RussiaAPI и документацией. Наконец, отправьте короткий тест именно с тем параметром, который важен приложению. Так команда не подменит реальный контракт красивым названием модели и не запустит production на не проверенной конфигурации.

Подготовьте среду без утечки секрета

Создайте отдельный API Key RussiaAPI для приложения или тестовой среды. Храните его в менеджере секретов, в переменной окружения сервера или локальном файле, исключённом из Git. В браузер, мобильное приложение, коммит, README, скриншот и общий чат ключ попадать не должен. Для разных окружений используйте разные ключи: тогда тест не расходует production-бюджет, а отзыв одного секрета не останавливает все сервисы.

Ниже показан прямой запрос curl. Он работает в shell, где установлена переменная RUSSIAAPI_API_KEY; команда печатает только тело ответа и код ошибки, но не сам ключ. В macOS или Linux сначала экспортируйте значение из защищённого хранилища вашей среды. Не вставляйте в терминал ключ коллеги и не просите ключ поставщика: RussiaAPI его не требует.

export RUSSIAAPI_BASE_URL='https://russiaapi.com/v1'
export RUSSIAAPI_API_KEY='your_own_russiaapi_key'

curl --fail-with-body --silent --show-error \
  -H "Authorization: Bearer $RUSSIAAPI_API_KEY" \
  "$RUSSIAAPI_BASE_URL/models"

Ответ обычно содержит поле data с элементами, у которых есть id. Не публикуйте полученный ответ как постоянный прайс-лист: он может отражать только ваш маршрут и момент запроса. Для автоматизации сохраните в журнале время, код, число моделей и обезличенный request ID, если сервер его вернул. Секретный заголовок, полный запрос и пользовательские данные не логируйте.

Выберите модель из ответа, а не из старого гайда

После успешного ответа выберите идентификатор, который соответствует текущему продукту, и передайте его через переменную окружения. Не заменяйте модель автоматически «похожим» именем, если нужной нет: это меняет качество, лимиты и расходы незаметно для пользователя. Лучше вернуть понятную конфигурационную ошибку, обновить allow-list и провести контрольный тест. Для выбора по качеству, задержке и бюджету используйте тестовую матрицу моделей.

Сразу определите allow-list на стороне вашего сервера. Клиент не должен сам присылать любой идентификатор из каталога и получать неограниченный доступ. Сопоставьте продуктовый сценарий с разрешёнными моделями, максимальным входом, тайм-аутом и бюджетом. Это уменьшает случайные расходы и даёт предсказуемое поведение при изменении каталога. Отдельно пересматривайте allow-list перед релизом, а не только после инцидента.

Исполнимый Node.js-проверяющий скрипт

Этот пример для Node.js 20+ получает каталог и завершится с ошибкой, если ожидаемого идентификатора нет. Он не делает генерацию, поэтому подходит для CI-проверки конфигурации или preflight в закрытой среде. Значение EXPECTED_MODEL нужно подставить из собственного текущего каталога; условие явно указано, чтобы пример не выдавал воображаемое имя за доступную модель.

const baseUrl = process.env.RUSSIAAPI_BASE_URL || 'https://russiaapi.com/v1';
const apiKey = process.env.RUSSIAAPI_API_KEY;
const expected = process.env.EXPECTED_MODEL;
if (!apiKey || !expected) throw new Error('Set RUSSIAAPI_API_KEY and EXPECTED_MODEL');

const response = await fetch(`${baseUrl}/models`, {
  headers: { Authorization: `Bearer ${apiKey}` },
  signal: AbortSignal.timeout(15_000),
});
if (!response.ok) throw new Error(`Catalog request failed: ${response.status}`);
const payload = await response.json();
const ids = new Set((payload.data || []).map((model) => model.id));
if (!ids.has(expected)) throw new Error(`Expected model is unavailable: ${expected}`);
console.log(`Catalog check passed; ${ids.size} models visible`);

Сохраните его как check-models.mjs и выполните node check-models.mjs. В CI используйте секреты платформы и ограниченный тестовый ключ. Если запуск сообщает 401 или 403, не добавляйте ключ в debug-вывод. Проверьте base URL, среду, активность ключа и права; подробный безопасный разбор есть в статье про 401 и 403.

Проверьте нужную функцию коротким запросом

Каталог — это preflight, а не финальный тест. После выбора модели сформируйте маленькое обезличенное сообщение и задайте только нужные параметры. Например, для обычного текста проверьте один ответ, для streaming — обработку отмены, для структурированного вывода — валидатор JSON, для tool calling — серверную проверку аргументов. Не включайте все функции одновременно: иначе ошибка не покажет, где именно расходится контракт.

В приложении добавьте тайм-аут, максимальный размер входа, лимит результата и наблюдаемость. При сетевом сбое не делайте бесконечный retry: запрос мог быть принят. Храните ID операции и ограничивайте повтор, чтобы не создать дубль и лишний расход. Практика описана в руководстве по идемпотентности; обработка rate limit — в статье о 429 и backoff.

Диагностика распространённых ответов

401 обычно означает, что ключ отсутствует, неверно передан или отозван. 403 требует проверить права, проект и разрешённый маршрут. 404 часто указывает на лишний или отсутствующий сегмент /v1. 429 означает ограничение нагрузки: уменьшите параллелизм и используйте очередь. 5xx — повод записать время и request ID, показать пользователю временную ошибку и применить ограниченную политику повторов. Коды не дают оснований запрашивать чужие ключи или менять доступ ради обхода ограничения.

Не трактуйте пустой или сокращённый список как обещание проблемы у поставщика. Сначала убедитесь, что вы смотрите правильную среду, что ключ создан для нужного проекта и что ожидаемый маршрут сверяется с каталогом. Если нужно обратиться в поддержку, приложите безопасный минимум: время, код ответа, endpoint без секретов, окружение и request ID. Такой пакет позволяет расследовать случай, не увеличивая риск утечки.

Контроль изменений каталога

Модели, права и цены меняются. Запускайте preflight перед production-развёртыванием и по расписанию, но не делайте его единственным источником истины: ошибку проверки нужно направлять в наблюдаемость, а не автоматически переключать клиентов на неизвестную модель. Обновляйте allow-list через review, храните дату последней проверки и делайте rollback к предсказуемому состоянию. Так изменение каталога становится управляемым событием, а не неожиданностью для пользователя.

RussiaAPI помогает держать единый API-слой и собственные ключи, однако ваша команда отвечает за законность данных, права на контент, настройки доступа и выполнение правил поставщиков. Статья объясняет техническую проверку; актуальную доступность, лимиты и коммерческие условия всегда подтверждайте в консоли и документации на момент запуска.

Начните с каталога собственного ключа

Создайте отдельный ключ RussiaAPI, выполните безопасную проверку /v1/models, добавьте разрешённую модель в серверную конфигурацию и протестируйте нужную функцию.

Открыть консоль RussiaAPI · Документы · Каталог моделей

FAQ

Показывает ли /v1/models все модели на рынке?

Нет. Это список, доступный конкретному ключу и маршруту в момент запроса. Он не является вечной гарантией каталога или возможностей каждой модели.

Нужно ли отправлять ключ в поддержку при ошибке /v1/models?

Нет. Не передавайте API Key, Authorization, cookie, пароль или код. Для диагностики достаточно времени, HTTP-статуса, base URL без секрета, окружения и request ID.

Почему модель из ответа может не подойти для функции?

Список не подтверждает параметры, контекст, streaming, инструменты, цену или лимиты. Проверяйте нужную функцию коротким тестом и текущей документацией.

Читайте также