Решите, каким клиентам можно обращаться к вашим моделям
Правила доступа по заголовкам запроса, разрешающие или запрещающие по User-Agent, origin или любому заголовку — в областях global, группы ключей или отдельного ключа.
На что на самом деле жалуется сообщество
«Утёкший ключ означает, что любой с ним может сжечь нашу квоту», «мы хотим разрешить агентам программирования всей компании, но заблокировать голый curl и скраперы», «в консоли производителя есть белый список IP, но наш трафик динамический и за прокси, поэтому он никогда не подходит».
Принудительное применение должно происходить там, где приходит запрос, — на шлюзе, а не в клиентской настройке, которую разработчик может просто выключить.
Как это делает GateLLM
GateLLM оценивает правила допуска на каждом запросе по HTTP-заголовкам: шесть типов совпадения (exact / prefix / regex / exists / absent / any) и три области (global / группа ключей / ключ), упорядоченные по sort_order с победой первого совпадения.
Для режима «только одобренные клиенты» используется режим белого списка: задайте для группы действие по умолчанию deny, затем добавьте одно правило allow, совпадающее с подписью клиента, — всё остальное отклоняется до того, как достигнет модели.
5 рычагов, которые действительно работают
- 6 типов совпадения: exact / prefix / regex / exists / absent / any — одно правило может выразить «A или B или C» через чередование в regex
- 3 области: global, группа ключей, ключ — с победой первого совпадения и приоритетом глобальных правил при одинаковом порядке
- Режим белого списка: deny по умолчанию + одно явное allow — новые неизвестные клиенты отклоняются по умолчанию
- Правила покрывают и маршруты списка моделей (/v1/models), поэтому отклонённый клиент блокируется от начала до конца
- Regex-движок с линейным временем и защитой от ReDoS — патологические шаблоны отклоняются при загрузке, а не при запросе