mirror of
https://github.com/fawney19/Aether.git
synced 2026-01-03 08:12:26 +08:00
fix(scheduler): correct whitelist validation logic
- Use 'is not None' instead of truthiness check for allowed_api_formats - Use 'is not None' instead of truthiness check for allowed_models - Use 'is not None' instead of truthiness check for allowed_providers - Use 'is not None' check for allowed_endpoints to distinguish empty list from None - Fixes issue where empty whitelist (empty list) was incorrectly treated as no restriction
This commit is contained in:
8
src/services/cache/aware_scheduler.py
vendored
8
src/services/cache/aware_scheduler.py
vendored
@@ -599,7 +599,7 @@ class CacheAwareScheduler:
|
|||||||
allowed_models = restrictions["allowed_models"]
|
allowed_models = restrictions["allowed_models"]
|
||||||
|
|
||||||
# 0.1 检查 API 格式是否被允许
|
# 0.1 检查 API 格式是否被允许
|
||||||
if allowed_api_formats:
|
if allowed_api_formats is not None:
|
||||||
if target_format.value not in allowed_api_formats:
|
if target_format.value not in allowed_api_formats:
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"API Key {user_api_key.id[:8] if user_api_key else 'N/A'}... 不允许使用 API 格式 {target_format.value}, "
|
f"API Key {user_api_key.id[:8] if user_api_key else 'N/A'}... 不允许使用 API 格式 {target_format.value}, "
|
||||||
@@ -608,7 +608,7 @@ class CacheAwareScheduler:
|
|||||||
return [], global_model_id
|
return [], global_model_id
|
||||||
|
|
||||||
# 0.2 检查模型是否被允许
|
# 0.2 检查模型是否被允许
|
||||||
if allowed_models:
|
if allowed_models is not None:
|
||||||
if (
|
if (
|
||||||
requested_model_name not in allowed_models
|
requested_model_name not in allowed_models
|
||||||
and resolved_model_name not in allowed_models
|
and resolved_model_name not in allowed_models
|
||||||
@@ -635,7 +635,7 @@ class CacheAwareScheduler:
|
|||||||
return [], global_model_id
|
return [], global_model_id
|
||||||
|
|
||||||
# 1.5 根据 allowed_providers 过滤(合并 ApiKey 和 User 的限制)
|
# 1.5 根据 allowed_providers 过滤(合并 ApiKey 和 User 的限制)
|
||||||
if allowed_providers:
|
if allowed_providers is not None:
|
||||||
original_count = len(providers)
|
original_count = len(providers)
|
||||||
# 同时支持 provider id 和 name 匹配
|
# 同时支持 provider id 和 name 匹配
|
||||||
providers = [
|
providers = [
|
||||||
@@ -928,7 +928,7 @@ class CacheAwareScheduler:
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
# 检查 Endpoint 是否在允许列表中
|
# 检查 Endpoint 是否在允许列表中
|
||||||
if allowed_endpoints and endpoint.id not in allowed_endpoints:
|
if allowed_endpoints is not None and endpoint.id not in allowed_endpoints:
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"Endpoint {endpoint.id[:8]}... 不在用户/API Key 的允许列表中,跳过"
|
f"Endpoint {endpoint.id[:8]}... 不在用户/API Key 的允许列表中,跳过"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user