183 lines
6.2 KiB
Python
183 lines
6.2 KiB
Python
# config.py - 系统配置文件(添加了终端配置)
|
||
|
||
# API配置
|
||
API_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"
|
||
API_KEY = "3e96a682-919d-45c1-acb2-53bc4e9660d3" # 替换为你的API密钥
|
||
MODEL_ID = "kimi-k2-250905" #模型ID
|
||
|
||
#API_BASE_URL = "https://api.moonshot.cn/v1"
|
||
#API_KEY = "sk-xW0xjfQM6Mp9ZCWMLlnHiRJcpEOIZPTkXcN0dQ15xpZSuw2y" # 替换为你的API密钥
|
||
#MODEL_ID = "kimi-k2-thinking" #模型ID
|
||
|
||
# Tavily搜索配置
|
||
TAVILY_API_KEY = "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" # 替换为你的Tavily API密钥
|
||
|
||
# 系统配置
|
||
DEFAULT_PROJECT_PATH = "./project" # 默认项目文件夹
|
||
MAX_CONTEXT_SIZE = 100000 # 最大上下文字符数(约100K)
|
||
MAX_FILE_SIZE = 10 * 1024 * 1024 # 最大文件大小 10MB
|
||
MAX_OPEN_FILES = 20 # 最多同时打开的文件数
|
||
MAX_UPLOAD_SIZE = 50 * 1024 * 1024 # 单次上传最大50MB
|
||
UPLOAD_ALLOWED_EXTENSIONS = []
|
||
AGENT_VERSION = "v1.1" # 前端显示版本号
|
||
|
||
# 执行配置
|
||
CODE_EXECUTION_TIMEOUT = 60 # 代码执行超时(秒)
|
||
TERMINAL_COMMAND_TIMEOUT = 30 # 终端命令超时(秒)
|
||
SEARCH_MAX_RESULTS = 10 # 搜索最大结果数
|
||
|
||
# 持久化终端配置(新增)
|
||
MAX_TERMINALS = 3 # 最大同时开启的终端数量
|
||
TERMINAL_BUFFER_SIZE = 100000 # 每个终端的最大缓冲区大小(字符)
|
||
TERMINAL_DISPLAY_SIZE = 50000 # 终端显示大小限制(字符)
|
||
TERMINAL_TIMEOUT = 300 # 终端空闲超时(秒)
|
||
TERMINAL_OUTPUT_WAIT = 5 # 等待终端输出的默认时间(秒)
|
||
TERMINAL_SNAPSHOT_DEFAULT_LINES = 50 # 终端快照默认返回的行数
|
||
TERMINAL_SNAPSHOT_MAX_LINES = 200 # 终端快照允许的最大行数
|
||
TERMINAL_SNAPSHOT_MAX_CHARS = 60000 # 终端快照返回的最大字符数
|
||
TERMINAL_INPUT_MAX_CHARS = 20000 # terminal_input返回的最大字符数
|
||
|
||
# 在 config.py 中添加以下配置项
|
||
|
||
# 自动修复配置
|
||
AUTO_FIX_TOOL_CALL = False # 是否自动修复工具调用格式错误
|
||
AUTO_FIX_MAX_ATTEMPTS = 3 # 最大自动修复尝试次数
|
||
|
||
# 工具调用安全限制
|
||
MAX_ITERATIONS_PER_TASK = 100# 单个任务最大迭代次数
|
||
MAX_CONSECUTIVE_SAME_TOOL = 50 # 连续相同工具调用的最大次数
|
||
MAX_TOTAL_TOOL_CALLS = 100 #单个任务最大工具调用总数
|
||
TOOL_CALL_COOLDOWN = 0.5 # 工具调用之间的最小间隔(秒)
|
||
|
||
# 文件路径
|
||
PROMPTS_DIR = "./prompts"
|
||
DATA_DIR = "./data"
|
||
LOGS_DIR = "./logs"
|
||
# 多用户空间配置
|
||
USER_SPACE_DIR = "./users" # 每个用户的工作区根目录
|
||
USERS_DB_FILE = f"{DATA_DIR}/users.json" # 用户信息存储
|
||
INVITE_CODES_FILE = f"{DATA_DIR}/invite_codes.json" # 邀请码存储文件
|
||
|
||
# 记忆文件
|
||
MAIN_MEMORY_FILE = f"{DATA_DIR}/memory.md"
|
||
TASK_MEMORY_FILE = f"{DATA_DIR}/task_memory.md"
|
||
CONVERSATION_HISTORY_FILE = f"{DATA_DIR}/conversation_history.json"
|
||
|
||
# 日志配置
|
||
LOG_LEVEL = "INFO" # DEBUG, INFO, WARNING, ERROR
|
||
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||
|
||
# 安全配置
|
||
FORBIDDEN_COMMANDS = [
|
||
"rm -rf /",
|
||
"rm -rf ~",
|
||
"format",
|
||
"shutdown",
|
||
"reboot",
|
||
"kill -9",
|
||
"dd if=",
|
||
]
|
||
|
||
FORBIDDEN_PATHS = [
|
||
"/System",
|
||
"/usr",
|
||
"/bin",
|
||
"/sbin",
|
||
"/etc",
|
||
"/var",
|
||
"/tmp",
|
||
"/Applications",
|
||
"/Library",
|
||
"C:\\Windows",
|
||
"C:\\Program Files",
|
||
"C:\\Program Files (x86)",
|
||
"C:\\ProgramData"
|
||
]
|
||
|
||
# 这些是绝对不允许的根路径
|
||
FORBIDDEN_ROOT_PATHS = [
|
||
"/",
|
||
"C:\\",
|
||
"~"
|
||
]
|
||
|
||
# 确认操作列表
|
||
NEED_CONFIRMATION = [
|
||
"delete_file",
|
||
"delete_folder",
|
||
"clear_file",
|
||
"execute_terminal",
|
||
"batch_delete"
|
||
]
|
||
|
||
# 输出格式
|
||
OUTPUT_FORMATS = {
|
||
"thinking": "💭 [思考]",
|
||
"action": "🔧 [执行]",
|
||
"file": "📁 [文件]",
|
||
"search": "🔍 [搜索]",
|
||
"code": "💻 [代码]",
|
||
"terminal": "⚡ [终端]",
|
||
"memory": "📝 [记忆]",
|
||
"success": "✅ [成功]",
|
||
"error": "❌ [错误]",
|
||
"warning": "⚠️ [警告]",
|
||
"confirm": "❓ [确认]",
|
||
"info": "ℹ️ [信息]",
|
||
"session": "📺 [会话]" # 新增:终端会话标记
|
||
}
|
||
# 在 config.py 文件末尾添加以下对话持久化相关配置
|
||
|
||
# ==========================================
|
||
# 对话持久化配置(新增)
|
||
# ==========================================
|
||
|
||
# 对话存储配置
|
||
CONVERSATIONS_DIR = f"{DATA_DIR}/conversations" # 对话存储目录
|
||
CONVERSATION_INDEX_FILE = "index.json" # 对话索引文件名
|
||
CONVERSATION_FILE_PREFIX = "conv_" # 对话文件前缀
|
||
|
||
# 对话管理配置
|
||
DEFAULT_CONVERSATIONS_LIMIT = 20 # API默认返回的对话数量
|
||
MAX_CONVERSATIONS_LIMIT = 100 # API允许的最大对话数量限制
|
||
CONVERSATION_TITLE_MAX_LENGTH = 100 # 对话标题最大长度
|
||
CONVERSATION_SEARCH_MAX_RESULTS = 50 # 搜索结果最大数量
|
||
|
||
# 对话清理策略配置
|
||
CONVERSATION_AUTO_CLEANUP_ENABLED = False # 是否启用自动清理旧对话
|
||
CONVERSATION_RETENTION_DAYS = 30 # 对话保留天数(如果启用自动清理)
|
||
CONVERSATION_MAX_TOTAL = 1000 # 最大对话总数(超过时清理最旧的)
|
||
|
||
# 对话备份配置
|
||
CONVERSATION_BACKUP_ENABLED = True # 是否启用对话备份
|
||
CONVERSATION_BACKUP_INTERVAL_HOURS = 24 # 备份间隔(小时)
|
||
CONVERSATION_BACKUP_MAX_COUNT = 7 # 最多保留多少个备份文件
|
||
|
||
# 对话安全配置
|
||
CONVERSATION_MAX_MESSAGE_SIZE = 50000 # 单条消息最大字符数
|
||
CONVERSATION_MAX_MESSAGES_PER_CONVERSATION = 10000 # 每个对话最大消息数
|
||
CONVERSATION_EXPORT_MAX_SIZE = 10 * 1024 * 1024 # 导出文件最大大小(10MB)
|
||
|
||
# 对话性能配置
|
||
CONVERSATION_LAZY_LOADING = True # 是否启用懒加载(只加载对话元数据,不加载完整消息)
|
||
CONVERSATION_CACHE_SIZE = 50 # 内存中缓存的对话数量
|
||
CONVERSATION_INDEX_UPDATE_BATCH_SIZE = 100 # 批量更新索引的大小
|
||
|
||
# 工具输出字符数限制
|
||
MAX_READ_FILE_CHARS = 30000 # read_file工具限制
|
||
MAX_FOCUS_FILE_CHARS = 30000 # focus_file工具限制
|
||
MAX_RUN_COMMAND_CHARS = 10000 # run_command工具限制
|
||
MAX_EXTRACT_WEBPAGE_CHARS = 80000 # extract_webpage工具限制
|
||
|
||
# 待办事项配置
|
||
TODO_MAX_TASKS = 4
|
||
TODO_MAX_OVERVIEW_LENGTH = 999
|
||
TODO_MAX_TASK_LENGTH = 999
|
||
|
||
# 登录配置
|
||
ADMIN_USERNAME = "jojo"
|
||
ADMIN_PASSWORD_HASH = "pbkdf2:sha256:600000$FSNAVncPXW6CBtfj$b7f093f4256de9d1a16d588565d4b1e108a9c66b2901884dd118c515258d78c7"
|
||
|
||
# 模型调用相关
|
||
DEFAULT_RESPONSE_MAX_TOKENS = 32768 # 每次API响应的默认最大tokens,可在此调整
|