Files
Mutual_Fund/nl2sql/runtime_config.py

27 lines
933 B
Python

"""NL2SQL 进程内运行时配置。"""
from __future__ import annotations
from pydantic import BaseModel, ConfigDict, Field
class Nl2SqlRuntimeConfig(BaseModel):
"""可由管理员动态调整的非敏感查询参数。"""
model_config = ConfigDict(extra="forbid", validate_assignment=True)
cache_ttl: int = Field(default=300, ge=30, le=86400)
retrieval_top_k: int = Field(default=5, ge=1, le=50)
retrieval_threshold: float = Field(default=0.0, ge=0.0, le=1.0)
max_rows: int = Field(default=1000, ge=1, le=100000)
max_join_depth: int = Field(default=3, ge=0, le=10)
def update(self, **values: object) -> dict:
"""校验并更新配置,返回当前完整配置。"""
updated = self.model_copy(update=values)
for key, value in updated.model_dump().items():
setattr(self, key, value)
return self.model_dump()
runtime_config = Nl2SqlRuntimeConfig()