fix: 优化模型获取错误状态处理逻辑

只有在所有端点都失败时才记录错误,部分端点失败不影响整体状态
This commit is contained in:
fawney19
2026-01-20 11:11:21 +08:00
parent 8e7582d8b9
commit ffca11bc18

View File

@@ -281,20 +281,22 @@ class ModelFetchScheduler:
# 并发获取模型
all_models, errors, has_success = await fetch_models_from_endpoints(endpoint_configs)
# 记录获取结果
error_msg = "; ".join(errors) if errors else None
# 记录获取时间
key.last_models_fetch_at = now
key.last_models_fetch_error = error_msg
# 如果没有任何成功的响应,不更新 allowed_models保留旧数据
if not has_success:
# 所有端点都失败时,记录错误
error_msg = "; ".join(errors) if errors else "All endpoints failed"
key.last_models_fetch_error = error_msg
logger.warning(
f"Provider {provider.name} Key {key.id} 所有端点获取失败,保留现有模型列表"
)
if not error_msg:
key.last_models_fetch_error = "All endpoints failed"
return "error"
# 有成功的响应,清除错误状态(部分失败不算失败)
key.last_models_fetch_error = None
# 去重获取模型 ID 列表
fetched_model_ids: set[str] = set()
for model in all_models: