feat: 添加提供商格式转换优先级保持配置

- 新增 Provider.keep_priority_on_conversion 字段,控制格式转换时是否保持优先级
- 新增全局配置 KEEP_PRIORITY_ON_CONVERSION,可全局启用优先级保持
- 调度器根据配置决定是否降级需要格式转换的候选
- 前端 Provider 表单添加"保持优先级"开关
- 调整 HTTP 读写超时默认值为 3600 秒
This commit is contained in:
fawney19
2026-01-28 15:53:33 +08:00
parent 5e81a0b581
commit bae278a0c1
8 changed files with 212 additions and 27 deletions

View File

@@ -645,6 +645,12 @@ class Provider(Base):
# 101+: 备用(高成本或限制严格的)
provider_priority = Column(Integer, default=100)
# 格式转换时是否保持优先级(默认 False
# - False: 需要格式转换时,该提供商的候选会被降级到不需要转换的候选之后
# - True: 即使需要格式转换,也保持原优先级排名
# 注意:如果全局配置 KEEP_PRIORITY_ON_CONVERSION=true此字段被忽略所有提供商都保持优先级
keep_priority_on_conversion = Column(Boolean, default=False, nullable=False)
# 状态
is_active = Column(Boolean, default=True, nullable=False)

View File

@@ -613,6 +613,10 @@ class ProviderUpdateRequest(BaseModel):
description: Optional[str] = None
website: Optional[str] = Field(None, max_length=500, description="主站网站")
provider_priority: Optional[int] = Field(None, description="提供商优先级(数字越小越优先)")
keep_priority_on_conversion: Optional[bool] = Field(
None,
description="格式转换时是否保持优先级True=保持原优先级False=需要转换时降级)",
)
is_active: Optional[bool] = None
billing_type: Optional[str] = Field(
None, description="计费类型monthly_quota/pay_as_you_go/free_tier"
@@ -637,6 +641,10 @@ class ProviderWithEndpointsSummary(BaseModel):
description: Optional[str] = None
website: Optional[str] = None
provider_priority: int = Field(default=100, description="提供商优先级(数字越小越优先)")
keep_priority_on_conversion: bool = Field(
default=False,
description="格式转换时是否保持优先级True=保持原优先级False=需要转换时降级)",
)
is_active: bool
# 计费相关字段