From 18f85a1fa708a158cbca90540d365690271075b6 Mon Sep 17 00:00:00 2001 From: sladro Date: Thu, 9 Oct 2025 17:08:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BB=B6=E9=95=BF=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4=E4=BB=8E?= =?UTF-8?q?10=E7=A7=92=E5=88=B060=E7=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复用户输入超时问题: - 将默认交互超时从10秒延长到60秒,给用户充足输入时间 - 避免用户在第9秒开始输入但来不及完成的问题 - 更新timeout_prompt和timeout_choice_prompt默认参数 - 在config.yaml添加interaction_timeout配置项 - 更新settings.py中的默认配置值 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- config/config.yaml | 4 ++++ src/bidmaster/config/settings.py | 2 +- src/bidmaster/utils/timeout_input.py | 10 +++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index e9a56d5..7b51bc2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -36,6 +36,10 @@ performance: max_workers: 4 timeout: 300 +# 交互设置 +interaction: + interaction_timeout: 60 # 用户输入超时时间(秒) + # 日志设置 logging: level: INFO diff --git a/src/bidmaster/config/settings.py b/src/bidmaster/config/settings.py index ebfd789..2038cb2 100644 --- a/src/bidmaster/config/settings.py +++ b/src/bidmaster/config/settings.py @@ -58,7 +58,7 @@ class Settings(BaseSettings): timeout: int = Field(default=300, description="超时时间(秒)") # 交互配置 - interaction_timeout: int = Field(default=10, description="用户交互超时时间(秒)") + interaction_timeout: int = Field(default=60, description="用户交互超时时间(秒)") # 日志配置 log_level: str = Field(default="INFO", description="日志级别") diff --git a/src/bidmaster/utils/timeout_input.py b/src/bidmaster/utils/timeout_input.py index dd3eb9a..7cdbbf0 100644 --- a/src/bidmaster/utils/timeout_input.py +++ b/src/bidmaster/utils/timeout_input.py @@ -16,7 +16,7 @@ console = Console() def timeout_prompt( prompt: str, default: Optional[str] = None, - timeout: int = 10, + timeout: int = 60, choices: Optional[List[str]] = None, ) -> str: """带超时的输入提示 @@ -24,7 +24,7 @@ def timeout_prompt( Args: prompt: 提示文本 default: 默认值 - timeout: 超时时间(秒) + timeout: 超时时间(秒),默认60秒给用户充足输入时间 choices: 可选的选项列表(如果提供,则进行验证) Returns: @@ -66,7 +66,7 @@ def timeout_prompt( except Empty: # 超时 - 需要打印换行以清除输入行 print() # 打印空行以清理输入提示 - console.print(f"[yellow]⏰ {timeout}秒内未输入,自动使用默认值: {default}[/yellow]") + console.print(f"[yellow]⏰ {timeout}秒内未完成输入,自动使用默认值: {default}[/yellow]") return default or "" @@ -74,7 +74,7 @@ def timeout_choice_prompt( prompt: str, options: List[str], default: Optional[str] = None, - timeout: int = 10, + timeout: int = 60, ) -> str: """带超时的选择输入 @@ -82,7 +82,7 @@ def timeout_choice_prompt( prompt: 提示文本 options: 选项列表 default: 默认选项 - timeout: 超时时间(秒) + timeout: 超时时间(秒),默认60秒 Returns: 选择的选项索引(字符串形式,如"1","2")