Merge branch 'dev' of https://github.com/MaiM-with-u/MaiBot into dev
This commit is contained in:
@@ -175,14 +175,6 @@ temperature = 0.2
|
||||
max_tokens = 800
|
||||
```
|
||||
|
||||
### replyer_2 - 次要回复模型
|
||||
```toml
|
||||
[model_task_config.replyer_2]
|
||||
model_list = ["siliconflow-deepseek-v3"]
|
||||
temperature = 0.7
|
||||
max_tokens = 800
|
||||
```
|
||||
|
||||
### planner - 决策模型
|
||||
负责决定MaiBot该做什么:
|
||||
```toml
|
||||
|
||||
@@ -194,7 +194,19 @@ def load_log_config(): # sourcery skip: use-contextlib-suppress
|
||||
"log_level": "INFO", # 全局日志级别(向下兼容)
|
||||
"console_log_level": "INFO", # 控制台日志级别
|
||||
"file_log_level": "DEBUG", # 文件日志级别
|
||||
"suppress_libraries": ["faiss","httpx", "urllib3", "asyncio", "websockets", "httpcore", "requests", "peewee", "openai","uvicorn","jieba"],
|
||||
"suppress_libraries": [
|
||||
"faiss",
|
||||
"httpx",
|
||||
"urllib3",
|
||||
"asyncio",
|
||||
"websockets",
|
||||
"httpcore",
|
||||
"requests",
|
||||
"peewee",
|
||||
"openai",
|
||||
"uvicorn",
|
||||
"jieba",
|
||||
],
|
||||
"library_log_levels": {"aiohttp": "WARNING"},
|
||||
}
|
||||
|
||||
@@ -205,8 +217,6 @@ def load_log_config(): # sourcery skip: use-contextlib-suppress
|
||||
return config.get("log", default_config)
|
||||
except Exception as e:
|
||||
print(f"[日志系统] 加载日志配置失败: {e}")
|
||||
pass
|
||||
|
||||
return default_config
|
||||
|
||||
|
||||
@@ -404,7 +414,6 @@ MODULE_COLORS = {
|
||||
"model_utils": "\033[38;5;164m", # 紫红色
|
||||
"relationship_fetcher": "\033[38;5;170m", # 浅紫色
|
||||
"relationship_builder": "\033[38;5;93m", # 浅蓝色
|
||||
|
||||
# s4u
|
||||
"context_web_api": "\033[38;5;240m", # 深灰色
|
||||
"S4U_chat": "\033[92m", # 深灰色
|
||||
@@ -441,6 +450,37 @@ MODULE_ALIASES = {
|
||||
RESET_COLOR = "\033[0m"
|
||||
|
||||
|
||||
def convert_pathname_to_module(logger, method_name, event_dict):
|
||||
# sourcery skip: extract-method, use-string-remove-affix
|
||||
"""将 pathname 转换为模块风格的路径"""
|
||||
if "pathname" in event_dict:
|
||||
pathname = event_dict["pathname"]
|
||||
try:
|
||||
# 获取项目根目录 - 使用绝对路径确保准确性
|
||||
logger_file = Path(__file__).resolve()
|
||||
project_root = logger_file.parent.parent.parent
|
||||
pathname_path = Path(pathname).resolve()
|
||||
rel_path = pathname_path.relative_to(project_root)
|
||||
|
||||
# 转换为模块风格:移除 .py 扩展名,将路径分隔符替换为点
|
||||
module_path = str(rel_path).replace("\\", ".").replace("/", ".")
|
||||
if module_path.endswith(".py"):
|
||||
module_path = module_path[:-3]
|
||||
|
||||
# 使用转换后的模块路径替换 module 字段
|
||||
event_dict["module"] = module_path
|
||||
# 移除原始的 pathname 字段
|
||||
del event_dict["pathname"]
|
||||
except Exception:
|
||||
# 如果转换失败,删除 pathname 但保留原始的 module(如果有的话)
|
||||
del event_dict["pathname"]
|
||||
# 如果没有 module 字段,使用文件名作为备选
|
||||
if "module" not in event_dict:
|
||||
event_dict["module"] = Path(pathname).stem
|
||||
|
||||
return event_dict
|
||||
|
||||
|
||||
class ModuleColoredConsoleRenderer:
|
||||
"""自定义控制台渲染器,为不同模块提供不同颜色"""
|
||||
|
||||
@@ -563,7 +603,7 @@ class ModuleColoredConsoleRenderer:
|
||||
# 处理其他字段
|
||||
extras = []
|
||||
for key, value in event_dict.items():
|
||||
if key not in ("timestamp", "level", "logger_name", "event"):
|
||||
if key not in ("timestamp", "level", "logger_name", "event", "module", "lineno", "pathname"):
|
||||
# 确保值也转换为字符串
|
||||
if isinstance(value, (dict, list)):
|
||||
try:
|
||||
@@ -604,6 +644,13 @@ def configure_structlog():
|
||||
processors=[
|
||||
structlog.contextvars.merge_contextvars,
|
||||
structlog.processors.add_log_level,
|
||||
structlog.processors.CallsiteParameterAdder(
|
||||
parameters=[
|
||||
structlog.processors.CallsiteParameter.MODULE,
|
||||
structlog.processors.CallsiteParameter.LINENO,
|
||||
]
|
||||
),
|
||||
convert_pathname_to_module,
|
||||
structlog.processors.StackInfoRenderer(),
|
||||
structlog.dev.set_exc_info,
|
||||
structlog.processors.TimeStamper(fmt=get_timestamp_format(), utc=False),
|
||||
@@ -628,6 +675,10 @@ file_formatter = structlog.stdlib.ProcessorFormatter(
|
||||
structlog.stdlib.add_log_level,
|
||||
structlog.stdlib.PositionalArgumentsFormatter(),
|
||||
structlog.processors.TimeStamper(fmt="iso"),
|
||||
structlog.processors.CallsiteParameterAdder(
|
||||
parameters=[structlog.processors.CallsiteParameter.MODULE, structlog.processors.CallsiteParameter.LINENO]
|
||||
),
|
||||
convert_pathname_to_module,
|
||||
structlog.processors.StackInfoRenderer(),
|
||||
structlog.processors.format_exc_info,
|
||||
],
|
||||
@@ -767,8 +818,8 @@ def start_log_cleanup_task():
|
||||
|
||||
def cleanup_task():
|
||||
while True:
|
||||
time.sleep(24 * 60 * 60) # 每24小时执行一次
|
||||
cleanup_old_logs()
|
||||
time.sleep(24 * 60 * 60) # 每24小时执行一次
|
||||
|
||||
cleanup_thread = threading.Thread(target=cleanup_task, daemon=True)
|
||||
cleanup_thread.start()
|
||||
|
||||
Reference in New Issue
Block a user