feat:架构重构
This commit is contained in:
+7
-32
@@ -40,38 +40,19 @@ class Settings:
|
||||
default_factory=lambda: int(os.getenv("TYPESAFE_MAX_RETRIES", "2"))
|
||||
)
|
||||
|
||||
# 意图门控使用选中项自身的概率,阈值需按真实语料校准
|
||||
# 新建、修改会改动大屏,阈值较严;问答判错代价低,阈值较宽
|
||||
intent_min_probability: float = field(
|
||||
default_factory=lambda: float(os.getenv("INTENT_MIN_PROBABILITY", "0.7"))
|
||||
)
|
||||
# 意图门控:Jev 选中 qa 且概率达到阈值才走问答,其余都交给 screen agent;阈值按真实语料校准
|
||||
intent_qa_min_probability: float = field(
|
||||
default_factory=lambda: float(os.getenv("INTENT_QA_MIN_PROBABILITY", "0.5"))
|
||||
)
|
||||
# 同一问题最多澄清的轮数,用尽后不再追问
|
||||
intent_max_clarify_rounds: int = field(
|
||||
default_factory=lambda: int(os.getenv("INTENT_MAX_CLARIFY_ROUNDS", "1"))
|
||||
)
|
||||
|
||||
# 动作自动修正次数,不含首次生成,0 表示不重试,与用户澄清轮数无关
|
||||
max_action_retries: int = field(
|
||||
default_factory=lambda: int(os.getenv("MAX_ACTION_RETRIES", "2"))
|
||||
# screen agent 单次运行的模型调用上限,包括读取 skill、查询物料、提交修正和最终回复
|
||||
max_agent_steps: int = field(
|
||||
default_factory=lambda: int(os.getenv("MAX_AGENT_STEPS", "12"))
|
||||
)
|
||||
|
||||
# 物料字段 MCP 服务:只给模型查询字段定义,只监听本机,随应用启动
|
||||
mcp_material_url: str = field(
|
||||
default_factory=lambda: (
|
||||
os.getenv("MCP_MATERIAL_URL") or "http://127.0.0.1:8201/mcp"
|
||||
)
|
||||
)
|
||||
# 单次字段查询的超时(秒)
|
||||
# 单次 MCP 工具调用的超时(秒),服务列表见 mcp_servers.json
|
||||
mcp_tool_timeout: float = field(
|
||||
default_factory=lambda: float(os.getenv("MCP_TOOL_TIMEOUT", "5"))
|
||||
)
|
||||
# 生成动作或修正建议时,最多几轮查询字段,之后必须给出结果
|
||||
max_field_tool_rounds: int = field(
|
||||
default_factory=lambda: int(os.getenv("MAX_FIELD_TOOL_ROUNDS", "4"))
|
||||
)
|
||||
|
||||
# 没有任何对话的空会话保留时长(秒),超时后视为不存在
|
||||
conversation_empty_ttl: int = field(
|
||||
@@ -126,18 +107,12 @@ class Settings:
|
||||
raise ValueError("CONVERSATION_EMPTY_TTL 必须是正整数")
|
||||
if self.conversation_history_turns < 0:
|
||||
raise ValueError("CONVERSATION_HISTORY_TURNS 必须是非负整数")
|
||||
if type(self.max_action_retries) is not int or self.max_action_retries < 0:
|
||||
raise ValueError("MAX_ACTION_RETRIES 必须是非负整数")
|
||||
if self.max_agent_steps < 1:
|
||||
raise ValueError("MAX_AGENT_STEPS 必须是正整数")
|
||||
if self.mcp_tool_timeout <= 0:
|
||||
raise ValueError("MCP_TOOL_TIMEOUT 必须是正数")
|
||||
if self.max_field_tool_rounds < 0:
|
||||
raise ValueError("MAX_FIELD_TOOL_ROUNDS 必须是非负整数")
|
||||
if not 0 <= self.intent_min_probability <= 1:
|
||||
raise ValueError("INTENT_MIN_PROBABILITY 必须在 0 到 1 之间")
|
||||
if not 0 <= self.intent_qa_min_probability <= 1:
|
||||
raise ValueError("INTENT_QA_MIN_PROBABILITY 必须在 0 到 1 之间")
|
||||
if self.intent_max_clarify_rounds < 0:
|
||||
raise ValueError("INTENT_MAX_CLARIFY_ROUNDS 必须是非负整数")
|
||||
|
||||
|
||||
settings = Settings()
|
||||
|
||||
Reference in New Issue
Block a user