Руководства
Выбор моделей и провайдеров
ZvenoAI предоставляет единый API для работы с моделями разных вендоров (OpenAI, Anthropic, Google и др.) и выбором upstream-провайдера. Указывайте модель по slug и, при необходимости, настраивайте fallback и provider preferences.
Одна модель в запросе
Стандартный способ — передать строку с ID модели. ZvenoAI направит запрос к соответствующему провайдеру.
const response = await client.chat.completions.create({
model: "openai/gpt-4o",
messages: [
{ role: "user", content: "Привет!" }
],
});Несколько моделей (параметр models)
Передайте массив ID моделей в параметре models, если хотите повысить надежность. ZvenoAI автоматически попробует модели по порядку, пока запрос не будет успешно обработан.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.ZVENOAI_API_KEY,
baseURL: "https://api.zveno.ai/v1",
});
const response = await client.chat.completions.create({
model: "openai/gpt-4o",
// ZvenoAI автоматически использует первую доступную модель из списка
models: ["openai/gpt-4o", "anthropic/claude-3.5-sonnet"],
messages: [{ role: "user", content: "Привет!" }],
});💡 Гарантия обработки
ZvenoAI гарантирует, что ваш запрос будет обработан, если хотя бы одна модель из списка доступна. Вам не нужно самостоятельно обрабатывать fallback — роутер делает это автоматически.
Параметры запроса
Поля model и models используются для выбора LLM модели:
model (string, обязательное)
ID модели для запроса. Используйте формат vendor/model: "openai/gpt-4o", "anthropic/claude-3.5-sonnet", "google/gemini-2.5-pro" и т.д.
models (array, опциональное)
Массив ID моделей для повышения надежности. Если модель из поля model недоступна, роутер автоматически попробует модели из этого списка по порядку.
Пример: models: ["openai/gpt-4o", "anthropic/claude-3.5-sonnet"]
Provider preferences (поле provider)
Поле provider управляет тем, как ZvenoAI выбирает upstream-провайдера. Это не часть slug модели и не зависит отvendor в ID модели.
// provider управляет выбором upstream-провайдера (не путайте с vendor в slug модели)
const response = await client.chat.completions.create({
model: "openai/gpt-4o",
provider: {
order: ["openrouter", "openai"], // предпочтительный порядок
only: ["openrouter"], // использовать только перечисленные
ignore: ["together"], // исключить провайдеров
sort: "price", // price | throughput | latency
allow_fallbacks: true, // разрешить fallback по провайдерам
require_parameters: true, // только те, кто явно поддерживает параметры запроса
quantizations: ["fp16"], // например fp16, int8
// max_price — цены в ₽ за 1k токенов (prompt=input, completion=output)
max_price: { prompt: 1.0, completion: 3.0 },
},
messages: [{ role: "user", content: "Сделай summary." }],
});Где посмотреть активных провайдеров модели?
Используйте публичный эндпоинт GET /v1/models/{vendor}/{model}/providers или страницу модели в каталоге.
Доступные модели
ZvenoAI поддерживает стандартные названия моделей от всех основных провайдеров. Полный список доступных моделей см. в каталоге моделей.
// Используйте формат vendor/model для указания моделей
const models = [
"openai/gpt-4o", // OpenAI
"openai/gpt-4o-mini", // OpenAI
"anthropic/claude-3.5-sonnet", // Anthropic
"anthropic/claude-opus-4.1", // Anthropic
"google/gemini-2.5-pro", // Google
"google/gemini-1.5-flash", // Google
];
// Роутер сам определит провайдера по префиксу vendorГде смотреть список моделей через API
Публичный список моделей доступен по GET /v1/models. Для embeddings есть отдельный список GET /v1/embeddings/models.
Подробнее: Models API.
Рекомендации
- Для критичных запросов передавайте 2-3 модели разных провайдеров — это повысит доступность вашего сервиса.
- Используйте более дешевые модели (openai/gpt-4o-mini, anthropic/claude-3.5-haiku) для простых задач и сохраняйте бюджет.
- Мониторьте, какие модели чаще используются в ваших запросах — эту статистику можно посмотреть в разделе «Использование».
- Провайдер определяется автоматически по ID модели — вам не нужно указывать его отдельно.
Часто задаваемые вопросы
Как ZvenoAI выбирает модель из массива?
Роутер пробует модели по порядку. Если первая модель доступна — использует её. Если недоступна или возвращает ошибку — переходит к следующей автоматически.
Можно ли указать конкретного провайдера?
ZvenoAI автоматически выбирает провайдера из доступных для указанной модели. Формат slug "vendor/model" (например, "openai/gpt-4o") определяет базовую модель и её вендора, а ZvenoAI затем выбирает оптимального провайдера из списка активных провайдеров для этой модели (например, openrouter, together, anyscale и другие), учитывая приоритет, цену и доступность.
Что если все модели из массива недоступны?
В этом редком случае ZvenoAI вернет ошибку 503 (Service Unavailable). Рекомендуем указывать модели от разных провайдеров для максимальной надежности.