Выбор моделей
Как передать модель или список моделей в запросе к ZvenoAI. Автоматический failover и гарантия обработки запроса при недоступности провайдера.
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: "Привет!" }],
});from openai import OpenAI
client = OpenAI(
api_key="ваш_ключ_zvenoai",
base_url="https://api.zveno.ai/v1",
)
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Привет!"}],
extra_body={
"models": ["openai/gpt-4o", "anthropic/claude-3.5-sonnet"]
}
)// Для Go (github.com/sashabaranov/go-openai)
// Так как SDK строго типизирован, используйте структуру-обертку:
type ZvenoAIRequest struct {
openai.ChatCompletionRequest
Models []string `json:"models,omitempty"`
}
func main() {
config := openai.DefaultConfig("ваш_ключ")
config.BaseURL = "https://api.zveno.ai/v1"
client := openai.NewClientWithConfig(config)
req := ZvenoAIRequest{
ChatCompletionRequest: openai.ChatCompletionRequest{
Model: "openai/gpt-4o",
Messages: []openai.ChatCompletionMessage{{Role: "user", Content: "Привет!"}},
},
Models: []string{"openai/gpt-4o", "anthropic/claude-3.5-sonnet"},
}
// Отправка через http.Client с маршалингом req в JSON
}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). Рекомендуем указывать модели от разных провайдеров для максимальной надежности.
Веб-чат
Полное руководство по веб-чату ZvenoAI — выбор модели, настройка параметров, вложения, веб-поиск и Web App режим. Начните без кода прямо в браузере.
Web Search
Подключите поиск в интернете к любой LLM-модели через ZvenoAI. Добавьте :online к имени модели для доступа к актуальной информации в реальном времени.