← Cloudflare AI Gateway / ai-gateway / features
Dynamic routing
Введение
С помощью Dynamic routing вы можете создавать потоки маршрутизации запросов через визуальный интерфейс или конфигурация на основе JSON. Вместо того чтобы жёстко задавать одну модель, с Dynamic Routing вы собираете небольшой поток, который проверяет условия, применяет квоты и выбирает модели с резервными вариантами. Вносить изменения можно без правки кода приложения: опубликуйте новую версию маршрута, и всё готово. С помощью динамической маршрутизации легко реализовать такие сценарии, как:
- Направление разных сегментов (платящих и неплатящих пользователей) на разные модели
- Ограничение каждого пользователя, проекта или команды лимитами бюджета и скорости запросов
- A/B-тестирование и постепенные развёртывания
делая её доступной как для разработчиков, так и для нетехнических участников команды.
Основные понятия
- Маршрут: именованный версионированный flow (например, dynamic/support), который можно использовать вместо названия модели в своих запросах.
- Nodes
- Запустить: Точка входа для маршрута.
- Условно: Ветвление If/Else на основе выражений, ссылающихся на тело запроса, заголовки или метаданные (например, user_plan == "paid").
- Процент: Распределяет запросы вероятностно между несколькими выходами, что удобно для A/B-тестирования и постепенного развертывания.
- Модель: вызывает провайдера или модель с параметрами запроса
- Лимит скорости запросов: обеспечивает соблюдение квот по количеству запросов (для вашего ключа за период) и переключается на fallback при их превышении.
- Лимит бюджета: обеспечивает соблюдение квот по стоимости (для вашего ключа за период) и переключается на fallback при их превышении.
- Конец: Завершает поток и возвращает окончательный ответ модели.
- Метаданные: произвольный контекст в формате ключ-значение, прикреплённый к запросу (например, userId, orgId, plan). Вы можете передавать его из своего приложения, чтобы на него могли ссылаться правила.
- Версии: каждое изменение создаёт новый черновик. Разверните его, чтобы применить с возможностью мгновенного отката.
Начало работы
- Создайте маршрут.
- Перейдите в (Выберите ваш шлюз) > Dynamic Routes > Add Route, и назовите его (например,
support). - Откройте Editor.
- Перейдите в (Выберите ваш шлюз) > Dynamic Routes > Add Route, и назовите его (например,
- Определяйте условия, лимиты и другие настройки.
- Вы можете использовать Custom Metadata в ваших условных выражениях.
- Настройте узлы моделей.
- Пример:
- Node A: провайдер OpenAI, модель
o4-mini-high - Node B: провайдер OpenAI, модель
gpt-4.1
- Node A: провайдер OpenAI, модель
- Пример:
- Сохраните версию.
- Нажмите Save чтобы сохранить состояние. Вы всегда можете вернуться к более ранним версиям из Версии.
- Разверните версию, чтобы сделать её активной.
- Вызовите маршрут из своего кода.
- Используйте OpenAI-совместимый конечная точка (
/compat/chat/completions), и используйте имя маршрута вместо модели, например,dynamic/support. См. Использование динамического маршрута с примерами.
- Используйте OpenAI-совместимый конечная точка (