- 彻底移除「每 N 次请求强制思考」的间隔调度机制(思考/非思考交替导致缓存命中率极低) - 运行模式收敛为 fast/thinking:原 deep 改名 thinking,历史数据读取时映射 - 新增推理强度五档滑块(low/medium/high/xhigh/max + 默认不传参),置于模型/模式弹窗 - 模型配置新增 reasoning_effort 开关;档位会话级持久化到对话 meta,随对话保存/恢复 - 个人空间新增「默认推理强度」;新用户默认运行模式改为 thinking - 滑块交互:JS 插值驱动(点击/拖动/吸附全程平滑),首帧档位语义定位无闪烁 - 保存链路:前端防抖 600ms + conversation_id 兜底,修复 /new 发消息丢档位、切对话恢复错误
118 lines
2.8 KiB
Python
118 lines
2.8 KiB
Python
"""全局额度与工具限制配置。"""
|
||
|
||
import os
|
||
|
||
# 上下文与文件
|
||
MAX_CONTEXT_SIZE = 100000
|
||
MAX_FILE_SIZE = 10 * 1024 * 1024
|
||
MAX_OPEN_FILES = 20
|
||
MAX_UPLOAD_SIZE = 50 * 1024 * 1024
|
||
|
||
# 执行超时
|
||
CODE_EXECUTION_TIMEOUT = 60
|
||
TERMINAL_COMMAND_TIMEOUT = 120
|
||
SEARCH_MAX_RESULTS = 10
|
||
|
||
# 自动修复与工具调用限制(None 表示不限制)
|
||
AUTO_FIX_TOOL_CALL = False
|
||
AUTO_FIX_MAX_ATTEMPTS = 3
|
||
MAX_ITERATIONS_PER_TASK = None
|
||
MAX_CONSECUTIVE_SAME_TOOL = None
|
||
MAX_TOTAL_TOOL_CALLS = None
|
||
TOOL_CALL_COOLDOWN = 0.5
|
||
|
||
# 推理强度档位(模型配置 supports_reasoning_effort 时,思考模式下可选;None 表示默认不传参)
|
||
REASONING_EFFORT_LEVELS = ("low", "medium", "high", "xhigh", "max")
|
||
|
||
# 工具字符/体积限制
|
||
MAX_READ_FILE_CHARS = 50000
|
||
MAX_FOCUS_FILE_CHARS = 30000
|
||
MAX_RUN_COMMAND_CHARS = 50000
|
||
MAX_EXTRACT_WEBPAGE_CHARS = 80000
|
||
|
||
# read_file 子配置
|
||
READ_TOOL_MAX_FILE_SIZE = 100 * 1024 * 1024
|
||
READ_TOOL_DEFAULT_MAX_CHARS = MAX_READ_FILE_CHARS
|
||
READ_TOOL_DEFAULT_CONTEXT_BEFORE = 1
|
||
READ_TOOL_DEFAULT_CONTEXT_AFTER = 1
|
||
READ_TOOL_MAX_CONTEXT_BEFORE = 3
|
||
READ_TOOL_MAX_CONTEXT_AFTER = 5
|
||
READ_TOOL_DEFAULT_MAX_MATCHES = 5
|
||
READ_TOOL_MAX_MATCHES = 50
|
||
|
||
PROJECT_MAX_STORAGE_MB = int(os.environ.get("PROJECT_MAX_STORAGE_MB", "2048"))
|
||
PROJECT_MAX_STORAGE_BYTES = PROJECT_MAX_STORAGE_MB * 1024 * 1024
|
||
|
||
# 只读权限模式:run_command 白名单配置
|
||
READONLY_RUN_COMMAND_ALLOWED = (
|
||
"grep",
|
||
"find",
|
||
"ls",
|
||
"pwd",
|
||
"tree",
|
||
"cat",
|
||
"head",
|
||
"tail",
|
||
"less",
|
||
"rg",
|
||
"wc",
|
||
"du",
|
||
"stat",
|
||
"file",
|
||
"sed",
|
||
"awk",
|
||
"git",
|
||
)
|
||
READONLY_RUN_COMMAND_ALLOWED_GIT_SUBCOMMANDS = (
|
||
"status",
|
||
"log",
|
||
"diff",
|
||
"show",
|
||
"branch",
|
||
"rev-parse",
|
||
)
|
||
READONLY_RUN_COMMAND_BLOCKED_TOKENS = (
|
||
"&&",
|
||
"||",
|
||
";",
|
||
"|",
|
||
">",
|
||
"<",
|
||
"$(",
|
||
"`",
|
||
)
|
||
|
||
__all__ = [
|
||
"MAX_CONTEXT_SIZE",
|
||
"MAX_FILE_SIZE",
|
||
"MAX_OPEN_FILES",
|
||
"MAX_UPLOAD_SIZE",
|
||
"CODE_EXECUTION_TIMEOUT",
|
||
"TERMINAL_COMMAND_TIMEOUT",
|
||
"SEARCH_MAX_RESULTS",
|
||
"AUTO_FIX_TOOL_CALL",
|
||
"AUTO_FIX_MAX_ATTEMPTS",
|
||
"MAX_ITERATIONS_PER_TASK",
|
||
"MAX_CONSECUTIVE_SAME_TOOL",
|
||
"MAX_TOTAL_TOOL_CALLS",
|
||
"TOOL_CALL_COOLDOWN",
|
||
"REASONING_EFFORT_LEVELS",
|
||
"MAX_READ_FILE_CHARS",
|
||
"MAX_FOCUS_FILE_CHARS",
|
||
"MAX_RUN_COMMAND_CHARS",
|
||
"MAX_EXTRACT_WEBPAGE_CHARS",
|
||
"READ_TOOL_MAX_FILE_SIZE",
|
||
"READ_TOOL_DEFAULT_MAX_CHARS",
|
||
"READ_TOOL_DEFAULT_CONTEXT_BEFORE",
|
||
"READ_TOOL_DEFAULT_CONTEXT_AFTER",
|
||
"READ_TOOL_MAX_CONTEXT_BEFORE",
|
||
"READ_TOOL_MAX_CONTEXT_AFTER",
|
||
"READ_TOOL_DEFAULT_MAX_MATCHES",
|
||
"READ_TOOL_MAX_MATCHES",
|
||
"PROJECT_MAX_STORAGE_MB",
|
||
"PROJECT_MAX_STORAGE_BYTES",
|
||
"READONLY_RUN_COMMAND_ALLOWED",
|
||
"READONLY_RUN_COMMAND_ALLOWED_GIT_SUBCOMMANDS",
|
||
"READONLY_RUN_COMMAND_BLOCKED_TOKENS",
|
||
]
|