mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
refactor: 移除 Provider/Endpoint 级别的 timeout 配置,改用全局环境变量
- 废弃 Provider.timeout 和 ProviderEndpoint.timeout 字段(保留数据库列以兼容) - 非流式请求超时由 HTTP_REQUEST_TIMEOUT 环境变量控制(默认 300 秒) - 流式请求首字节超时由 STREAM_FIRST_BYTE_TIMEOUT 环境变量控制(默认 30 秒) - 移除前端表单中的超时配置输入框 - 简化 settings.py 中的 TTFB 超时解析逻辑 - 更新 API 请求/响应模型,移除 timeout 字段 - 更新导入导出功能,不再包含 timeout 配置
This commit is contained in:
@@ -88,7 +88,6 @@ class CreateProviderRequest(BaseModel):
|
||||
is_active: Optional[bool] = Field(True, description="是否启用")
|
||||
concurrent_limit: Optional[int] = Field(None, ge=0, description="并发限制")
|
||||
# 请求配置(从 Endpoint 迁移)
|
||||
timeout: Optional[int] = Field(300, ge=1, le=600, description="请求超时(秒)")
|
||||
max_retries: Optional[int] = Field(2, ge=0, le=10, description="最大重试次数")
|
||||
proxy: Optional[ProxyConfig] = Field(None, description="代理配置")
|
||||
config: Optional[Dict[str, Any]] = Field(None, description="其他配置")
|
||||
@@ -159,7 +158,6 @@ class UpdateProviderRequest(BaseModel):
|
||||
is_active: Optional[bool] = None
|
||||
concurrent_limit: Optional[int] = Field(None, ge=0)
|
||||
# 请求配置(从 Endpoint 迁移)
|
||||
timeout: Optional[int] = Field(None, ge=1, le=600, description="请求超时(秒)")
|
||||
max_retries: Optional[int] = Field(None, ge=0, le=10, description="最大重试次数")
|
||||
proxy: Optional[ProxyConfig] = Field(None, description="代理配置")
|
||||
config: Optional[Dict[str, Any]] = None
|
||||
|
||||
@@ -403,7 +403,6 @@ class ProviderUpdate(BaseModel):
|
||||
api_format: Optional[str] = None
|
||||
base_url: Optional[str] = None
|
||||
headers: Optional[dict] = None
|
||||
timeout: Optional[int] = Field(None, ge=1, le=600)
|
||||
max_retries: Optional[int] = Field(None, ge=0, le=10)
|
||||
priority: Optional[int] = None
|
||||
weight: Optional[float] = Field(None, gt=0)
|
||||
@@ -423,7 +422,6 @@ class ProviderResponse(BaseModel):
|
||||
api_format: str
|
||||
base_url: str
|
||||
headers: Optional[dict]
|
||||
timeout: int
|
||||
max_retries: int
|
||||
priority: int
|
||||
weight: float
|
||||
|
||||
@@ -552,11 +552,10 @@ class Provider(Base):
|
||||
concurrent_limit = Column(Integer, nullable=True) # 并发请求限制
|
||||
|
||||
# 请求配置(从 Endpoint 迁移,作为全局默认值)
|
||||
# 超时 300 秒对于 LLM API 是合理的默认值:
|
||||
# - 大多数请求在 30 秒内完成
|
||||
# - 复杂推理(如 Claude thinking)可能需要 60-120 秒
|
||||
# - 300 秒足够覆盖极端场景(如超长上下文、复杂工具调用)
|
||||
timeout = Column(Integer, default=300, nullable=True) # 请求超时(秒)
|
||||
# [已废弃] timeout 字段不再使用,超时由环境变量控制:
|
||||
# - 非流式请求: HTTP_REQUEST_TIMEOUT(默认 300 秒)
|
||||
# - 流式首字节: STREAM_FIRST_BYTE_TIMEOUT(默认 30 秒)
|
||||
timeout = Column(Integer, default=300, nullable=True) # [已废弃] 请求超时(秒)
|
||||
max_retries = Column(Integer, default=2, nullable=True) # 最大重试次数
|
||||
proxy = Column(JSONB, nullable=True) # 代理配置: {url, username, password, enabled}
|
||||
|
||||
@@ -604,7 +603,7 @@ class ProviderEndpoint(Base):
|
||||
|
||||
# 请求配置
|
||||
header_rules = Column(JSON, nullable=True) # 请求头规则 [{action, key, value, from, to}]
|
||||
timeout = Column(Integer, default=300) # 超时(秒)
|
||||
timeout = Column(Integer, default=300) # [已废弃] 超时(秒),由环境变量控制
|
||||
max_retries = Column(Integer, default=2) # 最大重试次数
|
||||
|
||||
# 状态
|
||||
|
||||
@@ -37,7 +37,6 @@ class ProviderEndpointCreate(BaseModel):
|
||||
description="请求头规则列表,支持 set/drop/rename 操作",
|
||||
)
|
||||
|
||||
timeout: int = Field(default=300, ge=10, le=600, description="超时时间(秒)")
|
||||
max_retries: int = Field(default=2, ge=0, le=10, description="最大重试次数")
|
||||
|
||||
# 额外配置
|
||||
@@ -81,7 +80,6 @@ class ProviderEndpointUpdate(BaseModel):
|
||||
description="请求头规则列表,支持 set/drop/rename 操作",
|
||||
)
|
||||
|
||||
timeout: Optional[int] = Field(default=None, ge=10, le=600, description="超时时间(秒)")
|
||||
max_retries: Optional[int] = Field(default=None, ge=0, le=10, description="最大重试次数")
|
||||
is_active: Optional[bool] = Field(default=None, description="是否启用")
|
||||
config: Optional[Dict[str, Any]] = Field(default=None, description="额外配置")
|
||||
@@ -117,7 +115,6 @@ class ProviderEndpointResponse(BaseModel):
|
||||
default=None, description="请求头规则列表"
|
||||
)
|
||||
|
||||
timeout: int
|
||||
max_retries: int
|
||||
|
||||
# 状态
|
||||
@@ -619,7 +616,6 @@ class ProviderWithEndpointsSummary(BaseModel):
|
||||
quota_expires_at: Optional[datetime] = Field(default=None, description="配额过期时间")
|
||||
|
||||
# 请求配置(从 Endpoint 迁移)
|
||||
timeout: Optional[int] = Field(default=300, description="请求超时(秒)")
|
||||
max_retries: Optional[int] = Field(default=2, description="最大重试次数")
|
||||
proxy: Optional[Dict[str, Any]] = Field(default=None, description="代理配置")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user