Выстроить подключения к провайдерам в порядок переключения

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

4 мин чтения

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

Где находятся пулы

Откройте Настройки, затем Пулы провайдеров. Страница показывает пулы проекта, выбранного в шапке, и пулы всей организации. Строка показывает провайдера пула, его стратегию, где он действует, сколько в нём подключений и до скольких попыток делает вызов.

Страница открывается тому, у кого есть разрешение management:read. Для создания и изменения пула нужно management:write. Пул всей организации меняет только участник, которому доступен каждый проект.

Какие вызовы обслуживает пул

  • Узел AI-модель, в котором указан пул, вызывает модель через этот пул.

  • Любой другой вызов идёт через пул провайдера модели по умолчанию: пул этого провайдера в проекте, иначе пул всей организации, иначе пул, который принимает подключения других провайдеров.

  • Когда вызов не обслуживает ни один пул, Slen вызывает провайдера через одно подключение, одной попыткой — какое именно, говорит статья Подключения.

Пул выбирает только среди своих подключений, которые могут обслужить вызов: включённых в пуле и не находящихся в состоянии Выключен, На паузе или Ошибка. Когда таких нет, вызов отклоняется с кодом provider_not_configured.

Создать пул

1. Начните новый пул

Нажмите Новый пул.

2. Заполните основное

В разделе Основное заполните Название, выберите значение поля Провайдер и выберите в поле Применяется к, где действует пул: Этот проект или Вся организация. Провайдера нельзя изменить после создания пула. Включите Подключения других провайдеров, чтобы пул мог содержать и их: такое подключение выполняет равноценную модель своего провайдера, а подключение без равноценной модели пропускается.

3. Выберите маршрутизацию

В разделе Маршрутизация задайте поля Стратегия и Макс. попыток — от 1 до 5. Попытка — это один запрос к одному подключению.

4. Скажите, что делает сбой

В разделе При сбоях выберите в полях Лимит запросов (429) и Ошибка провайдера, что следует за таким сбоем.

5. Создайте пул

Нажмите Создать пул. Откроется страница нового пула. Добавьте в него подключения, прежде чем на него будут рассчитывать вызовы.

Как выбирается подключение

СтратегияПорядок подключений для вызова
По приоритетуСначала подключение с наименьшим числом приоритета
Наименее загруженноеСначала подключение, которое дальше всех от своих пределов мощности
По весуСлучайный выбор, в котором подключение с большим весом чаще оказывается первым. Подключение с весом 0 пробуется только после остальных, в порядке приоритета

После неудачной попытки вызов переходит к следующему подключению в этом порядке, пока остаются попытки и сбой это позволяет. Подключение, которое ответило ограничением частоты или сбоем провайдера, на время откладывается и показывается как На паузе.

Что делает сбой

ВариантЛимит запросов (429)Ошибка провайдера
Переключить подключениеСледующая попытка идёт к другому подключениюСледующая попытка идёт к другому подключению
ОтклонитьВызов заканчивается отказом провайдера, provider_rate_limitВызов заканчивается ошибкой провайдера
Резервная модель (кросс-провайдерные пулы)Следующие попытки пропускают подключения, которые выполнили бы ту же модель, поэтому вызов переходит на другую модель. У пула без такого подключения они заканчиваются—

Очередь (флоу ждёт и повторяет) тоже есть в списке, но в консоли её выбрать нельзя. С ней вызов, получивший ограничение частоты, ждёт свободного подключения, и его узел модели пробует снова.

Когда попытки или подключения заканчиваются без ответа, вызов заканчивается кодом pool_exhausted — если только узел AI-модель не направляет его в один из своих портов, как объясняет статья Порты и ветвление. Узел AI-модель может задать собственное число попыток и собственное поведение после ограничения частоты; они главнее настроек пула.

Добавить и упорядочить подключения

На странице пула вкладка Подключения показывает его подключения. Нажмите Добавить подключение, выберите Подключение и задайте его Приоритет: меньшее значение пробуется раньше. В разделе Дополнительные параметры задайте Вес для стратегии По весу и Множитель стоимости: на него умножается стоимость попытки через это подключение, начиная со следующей попытки. Нажмите Присоединить.

  • Список предлагает подключения провайдера пула. Подключение другого провайдера предлагается, только когда пул их принимает; через API оно отклоняется с кодом connection_incompatible.

  • Включено в строке выводит подключение из пула и возвращает его. В строке подключение можно и отсоединить от пула; само подключение и его ключ остаются.

  • Отказоустойчивость под списком меняет стратегию, число попыток и оба варианта поведения при сбоях. Нажмите Сохранить настройки.

Вкладка Аналитика считает за выбранный период попытки и операции через пул, переключения и вызовы, которые спасла повторная попытка, и показывает, как трафик распределился по подключениям.

Изменить или удалить пул

В меню в строке пула — Изменить и Удалить. Изменить меняет название, стратегию, число попыток, поведение при сбоях и то, принимает ли пул других провайдеров; провайдер и то, где действует пул, остаются. Удалить удаляет пул после подтверждения и сохраняет его подключения. Пул, через который всё ещё вызывает активная версия флоу или незавершённое выполнение, не удаляется: запрос отклоняется с кодом pool_in_use.

Что читать дальше