use structlog instead of loguru
This commit is contained in:
12
bot.py
12
bot.py
@@ -7,7 +7,7 @@ import time
|
|||||||
import platform
|
import platform
|
||||||
import traceback
|
import traceback
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
# from src.common.logger import LogConfig, CONFIRM_STYLE_CONFIG
|
# from src.common.logger import LogConfig, CONFIRM_STYLE_CONFIG
|
||||||
from src.common.crash_logger import install_crash_handler
|
from src.common.crash_logger import install_crash_handler
|
||||||
@@ -69,10 +69,9 @@ def load_env():
|
|||||||
# 直接加载生产环境变量配置
|
# 直接加载生产环境变量配置
|
||||||
if os.path.exists(".env"):
|
if os.path.exists(".env"):
|
||||||
load_dotenv(".env", override=True)
|
load_dotenv(".env", override=True)
|
||||||
logger.success("成功加载环境变量配置")
|
logger.info("成功加载环境变量配置")
|
||||||
else:
|
else:
|
||||||
logger.error("未找到.env文件,请确保文件存在")
|
logger.warn("未找到.env文件,请确保程序所需的环境变量被正确设置")
|
||||||
raise FileNotFoundError("未找到.env文件,请确保文件存在")
|
|
||||||
|
|
||||||
|
|
||||||
def scan_provider(env_config: dict):
|
def scan_provider(env_config: dict):
|
||||||
@@ -199,6 +198,7 @@ def check_eula():
|
|||||||
|
|
||||||
|
|
||||||
def raw_main():
|
def raw_main():
|
||||||
|
load_env()
|
||||||
# 利用 TZ 环境变量设定程序工作的时区
|
# 利用 TZ 环境变量设定程序工作的时区
|
||||||
if platform.system().lower() != "windows":
|
if platform.system().lower() != "windows":
|
||||||
time.tzset()
|
time.tzset()
|
||||||
@@ -211,8 +211,6 @@ def raw_main():
|
|||||||
|
|
||||||
easter_egg()
|
easter_egg()
|
||||||
|
|
||||||
load_env()
|
|
||||||
|
|
||||||
env_config = {key: os.getenv(key) for key in os.environ}
|
env_config = {key: os.getenv(key) for key in os.environ}
|
||||||
scan_provider(env_config)
|
scan_provider(env_config)
|
||||||
|
|
||||||
@@ -235,7 +233,7 @@ if __name__ == "__main__":
|
|||||||
loop.run_until_complete(main_system.initialize())
|
loop.run_until_complete(main_system.initialize())
|
||||||
loop.run_until_complete(main_system.schedule_tasks())
|
loop.run_until_complete(main_system.schedule_tasks())
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
# loop.run_until_complete(global_api.stop())
|
# loop.run_until_complete(get_global_api().stop())
|
||||||
logger.warning("收到中断信号,正在优雅关闭...")
|
logger.warning("收到中断信号,正在优雅关闭...")
|
||||||
if loop and not loop.is_closed():
|
if loop and not loop.is_closed():
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ from src.plugin_system import (
|
|||||||
BasePlugin, register_plugin, BaseAction, BaseCommand,
|
BasePlugin, register_plugin, BaseAction, BaseCommand,
|
||||||
ComponentInfo, ActionInfo, CommandInfo, ActionActivationType, ChatMode
|
ComponentInfo, ActionInfo, CommandInfo, ActionActivationType, ChatMode
|
||||||
)
|
)
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("my_first_plugin")
|
logger = get_logger("my_first_plugin")
|
||||||
|
|
||||||
|
|||||||
BIN
requirements.txt
BIN
requirements.txt
Binary file not shown.
@@ -15,7 +15,7 @@ from src.chat.knowledge.embedding_store import EmbeddingManager
|
|||||||
from src.chat.knowledge.llm_client import LLMClient
|
from src.chat.knowledge.llm_client import LLMClient
|
||||||
from src.chat.knowledge.open_ie import OpenIE
|
from src.chat.knowledge.open_ie import OpenIE
|
||||||
from src.chat.knowledge.kg_manager import KGManager
|
from src.chat.knowledge.kg_manager import KGManager
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.knowledge.utils.hash import get_sha256
|
from src.chat.knowledge.utils.hash import get_sha256
|
||||||
|
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ from src.chat.knowledge.utils.hash import get_sha256
|
|||||||
ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||||
OPENIE_DIR = global_config["persistence"]["openie_data_path"] or os.path.join(ROOT_PATH, "data/openie")
|
OPENIE_DIR = global_config["persistence"]["openie_data_path"] or os.path.join(ROOT_PATH, "data/openie")
|
||||||
|
|
||||||
logger = get_module_logger("OpenIE导入")
|
logger = get_logger("OpenIE导入")
|
||||||
|
|
||||||
|
|
||||||
def hash_deduplicate(
|
def hash_deduplicate(
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
|||||||
|
|
||||||
from rich.progress import Progress # 替换为 rich 进度条
|
from rich.progress import Progress # 替换为 rich 进度条
|
||||||
|
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.knowledge.lpmmconfig import global_config
|
from src.chat.knowledge.lpmmconfig import global_config
|
||||||
from src.chat.knowledge.ie_process import info_extract_from_str
|
from src.chat.knowledge.ie_process import info_extract_from_str
|
||||||
from src.chat.knowledge.llm_client import LLMClient
|
from src.chat.knowledge.llm_client import LLMClient
|
||||||
@@ -28,7 +28,7 @@ from rich.progress import (
|
|||||||
TextColumn,
|
TextColumn,
|
||||||
)
|
)
|
||||||
|
|
||||||
logger = get_module_logger("LPMM知识库-信息提取")
|
logger = get_logger("LPMM知识库-信息提取")
|
||||||
|
|
||||||
|
|
||||||
ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ sys.path.insert(0, str(project_root))
|
|||||||
|
|
||||||
from src.chat.utils.chat_message_builder import build_readable_messages
|
from src.chat.utils.chat_message_builder import build_readable_messages
|
||||||
from src.common.database.database_model import Messages
|
from src.common.database.database_model import Messages
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.common.database.database import db
|
from src.common.database.database import db
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ from src.common.database.database_model import (
|
|||||||
GraphNodes,
|
GraphNodes,
|
||||||
GraphEdges,
|
GraphEdges,
|
||||||
)
|
)
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("mongodb_to_sqlite")
|
logger = get_logger("mongodb_to_sqlite")
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import sys # 新增系统模块导入
|
|||||||
import datetime # 新增导入
|
import datetime # 新增导入
|
||||||
|
|
||||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.knowledge.lpmmconfig import global_config
|
from src.chat.knowledge.lpmmconfig import global_config
|
||||||
|
|
||||||
logger = get_logger("lpmm")
|
logger = get_logger("lpmm")
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from src.chat.heart_flow.heartflow import heartflow
|
from src.chat.heart_flow.heartflow import heartflow
|
||||||
from src.chat.heart_flow.sub_heartflow import ChatState
|
from src.chat.heart_flow.sub_heartflow import ChatState
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
import time
|
import time
|
||||||
|
|
||||||
logger = get_logger("api")
|
logger = get_logger("api")
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import strawberry
|
|||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from strawberry.fastapi import GraphQLRouter
|
from strawberry.fastapi import GraphQLRouter
|
||||||
|
|
||||||
from src.common.server import global_server
|
from src.common.server import get_global_server
|
||||||
|
|
||||||
|
|
||||||
@strawberry.type
|
@strawberry.type
|
||||||
@@ -17,6 +17,6 @@ schema = strawberry.Schema(Query)
|
|||||||
|
|
||||||
graphql_app = GraphQLRouter(schema)
|
graphql_app = GraphQLRouter(schema)
|
||||||
|
|
||||||
fast_api_app: FastAPI = global_server.get_app()
|
fast_api_app: FastAPI = get_global_server().get_app()
|
||||||
|
|
||||||
fast_api_app.include_router(graphql_app, prefix="/graphql")
|
fast_api_app.include_router(graphql_app, prefix="/graphql")
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import sys
|
|||||||
# from src.chat.heart_flow.heartflow import heartflow
|
# from src.chat.heart_flow.heartflow import heartflow
|
||||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")))
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")))
|
||||||
# from src.config.config import BotConfig
|
# from src.config.config import BotConfig
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.api.reload_config import reload_config as reload_config_func
|
from src.api.reload_config import reload_config as reload_config_func
|
||||||
from src.common.server import global_server
|
from src.common.server import get_global_server
|
||||||
from src.api.apiforgui import (
|
from src.api.apiforgui import (
|
||||||
get_all_subheartflow_ids,
|
get_all_subheartflow_ids,
|
||||||
forced_change_subheartflow_status,
|
forced_change_subheartflow_status,
|
||||||
@@ -108,4 +108,4 @@ async def get_system_basic_info():
|
|||||||
|
|
||||||
def start_api_server():
|
def start_api_server():
|
||||||
"""启动API服务器"""
|
"""启动API服务器"""
|
||||||
global_server.register_router(router, prefix="/api/v1")
|
get_global_server().register_router(router, prefix="/api/v1")
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from fastapi import HTTPException
|
from fastapi import HTTPException
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
from src.config.config import get_config_dir, load_config
|
from src.config.config import get_config_dir, load_config
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
import os
|
import os
|
||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from typing import Tuple, Dict, Type
|
from typing import Tuple, Dict, Type
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("base_action")
|
logger = get_logger("base_action")
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from typing import Tuple, Dict, Any, Optional
|
from typing import Tuple, Dict, Any, Optional
|
||||||
from src.chat.actions.base_action import BaseAction, register_action, ActionActivationType, ChatMode # noqa F401
|
from src.chat.actions.base_action import BaseAction, register_action, ActionActivationType, ChatMode # noqa F401
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
import os
|
import os
|
||||||
import inspect
|
import inspect
|
||||||
import toml # 导入 toml 库
|
import toml # 导入 toml 库
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import re
|
import re
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from typing import Dict, List, Type, Optional, Tuple, Pattern
|
from typing import Dict, List, Type, Optional, Tuple, Pattern
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.message_receive.message import MessageRecv
|
from src.chat.message_receive.message import MessageRecv
|
||||||
from src.chat.focus_chat.hfc_utils import create_empty_anchor_message
|
from src.chat.focus_chat.hfc_utils import create_empty_anchor_message
|
||||||
from src.chat.focus_chat.expressors.default_expressor import DefaultExpressor
|
from src.chat.focus_chat.expressors.default_expressor import DefaultExpressor
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from src.common.database.database import db as peewee_db
|
|||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.chat.utils.utils_image import image_path_to_base64, image_manager
|
from src.chat.utils.utils_image import image_path_to_base64, image_manager
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
@@ -163,7 +163,7 @@ class MaiEmoji:
|
|||||||
last_used_time=self.last_used_time,
|
last_used_time=self.last_used_time,
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.success(f"[注册] 表情包信息保存到数据库: {self.filename} ({self.emotion})")
|
logger.info(f"[注册] 表情包信息保存到数据库: {self.filename} ({self.emotion})")
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -317,7 +317,7 @@ async def clear_temp_emoji() -> None:
|
|||||||
os.remove(file_path)
|
os.remove(file_path)
|
||||||
logger.debug(f"[清理] 删除: {filename}")
|
logger.debug(f"[清理] 删除: {filename}")
|
||||||
|
|
||||||
logger.success("[清理] 完成")
|
logger.info("[清理] 完成")
|
||||||
|
|
||||||
|
|
||||||
async def clean_unused_emojis(emoji_dir: str, emoji_objects: List["MaiEmoji"]) -> None:
|
async def clean_unused_emojis(emoji_dir: str, emoji_objects: List["MaiEmoji"]) -> None:
|
||||||
@@ -349,7 +349,7 @@ async def clean_unused_emojis(emoji_dir: str, emoji_objects: List["MaiEmoji"]) -
|
|||||||
logger.error(f"[错误] 删除文件时出错 ({file_full_path}): {str(e)}")
|
logger.error(f"[错误] 删除文件时出错 ({file_full_path}): {str(e)}")
|
||||||
|
|
||||||
if cleaned_count > 0:
|
if cleaned_count > 0:
|
||||||
logger.success(f"[清理] 在目录 {emoji_dir} 中清理了 {cleaned_count} 个破损表情包。")
|
logger.info(f"[清理] 在目录 {emoji_dir} 中清理了 {cleaned_count} 个破损表情包。")
|
||||||
else:
|
else:
|
||||||
logger.info(f"[清理] 目录 {emoji_dir} 中没有需要清理的。")
|
logger.info(f"[清理] 目录 {emoji_dir} 中没有需要清理的。")
|
||||||
|
|
||||||
@@ -568,7 +568,7 @@ class EmojiManager:
|
|||||||
|
|
||||||
# 输出清理结果
|
# 输出清理结果
|
||||||
if removed_count > 0:
|
if removed_count > 0:
|
||||||
logger.success(f"[清理] 已清理 {removed_count} 个失效/文件丢失的表情包记录")
|
logger.info(f"[清理] 已清理 {removed_count} 个失效/文件丢失的表情包记录")
|
||||||
logger.info(f"[统计] 清理前记录数: {total_count} | 清理后有效记录数: {len(self.emoji_objects)}")
|
logger.info(f"[统计] 清理前记录数: {total_count} | 清理后有效记录数: {len(self.emoji_objects)}")
|
||||||
else:
|
else:
|
||||||
logger.info(f"[检查] 已检查 {total_count} 个表情包记录,全部完好")
|
logger.info(f"[检查] 已检查 {total_count} 个表情包记录,全部完好")
|
||||||
@@ -645,7 +645,7 @@ class EmojiManager:
|
|||||||
self.emoji_objects = emoji_objects
|
self.emoji_objects = emoji_objects
|
||||||
self.emoji_num = len(emoji_objects)
|
self.emoji_num = len(emoji_objects)
|
||||||
|
|
||||||
logger.success(f"[数据库] 加载完成: 共加载 {self.emoji_num} 个表情包记录。")
|
logger.info(f"[数据库] 加载完成: 共加载 {self.emoji_num} 个表情包记录。")
|
||||||
if load_errors > 0:
|
if load_errors > 0:
|
||||||
logger.warning(f"[数据库] 加载过程中出现 {load_errors} 个错误。")
|
logger.warning(f"[数据库] 加载过程中出现 {load_errors} 个错误。")
|
||||||
|
|
||||||
@@ -808,7 +808,7 @@ class EmojiManager:
|
|||||||
if register_success:
|
if register_success:
|
||||||
self.emoji_objects.append(new_emoji)
|
self.emoji_objects.append(new_emoji)
|
||||||
self.emoji_num += 1
|
self.emoji_num += 1
|
||||||
logger.success(f"[成功] 注册: {new_emoji.filename}")
|
logger.info(f"[成功] 注册: {new_emoji.filename}")
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
logger.error(f"[错误] 注册表情包到数据库失败: {new_emoji.filename}")
|
logger.error(f"[错误] 注册表情包到数据库失败: {new_emoji.filename}")
|
||||||
@@ -973,7 +973,7 @@ class EmojiManager:
|
|||||||
# 注册成功后,添加到内存列表
|
# 注册成功后,添加到内存列表
|
||||||
self.emoji_objects.append(new_emoji)
|
self.emoji_objects.append(new_emoji)
|
||||||
self.emoji_num += 1
|
self.emoji_num += 1
|
||||||
logger.success(f"[成功] 注册新表情包: {filename} (当前: {self.emoji_num}/{self.emoji_num_max})")
|
logger.info(f"[成功] 注册新表情包: {filename} (当前: {self.emoji_num}/{self.emoji_num_max})")
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
logger.error(f"[注册失败] 保存表情包到数据库/移动文件失败: {filename}")
|
logger.error(f"[注册失败] 保存表情包到数据库/移动文件失败: {filename}")
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from src.chat.message_receive.message import MessageRecv, MessageThinking, Messa
|
|||||||
from src.chat.message_receive.message import Seg # Local import needed after move
|
from src.chat.message_receive.message import Seg # Local import needed after move
|
||||||
from src.chat.message_receive.message import UserInfo
|
from src.chat.message_receive.message import UserInfo
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.chat.utils.utils_image import image_path_to_base64 # Local import needed after move
|
from src.chat.utils.utils_image import image_path_to_base64 # Local import needed after move
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
from typing import List, Dict, Optional, Any, Tuple
|
from typing import List, Dict, Optional, Any, Tuple
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.chat.utils.chat_message_builder import get_raw_msg_by_timestamp_random, build_anonymous_messages
|
from src.chat.utils.chat_message_builder import get_raw_msg_by_timestamp_random, build_anonymous_messages
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
from typing import Optional, Dict, Any
|
from typing import Optional, Dict, Any
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
import json
|
import json
|
||||||
|
|
||||||
logger = get_logger("hfc") # Logger Name Changed
|
logger = get_logger("hfc") # Logger Name Changed
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from typing import List, Optional, Dict, Any, Deque, Callable, Awaitable
|
|||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
from src.chat.utils.prompt_builder import global_prompt_manager
|
from src.chat.utils.prompt_builder import global_prompt_manager
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.utils.timer_calculator import Timer
|
from src.chat.utils.timer_calculator import Timer
|
||||||
from src.chat.heart_flow.observation.observation import Observation
|
from src.chat.heart_flow.observation.observation import Observation
|
||||||
from src.chat.focus_chat.heartFC_Cycleinfo import CycleDetail
|
from src.chat.focus_chat.heartFC_Cycleinfo import CycleDetail
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
from typing import Dict, Optional # 重新导入类型
|
from typing import Dict, Optional # 重新导入类型
|
||||||
from src.chat.message_receive.message import MessageSending, MessageThinking
|
from src.chat.message_receive.message import MessageSending, MessageThinking
|
||||||
from src.common.message.api import global_api
|
from src.common.message.api import get_global_api
|
||||||
from src.chat.message_receive.storage import MessageStorage
|
from src.chat.message_receive.storage import MessageStorage
|
||||||
from src.chat.utils.utils import truncate_message
|
from src.chat.utils.utils import truncate_message
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.utils.utils import calculate_typing_time
|
from src.chat.utils.utils import calculate_typing_time
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
import traceback
|
import traceback
|
||||||
@@ -21,8 +21,8 @@ async def send_message(message: MessageSending) -> str:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
# 直接调用API发送消息
|
# 直接调用API发送消息
|
||||||
await global_api.send_message(message)
|
await get_global_api().send_message(message)
|
||||||
logger.success(f"已将消息 '{message_preview}' 发往平台'{message.message_info.platform}'")
|
logger.info(f"已将消息 '{message_preview}' 发往平台'{message.message_info.platform}'")
|
||||||
return message.processed_plain_text
|
return message.processed_plain_text
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from src.chat.heart_flow.heartflow import heartflow
|
|||||||
from src.chat.message_receive.chat_stream import chat_manager, ChatStream
|
from src.chat.message_receive.chat_stream import chat_manager, ChatStream
|
||||||
from src.chat.utils.utils import is_mentioned_bot_in_message
|
from src.chat.utils.utils import is_mentioned_bot_in_message
|
||||||
from src.chat.utils.timer_calculator import Timer
|
from src.chat.utils.timer_calculator import Timer
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.person_info.relationship_manager import relationship_manager
|
from src.person_info.relationship_manager import relationship_manager
|
||||||
|
|
||||||
import math
|
import math
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from typing import Optional
|
|||||||
from src.chat.message_receive.message import MessageRecv, BaseMessageInfo
|
from src.chat.message_receive.message import MessageRecv, BaseMessageInfo
|
||||||
from src.chat.message_receive.chat_stream import ChatStream
|
from src.chat.message_receive.chat_stream import ChatStream
|
||||||
from src.chat.message_receive.message import UserInfo
|
from src.chat.message_receive.message import UserInfo
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
import json
|
import json
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ from abc import ABC, abstractmethod
|
|||||||
from typing import List, Any, Optional, Dict
|
from typing import List, Any, Optional, Dict
|
||||||
from src.chat.focus_chat.info.info_base import InfoBase
|
from src.chat.focus_chat.info.info_base import InfoBase
|
||||||
from src.chat.heart_flow.observation.observation import Observation
|
from src.chat.heart_flow.observation.observation import Observation
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("base_processor")
|
logger = get_logger("base_processor")
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from src.chat.focus_chat.info.obs_info import ObsInfo
|
|||||||
from src.chat.heart_flow.observation.observation import Observation
|
from src.chat.heart_flow.observation.observation import Observation
|
||||||
from src.chat.focus_chat.info.info_base import InfoBase
|
from src.chat.focus_chat.info.info_base import InfoBase
|
||||||
from .base_processor import BaseProcessor
|
from .base_processor import BaseProcessor
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.heart_flow.observation.chatting_observation import ChattingObservation
|
from src.chat.heart_flow.observation.chatting_observation import ChattingObservation
|
||||||
from src.chat.heart_flow.observation.hfcloop_observation import HFCloopObservation
|
from src.chat.heart_flow.observation.hfcloop_observation import HFCloopObservation
|
||||||
from src.chat.focus_chat.info.cycle_info import CycleInfo
|
from src.chat.focus_chat.info.cycle_info import CycleInfo
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from src.llm_models.utils_model import LLMRequest
|
|||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.individuality.individuality import individuality
|
from src.individuality.individuality import individuality
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from src.chat.utils.json_utils import safe_json_dumps
|
from src.chat.utils.json_utils import safe_json_dumps
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from src.llm_models.utils_model import LLMRequest
|
|||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from src.person_info.relationship_manager import relationship_manager
|
from src.person_info.relationship_manager import relationship_manager
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from src.llm_models.utils_model import LLMRequest
|
|||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.individuality.individuality import individuality
|
from src.individuality.individuality import individuality
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ from src.chat.heart_flow.observation.chatting_observation import ChattingObserva
|
|||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
import time
|
import time
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.individuality.individuality import individuality
|
from src.individuality.individuality import individuality
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from src.tools.tool_use import ToolUser
|
from src.tools.tool_use import ToolUser
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from src.llm_models.utils_model import LLMRequest
|
|||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from .base_processor import BaseProcessor
|
from .base_processor import BaseProcessor
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from src.chat.heart_flow.observation.structure_observation import StructureObser
|
|||||||
from src.chat.heart_flow.observation.hfcloop_observation import HFCloopObservation
|
from src.chat.heart_flow.observation.hfcloop_observation import HFCloopObservation
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from src.chat.memory_system.Hippocampus import hippocampus_manager
|
from src.chat.memory_system.Hippocampus import hippocampus_manager
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from src.chat.heart_flow.observation.observation import Observation
|
|||||||
from src.chat.focus_chat.replyer.default_replyer import DefaultReplyer
|
from src.chat.focus_chat.replyer.default_replyer import DefaultReplyer
|
||||||
from src.chat.focus_chat.expressors.default_expressor import DefaultExpressor
|
from src.chat.focus_chat.expressors.default_expressor import DefaultExpressor
|
||||||
from src.chat.message_receive.chat_stream import ChatStream
|
from src.chat.message_receive.chat_stream import ChatStream
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
# 不再需要导入动作类,因为已经在main.py中导入
|
# 不再需要导入动作类,因为已经在main.py中导入
|
||||||
# import src.chat.actions.default_actions # noqa
|
# import src.chat.actions.default_actions # noqa
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from typing import List, Optional, Any, Dict
|
from typing import List, Optional, Any, Dict
|
||||||
from src.chat.heart_flow.observation.observation import Observation
|
from src.chat.heart_flow.observation.observation import Observation
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.heart_flow.observation.hfcloop_observation import HFCloopObservation
|
from src.chat.heart_flow.observation.hfcloop_observation import HFCloopObservation
|
||||||
from src.chat.heart_flow.observation.chatting_observation import ChattingObservation
|
from src.chat.heart_flow.observation.chatting_observation import ChattingObservation
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from src.chat.focus_chat.planners.base_planner import BasePlanner
|
|||||||
from src.chat.focus_chat.planners.planner_simple import ActionPlanner as SimpleActionPlanner
|
from src.chat.focus_chat.planners.planner_simple import ActionPlanner as SimpleActionPlanner
|
||||||
from src.chat.focus_chat.planners.action_manager import ActionManager
|
from src.chat.focus_chat.planners.action_manager import ActionManager
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("planner_factory")
|
logger = get_logger("planner_factory")
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from src.chat.focus_chat.info.action_info import ActionInfo
|
|||||||
from src.chat.focus_chat.info.structured_info import StructuredInfo
|
from src.chat.focus_chat.info.structured_info import StructuredInfo
|
||||||
from src.chat.focus_chat.info.self_info import SelfInfo
|
from src.chat.focus_chat.info.self_info import SelfInfo
|
||||||
from src.chat.focus_chat.info.relation_info import RelationInfo
|
from src.chat.focus_chat.info.relation_info import RelationInfo
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from src.individuality.individuality import individuality
|
from src.individuality.individuality import individuality
|
||||||
from src.chat.focus_chat.planners.action_manager import ActionManager
|
from src.chat.focus_chat.planners.action_manager import ActionManager
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from src.chat.message_receive.message import MessageRecv, MessageThinking, Messa
|
|||||||
from src.chat.message_receive.message import Seg # Local import needed after move
|
from src.chat.message_receive.message import Seg # Local import needed after move
|
||||||
from src.chat.message_receive.message import UserInfo
|
from src.chat.message_receive.message import UserInfo
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.chat.utils.utils_image import image_path_to_base64 # Local import needed after move
|
from src.chat.utils.utils_image import image_path_to_base64 # Local import needed after move
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ from typing import Dict, Any, Type, TypeVar, List, Optional
|
|||||||
import traceback
|
import traceback
|
||||||
from json_repair import repair_json
|
from json_repair import repair_json
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.chat.focus_chat.working_memory.memory_item import MemoryItem
|
from src.chat.focus_chat.working_memory.memory_item import MemoryItem
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from typing import List, Any, Optional
|
from typing import List, Any, Optional
|
||||||
import asyncio
|
import asyncio
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.focus_chat.working_memory.memory_manager import MemoryManager, MemoryItem
|
from src.chat.focus_chat.working_memory.memory_manager import MemoryManager, MemoryItem
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import traceback
|
import traceback
|
||||||
from typing import Optional, Coroutine, Callable, Any, List
|
from typing import Optional, Coroutine, Callable, Any, List
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.heart_flow.subheartflow_manager import SubHeartflowManager
|
from src.chat.heart_flow.subheartflow_manager import SubHeartflowManager
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from src.chat.heart_flow.sub_heartflow import SubHeartflow, ChatState
|
from src.chat.heart_flow.sub_heartflow import SubHeartflow, ChatState
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from typing import Any, Optional, List
|
from typing import Any, Optional, List
|
||||||
from src.chat.heart_flow.subheartflow_manager import SubHeartflowManager
|
from src.chat.heart_flow.subheartflow_manager import SubHeartflowManager
|
||||||
from src.chat.heart_flow.background_tasks import BackgroundTaskManager # Import BackgroundTaskManager
|
from src.chat.heart_flow.background_tasks import BackgroundTaskManager # Import BackgroundTaskManager
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# 定义了来自外部世界的信息
|
# 定义了来自外部世界的信息
|
||||||
# 外部世界可以是某个聊天 不同平台的聊天 也可以是任意媒体
|
# 外部世界可以是某个聊天 不同平台的聊天 也可以是任意媒体
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.focus_chat.planners.action_manager import ActionManager
|
from src.chat.focus_chat.planners.action_manager import ActionManager
|
||||||
|
|
||||||
logger = get_logger("observation")
|
logger = get_logger("observation")
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import difflib
|
|||||||
from src.chat.message_receive.message import MessageRecv # 添加 MessageRecv 导入
|
from src.chat.message_receive.message import MessageRecv # 添加 MessageRecv 导入
|
||||||
from src.chat.heart_flow.observation.observation import Observation
|
from src.chat.heart_flow.observation.observation import Observation
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.heart_flow.utils_chat import get_chat_type_and_target_info
|
from src.chat.heart_flow.utils_chat import get_chat_type_and_target_info
|
||||||
from src.chat.utils.prompt_builder import Prompt
|
from src.chat.utils.prompt_builder import Prompt
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# 定义了来自外部世界的信息
|
# 定义了来自外部世界的信息
|
||||||
# 外部世界可以是某个聊天 不同平台的聊天 也可以是任意媒体
|
# 外部世界可以是某个聊天 不同平台的聊天 也可以是任意媒体
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.focus_chat.heartFC_Cycleinfo import CycleDetail
|
from src.chat.focus_chat.heartFC_Cycleinfo import CycleDetail
|
||||||
from typing import List
|
from typing import List
|
||||||
# Import the new utility function
|
# Import the new utility function
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# 定义了来自外部世界的信息
|
# 定义了来自外部世界的信息
|
||||||
# 外部世界可以是某个聊天 不同平台的聊天 也可以是任意媒体
|
# 外部世界可以是某个聊天 不同平台的聊天 也可以是任意媒体
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("observation")
|
logger = get_logger("observation")
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
# Import the new utility function
|
# Import the new utility function
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# 定义了来自外部世界的信息
|
# 定义了来自外部世界的信息
|
||||||
# 外部世界可以是某个聊天 不同平台的聊天 也可以是任意媒体
|
# 外部世界可以是某个聊天 不同平台的聊天 也可以是任意媒体
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.focus_chat.working_memory.working_memory import WorkingMemory
|
from src.chat.focus_chat.working_memory.working_memory import WorkingMemory
|
||||||
from src.chat.focus_chat.working_memory.memory_item import MemoryItem
|
from src.chat.focus_chat.working_memory.memory_item import MemoryItem
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import asyncio
|
|||||||
import time
|
import time
|
||||||
from typing import Optional, List, Dict, Tuple
|
from typing import Optional, List, Dict, Tuple
|
||||||
import traceback
|
import traceback
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.message_receive.message import MessageRecv
|
from src.chat.message_receive.message import MessageRecv
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from src.chat.focus_chat.heartFC_chat import HeartFChatting
|
from src.chat.focus_chat.heartFC_chat import HeartFChatting
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import time
|
import time
|
||||||
from typing import Dict, Any, Optional, List
|
from typing import Dict, Any, Optional, List
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from src.chat.heart_flow.sub_heartflow import SubHeartflow, ChatState
|
from src.chat.heart_flow.sub_heartflow import SubHeartflow, ChatState
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from typing import Optional, Tuple, Dict
|
from typing import Optional, Tuple, Dict
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from src.person_info.person_info import person_info_manager, PersonInfoManager
|
from src.person_info.person_info import person_info_manager, PersonInfoManager
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Configure logger
|
# Configure logger
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("lpmm")
|
logger = get_logger("lpmm")
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import networkx as nx
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
from ...llm_models.utils_model import LLMRequest
|
from ...llm_models.utils_model import LLMRequest
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.memory_system.sample_distribution import MemoryBuildScheduler # 分布生成器
|
from src.chat.memory_system.sample_distribution import MemoryBuildScheduler # 分布生成器
|
||||||
from ..utils.chat_message_builder import (
|
from ..utils.chat_message_builder import (
|
||||||
get_raw_msg_by_timestamp,
|
get_raw_msg_by_timestamp,
|
||||||
@@ -829,7 +829,7 @@ class EntorhinalCortex:
|
|||||||
)
|
)
|
||||||
if messages:
|
if messages:
|
||||||
time_diff = (datetime.datetime.now().timestamp() - timestamp) / 3600
|
time_diff = (datetime.datetime.now().timestamp() - timestamp) / 3600
|
||||||
logger.success(f"成功抽取 {time_diff:.1f} 小时前的消息样本,共{len(messages)}条")
|
logger.info(f"成功抽取 {time_diff:.1f} 小时前的消息样本,共{len(messages)}条")
|
||||||
chat_samples.append(messages)
|
chat_samples.append(messages)
|
||||||
else:
|
else:
|
||||||
logger.debug(f"时间戳 {timestamp} 的消息无需记忆")
|
logger.debug(f"时间戳 {timestamp} 的消息无需记忆")
|
||||||
@@ -1046,8 +1046,8 @@ class EntorhinalCortex:
|
|||||||
GraphEdges.delete().where((GraphEdges.source == source) & (GraphEdges.target == target)).execute()
|
GraphEdges.delete().where((GraphEdges.source == source) & (GraphEdges.target == target)).execute()
|
||||||
|
|
||||||
end_time = time.time()
|
end_time = time.time()
|
||||||
logger.success(f"[同步] 总耗时: {end_time - start_time:.2f}秒")
|
logger.info(f"[同步] 总耗时: {end_time - start_time:.2f}秒")
|
||||||
logger.success(f"[同步] 同步了 {len(memory_nodes)} 个节点和 {len(memory_edges)} 条边")
|
logger.info(f"[同步] 同步了 {len(memory_nodes)} 个节点和 {len(memory_edges)} 条边")
|
||||||
|
|
||||||
async def resync_memory_to_db(self):
|
async def resync_memory_to_db(self):
|
||||||
"""清空数据库并重新同步所有记忆数据"""
|
"""清空数据库并重新同步所有记忆数据"""
|
||||||
@@ -1133,8 +1133,8 @@ class EntorhinalCortex:
|
|||||||
logger.info(f"[数据库] 写入 {len(edges_data)} 条边耗时: {edge_end - edge_start:.2f}秒")
|
logger.info(f"[数据库] 写入 {len(edges_data)} 条边耗时: {edge_end - edge_start:.2f}秒")
|
||||||
|
|
||||||
end_time = time.time()
|
end_time = time.time()
|
||||||
logger.success(f"[数据库] 重新同步完成,总耗时: {end_time - start_time:.2f}秒")
|
logger.info(f"[数据库] 重新同步完成,总耗时: {end_time - start_time:.2f}秒")
|
||||||
logger.success(f"[数据库] 同步了 {len(nodes_data)} 个节点和 {len(edges_data)} 条边")
|
logger.info(f"[数据库] 同步了 {len(nodes_data)} 个节点和 {len(edges_data)} 条边")
|
||||||
|
|
||||||
def sync_memory_from_db(self):
|
def sync_memory_from_db(self):
|
||||||
"""从数据库同步数据到内存中的图结构"""
|
"""从数据库同步数据到内存中的图结构"""
|
||||||
@@ -1209,7 +1209,7 @@ class EntorhinalCortex:
|
|||||||
)
|
)
|
||||||
|
|
||||||
if need_update:
|
if need_update:
|
||||||
logger.success("[数据库] 已为缺失的时间字段进行补充")
|
logger.info("[数据库] 已为缺失的时间字段进行补充")
|
||||||
|
|
||||||
|
|
||||||
# 负责整合,遗忘,合并记忆
|
# 负责整合,遗忘,合并记忆
|
||||||
@@ -1387,7 +1387,7 @@ class ParahippocampalGyrus:
|
|||||||
logger.debug(f"进度: [{bar}] {progress:.1f}% ({i}/{len(memory_samples)})")
|
logger.debug(f"进度: [{bar}] {progress:.1f}% ({i}/{len(memory_samples)})")
|
||||||
|
|
||||||
if all_added_nodes:
|
if all_added_nodes:
|
||||||
logger.success(f"更新记忆: {', '.join(all_added_nodes)}")
|
logger.info(f"更新记忆: {', '.join(all_added_nodes)}")
|
||||||
if all_added_edges:
|
if all_added_edges:
|
||||||
logger.debug(f"强化连接: {', '.join(all_added_edges)}")
|
logger.debug(f"强化连接: {', '.join(all_added_edges)}")
|
||||||
if all_connected_nodes:
|
if all_connected_nodes:
|
||||||
@@ -1396,7 +1396,7 @@ class ParahippocampalGyrus:
|
|||||||
await self.hippocampus.entorhinal_cortex.sync_memory_to_db()
|
await self.hippocampus.entorhinal_cortex.sync_memory_to_db()
|
||||||
|
|
||||||
end_time = time.time()
|
end_time = time.time()
|
||||||
logger.success(f"---------------------记忆构建耗时: {end_time - start_time:.2f} 秒---------------------")
|
logger.info(f"---------------------记忆构建耗时: {end_time - start_time:.2f} 秒---------------------")
|
||||||
|
|
||||||
async def operation_forget_topic(self, percentage=0.005):
|
async def operation_forget_topic(self, percentage=0.005):
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
@@ -1686,7 +1686,7 @@ class HippocampusManager:
|
|||||||
node_count = len(memory_graph.nodes())
|
node_count = len(memory_graph.nodes())
|
||||||
edge_count = len(memory_graph.edges())
|
edge_count = len(memory_graph.edges())
|
||||||
|
|
||||||
logger.success(f"""--------------------------------
|
logger.info(f"""--------------------------------
|
||||||
记忆系统参数配置:
|
记忆系统参数配置:
|
||||||
构建间隔: {global_config.memory.memory_build_interval}秒|样本数: {global_config.memory.memory_build_sample_num},长度: {global_config.memory.memory_build_sample_length}|压缩率: {global_config.memory.memory_compress_rate}
|
构建间隔: {global_config.memory.memory_build_interval}秒|样本数: {global_config.memory.memory_build_sample_num},长度: {global_config.memory.memory_build_sample_length}|压缩率: {global_config.memory.memory_compress_rate}
|
||||||
记忆构建分布: {global_config.memory.memory_build_distribution}
|
记忆构建分布: {global_config.memory.memory_build_distribution}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import traceback
|
import traceback
|
||||||
from typing import Dict, Any
|
from typing import Dict, Any
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.manager.mood_manager import mood_manager # 导入情绪管理器
|
from src.manager.mood_manager import mood_manager # 导入情绪管理器
|
||||||
from src.chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from src.chat.message_receive.message import MessageRecv
|
from src.chat.message_receive.message import MessageRecv
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from maim_message import GroupInfo, UserInfo
|
|||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .message import MessageRecv
|
from .message import MessageRecv
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
@@ -135,7 +135,7 @@ class ChatManager:
|
|||||||
"""异步初始化"""
|
"""异步初始化"""
|
||||||
try:
|
try:
|
||||||
await self.load_all_streams()
|
await self.load_all_streams()
|
||||||
logger.success(f"聊天管理器已启动,已加载 {len(self.streams)} 个聊天流")
|
logger.info(f"聊天管理器已启动,已加载 {len(self.streams)} 个聊天流")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"聊天管理器启动失败: {str(e)}")
|
logger.error(f"聊天管理器启动失败: {str(e)}")
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from typing import Optional, Any, TYPE_CHECKING
|
|||||||
|
|
||||||
import urllib3
|
import urllib3
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .chat_stream import ChatStream
|
from .chat_stream import ChatStream
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import asyncio
|
|||||||
import time
|
import time
|
||||||
from asyncio import Task
|
from asyncio import Task
|
||||||
from typing import Union
|
from typing import Union
|
||||||
from src.common.message.api import global_api
|
from src.common.message.api import get_global_api
|
||||||
|
|
||||||
# from ...common.database import db # 数据库依赖似乎不需要了,注释掉
|
# from ...common.database import db # 数据库依赖似乎不需要了,注释掉
|
||||||
from .message import MessageSending, MessageThinking, MessageSet
|
from .message import MessageSending, MessageThinking, MessageSet
|
||||||
@@ -12,7 +12,7 @@ from .storage import MessageStorage
|
|||||||
from ...config.config import global_config
|
from ...config.config import global_config
|
||||||
from ..utils.utils import truncate_message, calculate_typing_time, count_messages_between
|
from ..utils.utils import truncate_message, calculate_typing_time, count_messages_between
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
@@ -24,7 +24,7 @@ logger = get_logger("sender")
|
|||||||
async def send_via_ws(message: MessageSending) -> None:
|
async def send_via_ws(message: MessageSending) -> None:
|
||||||
"""通过 WebSocket 发送消息"""
|
"""通过 WebSocket 发送消息"""
|
||||||
try:
|
try:
|
||||||
await global_api.send_message(message)
|
await get_global_api().send_message(message)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"WS发送失败: {e}")
|
logger.error(f"WS发送失败: {e}")
|
||||||
raise ValueError(f"未找到平台:{message.message_info.platform} 的url配置,请检查配置文件") from e
|
raise ValueError(f"未找到平台:{message.message_info.platform} 的url配置,请检查配置文件") from e
|
||||||
@@ -50,7 +50,7 @@ async def send_message(
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
await send_via_ws(message)
|
await send_via_ws(message)
|
||||||
logger.success(f"发送消息 '{message_preview}' 成功") # 调整日志格式
|
logger.info(f"发送消息 '{message_preview}' 成功") # 调整日志格式
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"发送消息 '{message_preview}' 失败: {str(e)}")
|
logger.error(f"发送消息 '{message_preview}' 失败: {str(e)}")
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ from typing import Union
|
|||||||
from .message import MessageSending, MessageRecv
|
from .message import MessageSending, MessageRecv
|
||||||
from .chat_stream import ChatStream
|
from .chat_stream import ChatStream
|
||||||
from ...common.database.database_model import Messages, RecalledMessages # Import Peewee models
|
from ...common.database.database_model import Messages, RecalledMessages # Import Peewee models
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_module_logger("message_storage")
|
logger = get_logger("message_storage")
|
||||||
|
|
||||||
|
|
||||||
class MessageStorage:
|
class MessageStorage:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import traceback
|
|||||||
from random import random
|
from random import random
|
||||||
from typing import List, Optional # 导入 Optional
|
from typing import List, Optional # 导入 Optional
|
||||||
from maim_message import UserInfo, Seg
|
from maim_message import UserInfo, Seg
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.heart_flow.utils_chat import get_chat_type_and_target_info
|
from src.chat.heart_flow.utils_chat import get_chat_type_and_target_info
|
||||||
from src.manager.mood_manager import mood_manager
|
from src.manager.mood_manager import mood_manager
|
||||||
from src.chat.message_receive.chat_stream import ChatStream, chat_manager
|
from src.chat.message_receive.chat_stream import ChatStream, chat_manager
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from typing import List, Any, Dict
|
from typing import List, Any, Dict
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.focus_chat.planners.action_manager import ActionManager
|
from src.chat.focus_chat.planners.action_manager import ActionManager
|
||||||
from src.chat.actions.base_action import ActionActivationType, ChatMode
|
from src.chat.actions.base_action import ActionActivationType, ChatMode
|
||||||
from src.chat.utils.chat_message_builder import build_readable_messages, get_raw_msg_before_timestamp_with_chat
|
from src.chat.utils.chat_message_builder import build_readable_messages, get_raw_msg_before_timestamp_with_chat
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from src.chat.message_receive.message import UserInfo
|
|||||||
from src.chat.message_receive.chat_stream import ChatStream, chat_manager
|
from src.chat.message_receive.chat_stream import ChatStream, chat_manager
|
||||||
from src.chat.message_receive.message_sender import message_manager
|
from src.chat.message_receive.message_sender import message_manager
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("normal_chat_expressor")
|
logger = get_logger("normal_chat_expressor")
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from src.config.config import global_config
|
|||||||
from src.chat.message_receive.message import MessageThinking
|
from src.chat.message_receive.message import MessageThinking
|
||||||
from src.chat.normal_chat.normal_prompt import prompt_builder
|
from src.chat.normal_chat.normal_prompt import prompt_builder
|
||||||
from src.chat.utils.timer_calculator import Timer
|
from src.chat.utils.timer_calculator import Timer
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.person_info.person_info import person_info_manager, PersonInfoManager
|
from src.person_info.person_info import person_info_manager, PersonInfoManager
|
||||||
from src.chat.utils.utils import process_llm_response
|
from src.chat.utils.utils import process_llm_response
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from typing import Dict, Any
|
|||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from src.individuality.individuality import individuality
|
from src.individuality.individuality import individuality
|
||||||
from src.chat.focus_chat.planners.action_manager import ActionManager
|
from src.chat.focus_chat.planners.action_manager import ActionManager
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.individuality.individuality import individuality
|
from src.individuality.individuality import individuality
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
from src.chat.utils.chat_message_builder import build_readable_messages, get_raw_msg_before_timestamp_with_chat
|
from src.chat.utils.chat_message_builder import build_readable_messages, get_raw_msg_before_timestamp_with_chat
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from src.common.logger import LogConfig, WILLING_STYLE_CONFIG, LoguruLogger, get_module_logger
|
from src.common.logger import get_logger
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.chat.message_receive.chat_stream import ChatStream, GroupInfo
|
from src.chat.message_receive.chat_stream import ChatStream, GroupInfo
|
||||||
@@ -33,12 +33,7 @@ set_willing 设置某聊天流意愿
|
|||||||
示例: 在 `mode_aggressive.py` 中,类名应为 `AggressiveWillingManager`
|
示例: 在 `mode_aggressive.py` 中,类名应为 `AggressiveWillingManager`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
willing_config = LogConfig(
|
logger = get_logger("willing")
|
||||||
# 使用消息发送专用样式
|
|
||||||
console_format=WILLING_STYLE_CONFIG["console_format"],
|
|
||||||
file_format=WILLING_STYLE_CONFIG["file_format"],
|
|
||||||
)
|
|
||||||
logger = get_module_logger("willing", config=willing_config)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -93,7 +88,7 @@ class BaseWillingManager(ABC):
|
|||||||
self.chat_reply_willing: Dict[str, float] = {} # 存储每个聊天流的回复意愿(chat_id)
|
self.chat_reply_willing: Dict[str, float] = {} # 存储每个聊天流的回复意愿(chat_id)
|
||||||
self.ongoing_messages: Dict[str, WillingInfo] = {} # 当前正在进行的消息(message_id)
|
self.ongoing_messages: Dict[str, WillingInfo] = {} # 当前正在进行的消息(message_id)
|
||||||
self.lock = asyncio.Lock()
|
self.lock = asyncio.Lock()
|
||||||
self.logger: LoguruLogger = logger
|
self.logger = logger
|
||||||
|
|
||||||
def setup(self, message: MessageRecv, chat: ChatStream, is_mentioned_bot: bool, interested_rate: float):
|
def setup(self, message: MessageRecv, chat: ChatStream, is_mentioned_bot: bool, interested_rate: float):
|
||||||
person_id = PersonInfoManager.get_person_id(chat.platform, chat.user_info.user_id)
|
person_id = PersonInfoManager.get_person_id(chat.platform, chat.user_info.user_id)
|
||||||
|
|||||||
@@ -1,88 +0,0 @@
|
|||||||
import sys
|
|
||||||
import loguru
|
|
||||||
from enum import Enum
|
|
||||||
|
|
||||||
|
|
||||||
class LogClassification(Enum):
|
|
||||||
BASE = "base"
|
|
||||||
MEMORY = "memory"
|
|
||||||
EMOJI = "emoji"
|
|
||||||
CHAT = "chat"
|
|
||||||
PBUILDER = "promptbuilder"
|
|
||||||
|
|
||||||
|
|
||||||
class LogModule:
|
|
||||||
logger = loguru.logger.opt()
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def setup_logger(self, log_type: LogClassification):
|
|
||||||
"""配置日志格式
|
|
||||||
|
|
||||||
Args:
|
|
||||||
log_type: 日志类型,可选值:BASE(基础日志)、MEMORY(记忆系统日志)、EMOJI(表情包系统日志)
|
|
||||||
"""
|
|
||||||
# 移除默认日志处理器
|
|
||||||
self.logger.remove()
|
|
||||||
|
|
||||||
# 基础日志格式
|
|
||||||
base_format = (
|
|
||||||
"<green>{time:HH:mm:ss}</green> | <level>{level: <8}</level> | "
|
|
||||||
" d<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
|
||||||
)
|
|
||||||
|
|
||||||
chat_format = (
|
|
||||||
"<green>{time:HH:mm:ss}</green> | <level>{level: <8}</level> | "
|
|
||||||
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
|
||||||
)
|
|
||||||
|
|
||||||
# 记忆系统日志格式
|
|
||||||
memory_format = (
|
|
||||||
"<green>{time:HH:mm}</green> | <level>{level: <8}</level> | "
|
|
||||||
"<light-magenta>海马体</light-magenta> | <level>{message}</level>"
|
|
||||||
)
|
|
||||||
|
|
||||||
# 表情包系统日志格式
|
|
||||||
emoji_format = (
|
|
||||||
"<green>{time:HH:mm}</green> | <level>{level: <8}</level> | <yellow>表情包</yellow> | "
|
|
||||||
"<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
|
||||||
)
|
|
||||||
|
|
||||||
promptbuilder_format = (
|
|
||||||
"<green>{time:HH:mm}</green> | <level>{level: <8}</level> | <yellow>Prompt</yellow> | "
|
|
||||||
"<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
|
|
||||||
)
|
|
||||||
|
|
||||||
# 根据日志类型选择日志格式和输出
|
|
||||||
if log_type == LogClassification.CHAT:
|
|
||||||
self.logger.add(
|
|
||||||
sys.stderr,
|
|
||||||
format=chat_format,
|
|
||||||
# level="INFO"
|
|
||||||
)
|
|
||||||
elif log_type == LogClassification.PBUILDER:
|
|
||||||
self.logger.add(
|
|
||||||
sys.stderr,
|
|
||||||
format=promptbuilder_format,
|
|
||||||
# level="INFO"
|
|
||||||
)
|
|
||||||
elif log_type == LogClassification.MEMORY:
|
|
||||||
# 同时输出到控制台和文件
|
|
||||||
self.logger.add(
|
|
||||||
sys.stderr,
|
|
||||||
format=memory_format,
|
|
||||||
# level="INFO"
|
|
||||||
)
|
|
||||||
self.logger.add("logs/memory.log", format=memory_format, level="INFO", rotation="1 day", retention="7 days")
|
|
||||||
elif log_type == LogClassification.EMOJI:
|
|
||||||
self.logger.add(
|
|
||||||
sys.stderr,
|
|
||||||
format=emoji_format,
|
|
||||||
# level="INFO"
|
|
||||||
)
|
|
||||||
self.logger.add("logs/emoji.log", format=emoji_format, level="INFO", rotation="1 day", retention="7 days")
|
|
||||||
else: # BASE
|
|
||||||
self.logger.add(sys.stderr, format=base_format, level="INFO")
|
|
||||||
|
|
||||||
return self.logger
|
|
||||||
@@ -3,14 +3,14 @@ import re
|
|||||||
from contextlib import asynccontextmanager
|
from contextlib import asynccontextmanager
|
||||||
import asyncio
|
import asyncio
|
||||||
import contextvars
|
import contextvars
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
# import traceback
|
# import traceback
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
|
|
||||||
logger = get_module_logger("prompt_build")
|
logger = get_logger("prompt_build")
|
||||||
|
|
||||||
|
|
||||||
class PromptContext:
|
class PromptContext:
|
||||||
|
|||||||
@@ -3,14 +3,14 @@ from datetime import datetime, timedelta
|
|||||||
from typing import Any, Dict, Tuple, List
|
from typing import Any, Dict, Tuple, List
|
||||||
|
|
||||||
|
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.manager.async_task_manager import AsyncTask
|
from src.manager.async_task_manager import AsyncTask
|
||||||
|
|
||||||
from ...common.database.database import db # This db is the Peewee database instance
|
from ...common.database.database import db # This db is the Peewee database instance
|
||||||
from ...common.database.database_model import OnlineTime, LLMUsage, Messages # Import the Peewee model
|
from ...common.database.database_model import OnlineTime, LLMUsage, Messages # Import the Peewee model
|
||||||
from src.manager.local_store_manager import local_storage
|
from src.manager.local_store_manager import local_storage
|
||||||
|
|
||||||
logger = get_module_logger("maibot_statistic")
|
logger = get_logger("maibot_statistic")
|
||||||
|
|
||||||
# 统计数据的键
|
# 统计数据的键
|
||||||
TOTAL_REQ_CNT = "total_requests"
|
TOTAL_REQ_CNT = "total_requests"
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ from pathlib import Path
|
|||||||
import jieba
|
import jieba
|
||||||
from pypinyin import Style, pinyin
|
from pypinyin import Style, pinyin
|
||||||
|
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_module_logger("typo_gen")
|
logger = get_logger("typo_gen")
|
||||||
|
|
||||||
|
|
||||||
class ChineseTypoGenerator:
|
class ChineseTypoGenerator:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import jieba
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from maim_message import UserInfo
|
from maim_message import UserInfo
|
||||||
|
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.manager.mood_manager import mood_manager
|
from src.manager.mood_manager import mood_manager
|
||||||
from ..message_receive.message import MessageRecv
|
from ..message_receive.message import MessageRecv
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
@@ -15,7 +15,7 @@ from .typo_generator import ChineseTypoGenerator
|
|||||||
from ...config.config import global_config
|
from ...config.config import global_config
|
||||||
from ...common.message_repository import find_messages, count_messages
|
from ...common.message_repository import find_messages, count_messages
|
||||||
|
|
||||||
logger = get_module_logger("chat_utils")
|
logger = get_logger("chat_utils")
|
||||||
|
|
||||||
|
|
||||||
def is_english_letter(char: str) -> bool:
|
def is_english_letter(char: str) -> bool:
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from src.common.database.database_model import Images, ImageDescriptions
|
|||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from peewee import Model, DoubleField, IntegerField, BooleanField, TextField, FloatField, DateTimeField
|
from peewee import Model, DoubleField, IntegerField, BooleanField, TextField, FloatField, DateTimeField
|
||||||
from .database import db
|
from .database import db
|
||||||
import datetime
|
import datetime
|
||||||
from ..logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("database_model")
|
logger = get_logger("database_model")
|
||||||
# 请在此处定义您的数据库实例。
|
# 请在此处定义您的数据库实例。
|
||||||
|
|||||||
@@ -1,110 +0,0 @@
|
|||||||
import functools
|
|
||||||
import inspect
|
|
||||||
from typing import Callable, Any
|
|
||||||
from .logger import logger, add_custom_style_handler
|
|
||||||
from rich.traceback import install
|
|
||||||
|
|
||||||
install(extra_lines=3)
|
|
||||||
|
|
||||||
|
|
||||||
def use_log_style(
|
|
||||||
style_name: str,
|
|
||||||
console_format: str,
|
|
||||||
console_level: str = "INFO",
|
|
||||||
# file_format: Optional[str] = None, # 暂未支持文件输出
|
|
||||||
# file_level: str = "DEBUG",
|
|
||||||
) -> Callable:
|
|
||||||
"""装饰器:为函数内的日志启用特定的自定义样式。
|
|
||||||
|
|
||||||
Args:
|
|
||||||
style_name (str): 自定义样式的唯一名称。
|
|
||||||
console_format (str): 控制台输出的格式字符串。
|
|
||||||
console_level (str, optional): 控制台日志级别. Defaults to "INFO".
|
|
||||||
# file_format (Optional[str], optional): 文件输出格式 (暂未支持). Defaults to None.
|
|
||||||
# file_level (str, optional): 文件日志级别 (暂未支持). Defaults to "DEBUG".
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
Callable: 返回装饰器本身。
|
|
||||||
"""
|
|
||||||
|
|
||||||
def decorator(func: Callable) -> Callable:
|
|
||||||
# 获取被装饰函数所在的模块名
|
|
||||||
module = inspect.getmodule(func)
|
|
||||||
if module is None:
|
|
||||||
# 如果无法获取模块(例如,在交互式解释器中定义函数),则使用默认名称
|
|
||||||
module_name = "unknown_module"
|
|
||||||
logger.warning(f"无法确定函数 {func.__name__} 的模块,将使用 '{module_name}'")
|
|
||||||
else:
|
|
||||||
module_name = module.__name__
|
|
||||||
|
|
||||||
# 在函数首次被调用(或模块加载时)确保自定义处理器已添加
|
|
||||||
# 注意:这会在模块加载时执行,而不是每次函数调用时
|
|
||||||
# print(f"Setting up custom style '{style_name}' for module '{module_name}' in decorator definition")
|
|
||||||
add_custom_style_handler(
|
|
||||||
module_name=module_name,
|
|
||||||
style_name=style_name,
|
|
||||||
console_format=console_format,
|
|
||||||
console_level=console_level,
|
|
||||||
# file_format=file_format,
|
|
||||||
# file_level=file_level,
|
|
||||||
)
|
|
||||||
|
|
||||||
@functools.wraps(func)
|
|
||||||
def wrapper(*args: Any, **kwargs: Any) -> Any:
|
|
||||||
# 创建绑定了模块名和自定义样式标记的 logger 实例
|
|
||||||
custom_logger = logger.bind(module=module_name, custom_style=style_name)
|
|
||||||
# print(f"Executing {func.__name__} with custom logger for style '{style_name}'")
|
|
||||||
# 将自定义 logger 作为第一个参数传递给原函数
|
|
||||||
# 注意:这要求被装饰的函数第一个参数用于接收 logger
|
|
||||||
try:
|
|
||||||
return func(custom_logger, *args, **kwargs)
|
|
||||||
except TypeError as e:
|
|
||||||
# 捕获可能的类型错误,比如原函数不接受 logger 参数
|
|
||||||
logger.error(
|
|
||||||
f"调用 {func.__name__} 时出错:请确保该函数接受一个 logger 实例作为其第一个参数。错误:{e}"
|
|
||||||
)
|
|
||||||
# 可以选择重新抛出异常或返回特定值
|
|
||||||
raise e
|
|
||||||
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
return decorator
|
|
||||||
|
|
||||||
|
|
||||||
# --- 示例用法 (可以在其他模块中这样使用) ---
|
|
||||||
|
|
||||||
# # 假设这是你的模块 my_module.py
|
|
||||||
# from src.common.log_decorators import use_log_style
|
|
||||||
# from src.common.logger import get_module_logger, LoguruLogger
|
|
||||||
|
|
||||||
# # 获取模块的标准 logger
|
|
||||||
# standard_logger = get_module_logger(__name__)
|
|
||||||
|
|
||||||
# # 定义一个自定义样式
|
|
||||||
# MY_SPECIAL_STYLE = "special"
|
|
||||||
# MY_SPECIAL_FORMAT = "<bg yellow><black> SPECIAL [{time:HH:mm:ss}] </black></bg yellow> | <level>{message}</level>"
|
|
||||||
|
|
||||||
# @use_log_style(style_name=MY_SPECIAL_STYLE, console_format=MY_SPECIAL_FORMAT)
|
|
||||||
# def my_function_with_special_logs(custom_logger: LoguruLogger, x: int, y: int):
|
|
||||||
# standard_logger.info("这是一条使用标准格式的日志")
|
|
||||||
# custom_logger.info(f"开始执行特殊操作,参数: x={x}, y={y}")
|
|
||||||
# result = x + y
|
|
||||||
# custom_logger.success(f"特殊操作完成,结果: {result}")
|
|
||||||
# standard_logger.info("标准格式日志:函数即将结束")
|
|
||||||
# return result
|
|
||||||
|
|
||||||
# @use_log_style(style_name="another_style", console_format="<cyan>任务:</cyan> {message}")
|
|
||||||
# def another_task(task_logger: LoguruLogger, task_name: str):
|
|
||||||
# standard_logger.debug("准备执行另一个任务")
|
|
||||||
# task_logger.info(f"正在处理任务 '{task_name}'")
|
|
||||||
# # ... 执行任务 ...
|
|
||||||
# task_logger.warning("任务处理中遇到一个警告")
|
|
||||||
# standard_logger.info("另一个任务的标准日志")
|
|
||||||
|
|
||||||
# if __name__ == "__main__":
|
|
||||||
# print("\n--- 调用 my_function_with_special_logs ---")
|
|
||||||
# my_function_with_special_logs(10, 5)
|
|
||||||
# print("\n--- 调用 another_task ---")
|
|
||||||
# another_task("数据清理")
|
|
||||||
# print("\n--- 单独使用标准 logger ---")
|
|
||||||
# standard_logger.info("这是一条完全独立的标准日志")
|
|
||||||
1233
src/common/logger.py
1233
src/common/logger.py
File diff suppressed because it is too large
Load Diff
@@ -1,118 +0,0 @@
|
|||||||
from src.common.logger import get_module_logger, LogConfig
|
|
||||||
from src.common.logger import (
|
|
||||||
BACKGROUND_TASKS_STYLE_CONFIG,
|
|
||||||
MAIN_STYLE_CONFIG,
|
|
||||||
MEMORY_STYLE_CONFIG,
|
|
||||||
PFC_STYLE_CONFIG,
|
|
||||||
MOOD_STYLE_CONFIG,
|
|
||||||
TOOL_USE_STYLE_CONFIG,
|
|
||||||
RELATION_STYLE_CONFIG,
|
|
||||||
CONFIG_STYLE_CONFIG,
|
|
||||||
HEARTFLOW_STYLE_CONFIG,
|
|
||||||
CHAT_STYLE_CONFIG,
|
|
||||||
EMOJI_STYLE_CONFIG,
|
|
||||||
SUB_HEARTFLOW_STYLE_CONFIG,
|
|
||||||
SUB_HEARTFLOW_MIND_STYLE_CONFIG,
|
|
||||||
SUBHEARTFLOW_MANAGER_STYLE_CONFIG,
|
|
||||||
BASE_TOOL_STYLE_CONFIG,
|
|
||||||
CHAT_STREAM_STYLE_CONFIG,
|
|
||||||
PERSON_INFO_STYLE_CONFIG,
|
|
||||||
WILLING_STYLE_CONFIG,
|
|
||||||
PFC_ACTION_PLANNER_STYLE_CONFIG,
|
|
||||||
STATISTIC_STYLE_CONFIG,
|
|
||||||
NORMAL_CHAT_STYLE_CONFIG,
|
|
||||||
FOCUS_CHAT_STYLE_CONFIG,
|
|
||||||
LPMM_STYLE_CONFIG,
|
|
||||||
HFC_STYLE_CONFIG,
|
|
||||||
OBSERVATION_STYLE_CONFIG,
|
|
||||||
PLANNER_STYLE_CONFIG,
|
|
||||||
PROCESSOR_STYLE_CONFIG,
|
|
||||||
ACTION_TAKEN_STYLE_CONFIG,
|
|
||||||
TIANYI_STYLE_CONFIG,
|
|
||||||
REMOTE_STYLE_CONFIG,
|
|
||||||
TOPIC_STYLE_CONFIG,
|
|
||||||
SENDER_STYLE_CONFIG,
|
|
||||||
CONFIRM_STYLE_CONFIG,
|
|
||||||
MODEL_UTILS_STYLE_CONFIG,
|
|
||||||
PROMPT_STYLE_CONFIG,
|
|
||||||
CHANGE_MOOD_TOOL_STYLE_CONFIG,
|
|
||||||
CHANGE_RELATIONSHIP_TOOL_STYLE_CONFIG,
|
|
||||||
GET_KNOWLEDGE_TOOL_STYLE_CONFIG,
|
|
||||||
GET_TIME_DATE_TOOL_STYLE_CONFIG,
|
|
||||||
LPMM_GET_KNOWLEDGE_TOOL_STYLE_CONFIG,
|
|
||||||
MESSAGE_BUFFER_STYLE_CONFIG,
|
|
||||||
CHAT_MESSAGE_STYLE_CONFIG,
|
|
||||||
CHAT_IMAGE_STYLE_CONFIG,
|
|
||||||
INIT_STYLE_CONFIG,
|
|
||||||
INTEREST_CHAT_STYLE_CONFIG,
|
|
||||||
API_SERVER_STYLE_CONFIG,
|
|
||||||
NORMAL_CHAT_RESPONSE_STYLE_CONFIG,
|
|
||||||
EXPRESS_STYLE_CONFIG,
|
|
||||||
ACTION_MANAGER_STYLE_CONFIG,
|
|
||||||
)
|
|
||||||
|
|
||||||
# 可根据实际需要补充更多模块配置
|
|
||||||
MODULE_LOGGER_CONFIGS = {
|
|
||||||
"background_tasks": BACKGROUND_TASKS_STYLE_CONFIG, # 后台任务
|
|
||||||
"main": MAIN_STYLE_CONFIG, # 主程序
|
|
||||||
"memory": MEMORY_STYLE_CONFIG, # 海马体
|
|
||||||
"pfc": PFC_STYLE_CONFIG, # PFC
|
|
||||||
"mood": MOOD_STYLE_CONFIG, # 心情
|
|
||||||
"tool_use": TOOL_USE_STYLE_CONFIG, # 工具使用
|
|
||||||
"relation": RELATION_STYLE_CONFIG, # 关系
|
|
||||||
"config": CONFIG_STYLE_CONFIG, # 配置
|
|
||||||
"heartflow": HEARTFLOW_STYLE_CONFIG, # 麦麦大脑袋
|
|
||||||
"normal_chat_response": NORMAL_CHAT_RESPONSE_STYLE_CONFIG, # 麦麦组织语言
|
|
||||||
"chat": CHAT_STYLE_CONFIG, # 见闻
|
|
||||||
"emoji": EMOJI_STYLE_CONFIG, # 表情包
|
|
||||||
"sub_heartflow": SUB_HEARTFLOW_STYLE_CONFIG, # 麦麦水群
|
|
||||||
"sub_heartflow_mind": SUB_HEARTFLOW_MIND_STYLE_CONFIG, # 麦麦小脑袋
|
|
||||||
"subheartflow_manager": SUBHEARTFLOW_MANAGER_STYLE_CONFIG, # 麦麦水群[管理]
|
|
||||||
"base_tool": BASE_TOOL_STYLE_CONFIG, # 工具使用
|
|
||||||
"chat_stream": CHAT_STREAM_STYLE_CONFIG, # 聊天流
|
|
||||||
"person_info": PERSON_INFO_STYLE_CONFIG, # 人物信息
|
|
||||||
"willing": WILLING_STYLE_CONFIG, # 意愿
|
|
||||||
"pfc_action_planner": PFC_ACTION_PLANNER_STYLE_CONFIG, # PFC私聊规划
|
|
||||||
"statistic": STATISTIC_STYLE_CONFIG, # 麦麦统计
|
|
||||||
"lpmm": LPMM_STYLE_CONFIG, # LPMM
|
|
||||||
"hfc": HFC_STYLE_CONFIG, # HFC
|
|
||||||
"observation": OBSERVATION_STYLE_CONFIG, # 聊天观察
|
|
||||||
"planner": PLANNER_STYLE_CONFIG, # 规划器
|
|
||||||
"processor": PROCESSOR_STYLE_CONFIG, # 处理器
|
|
||||||
"action_taken": ACTION_TAKEN_STYLE_CONFIG, # 动作
|
|
||||||
"tianyi": TIANYI_STYLE_CONFIG, # 天依
|
|
||||||
"remote": REMOTE_STYLE_CONFIG, # 远程
|
|
||||||
"topic": TOPIC_STYLE_CONFIG, # 话题
|
|
||||||
"sender": SENDER_STYLE_CONFIG, # 消息发送
|
|
||||||
"confirm": CONFIRM_STYLE_CONFIG, # EULA与PRIVACY确认
|
|
||||||
"model_utils": MODEL_UTILS_STYLE_CONFIG, # 模型工具
|
|
||||||
"prompt": PROMPT_STYLE_CONFIG, # 提示词
|
|
||||||
"change_mood_tool": CHANGE_MOOD_TOOL_STYLE_CONFIG, # 改变心情工具
|
|
||||||
"change_relationship": CHANGE_RELATIONSHIP_TOOL_STYLE_CONFIG, # 改变关系工具
|
|
||||||
"get_knowledge_tool": GET_KNOWLEDGE_TOOL_STYLE_CONFIG, # 获取知识工具
|
|
||||||
"get_time_date": GET_TIME_DATE_TOOL_STYLE_CONFIG, # 获取时间日期工具
|
|
||||||
"lpm_get_knowledge_tool": LPMM_GET_KNOWLEDGE_TOOL_STYLE_CONFIG, # LPMM获取知识工具
|
|
||||||
"message_buffer": MESSAGE_BUFFER_STYLE_CONFIG, # 消息缓冲
|
|
||||||
"chat_message": CHAT_MESSAGE_STYLE_CONFIG, # 聊天消息
|
|
||||||
"chat_image": CHAT_IMAGE_STYLE_CONFIG, # 聊天图片
|
|
||||||
"init": INIT_STYLE_CONFIG, # 初始化
|
|
||||||
"interest_chat": INTEREST_CHAT_STYLE_CONFIG, # 兴趣
|
|
||||||
"api": API_SERVER_STYLE_CONFIG, # API服务器
|
|
||||||
"normal_chat": NORMAL_CHAT_STYLE_CONFIG, # 一般水群
|
|
||||||
"focus_chat": FOCUS_CHAT_STYLE_CONFIG, # 专注水群
|
|
||||||
"expressor": EXPRESS_STYLE_CONFIG, # 麦麦表达
|
|
||||||
"action_manager": ACTION_MANAGER_STYLE_CONFIG, # 动作选择
|
|
||||||
# ...如有更多模块,继续添加...
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def get_logger(module_name: str):
|
|
||||||
style_config = MODULE_LOGGER_CONFIGS.get(module_name)
|
|
||||||
if style_config:
|
|
||||||
log_config = LogConfig(
|
|
||||||
console_format=style_config["console_format"],
|
|
||||||
file_format=style_config["file_format"],
|
|
||||||
)
|
|
||||||
return get_module_logger(module_name, config=log_config)
|
|
||||||
# 若无特殊样式,使用默认
|
|
||||||
return get_module_logger(module_name)
|
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
__version__ = "0.1.0"
|
__version__ = "0.1.0"
|
||||||
|
|
||||||
from .api import global_api
|
from .api import get_global_api
|
||||||
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"global_api",
|
"get_global_api",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
from src.common.server import global_server
|
from src.common.server import get_global_server
|
||||||
import os
|
import os
|
||||||
import importlib.metadata
|
import importlib.metadata
|
||||||
from maim_message import MessageServer
|
from maim_message import MessageServer
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
|
|
||||||
|
global_api = None
|
||||||
|
|
||||||
|
def get_global_api() -> MessageServer:
|
||||||
|
"""获取全局MessageServer实例"""
|
||||||
|
global global_api
|
||||||
|
if global_api is None:
|
||||||
# 检查maim_message版本
|
# 检查maim_message版本
|
||||||
try:
|
try:
|
||||||
maim_message_version = importlib.metadata.version("maim_message")
|
maim_message_version = importlib.metadata.version("maim_message")
|
||||||
@@ -20,7 +25,7 @@ maim_message_config = global_config.maim_message
|
|||||||
kwargs = {
|
kwargs = {
|
||||||
"host": os.environ["HOST"],
|
"host": os.environ["HOST"],
|
||||||
"port": int(os.environ["PORT"]),
|
"port": int(os.environ["PORT"]),
|
||||||
"app": global_server.get_app(),
|
"app": get_global_server().get_app(),
|
||||||
}
|
}
|
||||||
|
|
||||||
# 只有在版本 >= 0.3.0 时才使用高级特性
|
# 只有在版本 >= 0.3.0 时才使用高级特性
|
||||||
@@ -47,9 +52,8 @@ if version_compatible:
|
|||||||
kwargs["ssl_keyfile"] = maim_message_config.key_file
|
kwargs["ssl_keyfile"] = maim_message_config.key_file
|
||||||
kwargs["enable_custom_uvicorn_logger"] = False
|
kwargs["enable_custom_uvicorn_logger"] = False
|
||||||
|
|
||||||
|
|
||||||
global_api = MessageServer(**kwargs)
|
global_api = MessageServer(**kwargs)
|
||||||
|
|
||||||
if version_compatible and maim_message_config.auth_token:
|
if version_compatible and maim_message_config.auth_token:
|
||||||
for token in maim_message_config.auth_token:
|
for token in maim_message_config.auth_token:
|
||||||
global_api.add_valid_token(token)
|
global_api.add_valid_token(token)
|
||||||
|
return global_api
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
from src.common.database.database_model import Messages # 更改导入
|
from src.common.database.database_model import Messages # 更改导入
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
import traceback
|
import traceback
|
||||||
from typing import List, Any, Optional
|
from typing import List, Any, Optional
|
||||||
from peewee import Model # 添加 Peewee Model 导入
|
from peewee import Model # 添加 Peewee Model 导入
|
||||||
|
|
||||||
logger = get_module_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def _model_to_dict(model_instance: Model) -> dict[str, Any]:
|
def _model_to_dict(model_instance: Model) -> dict[str, Any]:
|
||||||
|
|||||||
@@ -3,8 +3,7 @@ import asyncio
|
|||||||
import requests
|
import requests
|
||||||
import platform
|
import platform
|
||||||
|
|
||||||
# from loguru import logger
|
from src.common.logger import get_logger
|
||||||
from src.common.logger_manager import get_logger
|
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.manager.async_task_manager import AsyncTask
|
from src.manager.async_task_manager import AsyncTask
|
||||||
from src.manager.local_store_manager import local_storage
|
from src.manager.local_store_manager import local_storage
|
||||||
|
|||||||
@@ -90,4 +90,11 @@ class Server:
|
|||||||
return self.app
|
return self.app
|
||||||
|
|
||||||
|
|
||||||
|
global_server = None
|
||||||
|
|
||||||
|
def get_global_server() -> Server:
|
||||||
|
"""获取全局服务器实例"""
|
||||||
|
global global_server
|
||||||
|
if global_server is None:
|
||||||
global_server = Server(host=os.environ["HOST"], port=int(os.environ["PORT"]))
|
global_server = Server(host=os.environ["HOST"], port=int(os.environ["PORT"]))
|
||||||
|
return global_server
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from datetime import datetime
|
|||||||
from tomlkit import TOMLDocument
|
from tomlkit import TOMLDocument
|
||||||
from tomlkit.items import Table
|
from tomlkit.items import Table
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
|
|
||||||
from src.config.config_base import ConfigBase
|
from src.config.config_base import ConfigBase
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import time
|
import time
|
||||||
from typing import Tuple, Optional # 增加了 Optional
|
from typing import Tuple, Optional # 增加了 Optional
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.experimental.PFC.chat_observer import ChatObserver
|
from src.experimental.PFC.chat_observer import ChatObserver
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import time
|
|||||||
import asyncio
|
import asyncio
|
||||||
import traceback
|
import traceback
|
||||||
from typing import Optional, Dict, Any, List
|
from typing import Optional, Dict, Any, List
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from maim_message import UserInfo
|
from maim_message import UserInfo
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.experimental.PFC.chat_states import (
|
from src.experimental.PFC.chat_states import (
|
||||||
@@ -15,7 +15,7 @@ from rich.traceback import install
|
|||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
|
|
||||||
logger = get_module_logger("chat_observer")
|
logger = get_logger("chat_observer")
|
||||||
|
|
||||||
|
|
||||||
class ChatObserver:
|
class ChatObserver:
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from src.chat.message_receive.message import Message
|
|||||||
from .pfc_types import ConversationState
|
from .pfc_types import ConversationState
|
||||||
from .pfc import ChatObserver, GoalAnalyzer
|
from .pfc import ChatObserver, GoalAnalyzer
|
||||||
from .message_sender import DirectMessageSender
|
from .message_sender import DirectMessageSender
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from .action_planner import ActionPlanner
|
from .action_planner import ActionPlanner
|
||||||
from .observation_info import ObservationInfo
|
from .observation_info import ObservationInfo
|
||||||
from .conversation_info import ConversationInfo # 确保导入 ConversationInfo
|
from .conversation_info import ConversationInfo # 确保导入 ConversationInfo
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import time
|
import time
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.message_receive.chat_stream import ChatStream
|
from src.chat.message_receive.chat_stream import ChatStream
|
||||||
from src.chat.message_receive.message import Message
|
from src.chat.message_receive.message import Message
|
||||||
from maim_message import UserInfo, Seg
|
from maim_message import UserInfo, Seg
|
||||||
@@ -13,7 +13,7 @@ from rich.traceback import install
|
|||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
|
|
||||||
|
|
||||||
logger = get_module_logger("message_sender")
|
logger = get_logger("message_sender")
|
||||||
|
|
||||||
|
|
||||||
class DirectMessageSender:
|
class DirectMessageSender:
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
from typing import List, Optional, Dict, Any, Set
|
from typing import List, Optional, Dict, Any, Set
|
||||||
from maim_message import UserInfo
|
from maim_message import UserInfo
|
||||||
import time
|
import time
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.experimental.PFC.chat_observer import ChatObserver
|
from src.experimental.PFC.chat_observer import ChatObserver
|
||||||
from src.experimental.PFC.chat_states import NotificationHandler, NotificationType, Notification
|
from src.experimental.PFC.chat_states import NotificationHandler, NotificationType, Notification
|
||||||
from src.chat.utils.chat_message_builder import build_readable_messages
|
from src.chat.utils.chat_message_builder import build_readable_messages
|
||||||
import traceback # 导入 traceback 用于调试
|
import traceback # 导入 traceback 用于调试
|
||||||
|
|
||||||
logger = get_module_logger("observation_info")
|
logger = get_logger("observation_info")
|
||||||
|
|
||||||
|
|
||||||
class ObservationInfoHandler(NotificationHandler):
|
class ObservationInfoHandler(NotificationHandler):
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from typing import List, Tuple, TYPE_CHECKING
|
from typing import List, Tuple, TYPE_CHECKING
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.experimental.PFC.chat_observer import ChatObserver
|
from src.experimental.PFC.chat_observer import ChatObserver
|
||||||
@@ -15,7 +15,7 @@ install(extra_lines=3)
|
|||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
logger = get_module_logger("pfc")
|
logger = get_logger("pfc")
|
||||||
|
|
||||||
|
|
||||||
def _calculate_similarity(goal1: str, goal2: str) -> float:
|
def _calculate_similarity(goal1: str, goal2: str) -> float:
|
||||||
@@ -289,13 +289,13 @@ class GoalAnalyzer:
|
|||||||
# """直接发送消息到平台的发送器"""
|
# """直接发送消息到平台的发送器"""
|
||||||
|
|
||||||
# def __init__(self, private_name: str):
|
# def __init__(self, private_name: str):
|
||||||
# self.logger = get_module_logger("direct_sender")
|
# self.logger = get_logger("direct_sender")
|
||||||
# self.storage = MessageStorage()
|
# self.storage = MessageStorage()
|
||||||
# self.private_name = private_name
|
# self.private_name = private_name
|
||||||
|
|
||||||
# async def send_via_ws(self, message: MessageSending) -> None:
|
# async def send_via_ws(self, message: MessageSending) -> None:
|
||||||
# try:
|
# try:
|
||||||
# await global_api.send_message(message)
|
# await get_global_api().send_message(message)
|
||||||
# except Exception as e:
|
# except Exception as e:
|
||||||
# raise ValueError(f"未找到平台:{message.message_info.platform} 的url配置,请检查配置文件") from e
|
# raise ValueError(f"未找到平台:{message.message_info.platform} 的url配置,请检查配置文件") from e
|
||||||
|
|
||||||
@@ -341,6 +341,6 @@ class GoalAnalyzer:
|
|||||||
# try:
|
# try:
|
||||||
# await self.send_via_ws(message)
|
# await self.send_via_ws(message)
|
||||||
# await self.storage.store_message(message, chat_stream)
|
# await self.storage.store_message(message, chat_stream)
|
||||||
# logger.success(f"[私聊][{self.private_name}]PFC消息已发送: {content}")
|
# logger.info(f"[私聊][{self.private_name}]PFC消息已发送: {content}")
|
||||||
# except Exception as e:
|
# except Exception as e:
|
||||||
# logger.error(f"[私聊][{self.private_name}]PFC消息发送失败: {str(e)}")
|
# logger.error(f"[私聊][{self.private_name}]PFC消息发送失败: {str(e)}")
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from typing import List, Tuple
|
from typing import List, Tuple
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.memory_system.Hippocampus import hippocampus_manager
|
from src.chat.memory_system.Hippocampus import hippocampus_manager
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
@@ -7,7 +7,7 @@ from src.chat.message_receive.message import Message
|
|||||||
from src.chat.knowledge.knowledge_lib import qa_manager
|
from src.chat.knowledge.knowledge_lib import qa_manager
|
||||||
from src.chat.utils.chat_message_builder import build_readable_messages
|
from src.chat.utils.chat_message_builder import build_readable_messages
|
||||||
|
|
||||||
logger = get_module_logger("knowledge_fetcher")
|
logger = get_logger("knowledge_fetcher")
|
||||||
|
|
||||||
|
|
||||||
class KnowledgeFetcher:
|
class KnowledgeFetcher:
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import time
|
import time
|
||||||
from typing import Dict, Optional
|
from typing import Dict, Optional
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from .conversation import Conversation
|
from .conversation import Conversation
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
logger = get_module_logger("pfc_manager")
|
logger = get_logger("pfc_manager")
|
||||||
|
|
||||||
|
|
||||||
class PFCManager:
|
class PFCManager:
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
from typing import Dict, Any, Optional, Tuple, List, Union
|
from typing import Dict, Any, Optional, Tuple, List, Union
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_module_logger("pfc_utils")
|
logger = get_logger("pfc_utils")
|
||||||
|
|
||||||
|
|
||||||
def get_items_from_json(
|
def get_items_from_json(
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import json
|
import json
|
||||||
from typing import Tuple, List, Dict, Any
|
from typing import Tuple, List, Dict, Any
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.experimental.PFC.chat_observer import ChatObserver
|
from src.experimental.PFC.chat_observer import ChatObserver
|
||||||
from maim_message import UserInfo
|
from maim_message import UserInfo
|
||||||
|
|
||||||
logger = get_module_logger("reply_checker")
|
logger = get_logger("reply_checker")
|
||||||
|
|
||||||
|
|
||||||
class ReplyChecker:
|
class ReplyChecker:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from typing import Tuple, List, Dict, Any
|
from typing import Tuple, List, Dict, Any
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.experimental.PFC.chat_observer import ChatObserver
|
from src.experimental.PFC.chat_observer import ChatObserver
|
||||||
@@ -9,7 +9,7 @@ from .observation_info import ObservationInfo
|
|||||||
from .conversation_info import ConversationInfo
|
from .conversation_info import ConversationInfo
|
||||||
from src.chat.utils.chat_message_builder import build_readable_messages
|
from src.chat.utils.chat_message_builder import build_readable_messages
|
||||||
|
|
||||||
logger = get_module_logger("reply_generator")
|
logger = get_logger("reply_generator")
|
||||||
|
|
||||||
# --- 定义 Prompt 模板 ---
|
# --- 定义 Prompt 模板 ---
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from .chat_observer import ChatObserver
|
from .chat_observer import ChatObserver
|
||||||
from .conversation_info import ConversationInfo
|
from .conversation_info import ConversationInfo
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@ from src.config.config import global_config
|
|||||||
import time
|
import time
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
logger = get_module_logger("waiter")
|
logger = get_logger("waiter")
|
||||||
|
|
||||||
# --- 在这里设定你想要的超时时间(秒) ---
|
# --- 在这里设定你想要的超时时间(秒) ---
|
||||||
# 例如: 120 秒 = 2 分钟
|
# 例如: 120 秒 = 2 分钟
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.chat.message_receive.message import MessageRecv
|
from src.chat.message_receive.message import MessageRecv
|
||||||
from src.chat.message_receive.storage import MessageStorage
|
from src.chat.message_receive.storage import MessageStorage
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import random
|
import random
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.llm_models.utils_model import LLMRequest
|
from src.llm_models.utils_model import LLMRequest
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ from typing import Tuple, Union
|
|||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
import requests
|
import requests
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
from src.common.tcp_connector import get_tcp_connector
|
from src.common.tcp_connector import get_tcp_connector
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
|
|
||||||
logger = get_module_logger("offline_llm")
|
logger = get_logger("offline_llm")
|
||||||
|
|
||||||
|
|
||||||
class LLMRequestOff:
|
class LLMRequestOff:
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Tuple, Union, Dict, Any
|
from typing import Tuple, Union, Dict, Any
|
||||||
import aiohttp
|
import aiohttp
|
||||||
from aiohttp.client import ClientResponse
|
from aiohttp.client import ClientResponse
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_logger
|
||||||
import base64
|
import base64
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
import io
|
import io
|
||||||
@@ -18,7 +19,7 @@ from rich.traceback import install
|
|||||||
|
|
||||||
install(extra_lines=3)
|
install(extra_lines=3)
|
||||||
|
|
||||||
logger = get_module_logger("model_utils")
|
logger = get_logger("model_utils")
|
||||||
|
|
||||||
|
|
||||||
class PayLoadTooLargeError(Exception):
|
class PayLoadTooLargeError(Exception):
|
||||||
@@ -115,6 +116,8 @@ class LLMRequest:
|
|||||||
logger.error(f"原始 model dict 信息:{model}")
|
logger.error(f"原始 model dict 信息:{model}")
|
||||||
logger.error(f"配置错误:找不到对应的配置项 - {str(e)}")
|
logger.error(f"配置错误:找不到对应的配置项 - {str(e)}")
|
||||||
raise ValueError(f"配置错误:找不到对应的配置项 - {str(e)}") from e
|
raise ValueError(f"配置错误:找不到对应的配置项 - {str(e)}") from e
|
||||||
|
except KeyError as e:
|
||||||
|
logger.warn(f"找不到{model['provider']}_KEY或{model['provider']}_BASE_URL环境变量,请检查配置文件或环境变量设置。")
|
||||||
self.model_name: str = model["name"]
|
self.model_name: str = model["name"]
|
||||||
self.params = kwargs
|
self.params = kwargs
|
||||||
|
|
||||||
@@ -885,7 +888,7 @@ def compress_base64_image_by_scale(base64_data: str, target_size: int = 0.8 * 10
|
|||||||
|
|
||||||
# 获取压缩后的数据并转换为base64
|
# 获取压缩后的数据并转换为base64
|
||||||
compressed_data = output_buffer.getvalue()
|
compressed_data = output_buffer.getvalue()
|
||||||
logger.success(f"压缩图片: {original_width}x{original_height} -> {new_width}x{new_height}")
|
logger.info(f"压缩图片: {original_width}x{original_height} -> {new_width}x{new_height}")
|
||||||
logger.info(f"压缩前大小: {len(image_data) / 1024:.1f}KB, 压缩后大小: {len(compressed_data) / 1024:.1f}KB")
|
logger.info(f"压缩前大小: {len(image_data) / 1024:.1f}KB, 压缩后大小: {len(compressed_data) / 1024:.1f}KB")
|
||||||
|
|
||||||
return base64.b64encode(compressed_data).decode("utf-8")
|
return base64.b64encode(compressed_data).decode("utf-8")
|
||||||
|
|||||||
56
src/main.py
56
src/main.py
@@ -1,34 +1,34 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import time
|
import time
|
||||||
from maim_message import MessageServer
|
from maim_message import MessageServer
|
||||||
from .common.remote import TelemetryHeartBeatTask
|
from src.common.remote import TelemetryHeartBeatTask
|
||||||
from .manager.async_task_manager import async_task_manager
|
from src.manager.async_task_manager import async_task_manager
|
||||||
from .chat.utils.statistic import OnlineTimeRecordTask, StatisticOutputTask
|
from src.chat.utils.statistic import OnlineTimeRecordTask, StatisticOutputTask
|
||||||
from .manager.mood_manager import MoodPrintTask, MoodUpdateTask
|
from src.manager.mood_manager import MoodPrintTask, MoodUpdateTask
|
||||||
from .chat.emoji_system.emoji_manager import emoji_manager
|
from src.chat.emoji_system.emoji_manager import emoji_manager
|
||||||
from .chat.normal_chat.willing.willing_manager import willing_manager
|
from src.chat.normal_chat.willing.willing_manager import willing_manager
|
||||||
from .chat.message_receive.chat_stream import chat_manager
|
from src.chat.message_receive.chat_stream import chat_manager
|
||||||
from src.chat.heart_flow.heartflow import heartflow
|
from src.chat.heart_flow.heartflow import heartflow
|
||||||
from .chat.message_receive.message_sender import message_manager
|
from src.chat.message_receive.message_sender import message_manager
|
||||||
from .chat.message_receive.storage import MessageStorage
|
from src.chat.message_receive.storage import MessageStorage
|
||||||
from .config.config import global_config
|
from src.config.config import global_config
|
||||||
from .chat.message_receive.bot import chat_bot
|
from src.chat.message_receive.bot import chat_bot
|
||||||
from .common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from .individuality.individuality import individuality, Individuality
|
from src.individuality.individuality import individuality, Individuality
|
||||||
from .common.server import global_server, Server
|
from src.common.server import get_global_server, Server
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
from .chat.focus_chat.expressors.exprssion_learner import expression_learner
|
from src.chat.focus_chat.expressors.exprssion_learner import expression_learner
|
||||||
from .api.main import start_api_server
|
from src.api.main import start_api_server
|
||||||
|
|
||||||
# 导入新的插件管理器
|
# 导入新的插件管理器
|
||||||
from src.plugin_system.core.plugin_manager import plugin_manager
|
from src.plugin_system.core.plugin_manager import plugin_manager
|
||||||
|
|
||||||
# 导入消息API和traceback模块
|
# 导入消息API和traceback模块
|
||||||
from src.common.message import global_api
|
from src.common.message import get_global_api
|
||||||
|
|
||||||
# 条件导入记忆系统
|
# 条件导入记忆系统
|
||||||
if global_config.memory.enable_memory:
|
if global_config.memory.enable_memory:
|
||||||
from .chat.memory_system.Hippocampus import hippocampus_manager
|
from src.chat.memory_system.Hippocampus import hippocampus_manager
|
||||||
|
|
||||||
# 插件系统现在使用统一的插件加载器
|
# 插件系统现在使用统一的插件加载器
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ class MainSystem:
|
|||||||
self.individuality: Individuality = individuality
|
self.individuality: Individuality = individuality
|
||||||
|
|
||||||
# 使用消息API替代直接的FastAPI实例
|
# 使用消息API替代直接的FastAPI实例
|
||||||
self.app: MessageServer = global_api
|
self.app: MessageServer = get_global_api()
|
||||||
self.server: Server = global_server
|
self.server: Server = get_global_server()
|
||||||
|
|
||||||
async def initialize(self):
|
async def initialize(self):
|
||||||
"""初始化系统组件"""
|
"""初始化系统组件"""
|
||||||
@@ -75,15 +75,15 @@ class MainSystem:
|
|||||||
|
|
||||||
# 启动API服务器
|
# 启动API服务器
|
||||||
start_api_server()
|
start_api_server()
|
||||||
logger.success("API服务器启动成功")
|
logger.info("API服务器启动成功")
|
||||||
|
|
||||||
# 加载所有actions,包括默认的和插件的
|
# 加载所有actions,包括默认的和插件的
|
||||||
plugin_count, component_count = plugin_manager.load_all_plugins()
|
plugin_count, component_count = plugin_manager.load_all_plugins()
|
||||||
logger.success(f"插件系统加载成功: {plugin_count} 个插件,{component_count} 个组件")
|
logger.info(f"插件系统加载成功: {plugin_count} 个插件,{component_count} 个组件")
|
||||||
|
|
||||||
# 初始化表情管理器
|
# 初始化表情管理器
|
||||||
emoji_manager.initialize()
|
emoji_manager.initialize()
|
||||||
logger.success("表情包管理器初始化成功")
|
logger.info("表情包管理器初始化成功")
|
||||||
|
|
||||||
# 添加情绪衰减任务
|
# 添加情绪衰减任务
|
||||||
await async_task_manager.add_task(MoodUpdateTask())
|
await async_task_manager.add_task(MoodUpdateTask())
|
||||||
@@ -101,7 +101,7 @@ class MainSystem:
|
|||||||
if global_config.memory.enable_memory:
|
if global_config.memory.enable_memory:
|
||||||
if self.hippocampus_manager:
|
if self.hippocampus_manager:
|
||||||
self.hippocampus_manager.initialize()
|
self.hippocampus_manager.initialize()
|
||||||
logger.success("记忆系统初始化成功")
|
logger.info("记忆系统初始化成功")
|
||||||
else:
|
else:
|
||||||
logger.info("记忆系统已禁用,跳过初始化")
|
logger.info("记忆系统已禁用,跳过初始化")
|
||||||
|
|
||||||
@@ -117,19 +117,19 @@ class MainSystem:
|
|||||||
personality_sides=global_config.personality.personality_sides,
|
personality_sides=global_config.personality.personality_sides,
|
||||||
identity_detail=global_config.identity.identity_detail,
|
identity_detail=global_config.identity.identity_detail,
|
||||||
)
|
)
|
||||||
logger.success("个体特征初始化成功")
|
logger.info("个体特征初始化成功")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 启动全局消息管理器 (负责消息发送/排队)
|
# 启动全局消息管理器 (负责消息发送/排队)
|
||||||
await message_manager.start()
|
await message_manager.start()
|
||||||
logger.success("全局消息管理器启动成功")
|
logger.info("全局消息管理器启动成功")
|
||||||
|
|
||||||
# 启动心流系统主循环
|
# 启动心流系统主循环
|
||||||
asyncio.create_task(heartflow.heartflow_start_working())
|
asyncio.create_task(heartflow.heartflow_start_working())
|
||||||
logger.success("心流系统启动成功")
|
logger.info("心流系统启动成功")
|
||||||
|
|
||||||
init_time = int(1000 * (time.time() - init_start_time))
|
init_time = int(1000 * (time.time() - init_start_time))
|
||||||
logger.success(f"初始化完成,神经元放电{init_time}次")
|
logger.info(f"初始化完成,神经元放电{init_time}次")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"启动大脑和外部世界失败: {e}")
|
logger.error(f"启动大脑和外部世界失败: {e}")
|
||||||
raise
|
raise
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import asyncio
|
|||||||
from asyncio import Task, Event, Lock
|
from asyncio import Task, Event, Lock
|
||||||
from typing import Callable, Dict
|
from typing import Callable, Dict
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger("async_task_manager")
|
logger = get_logger("async_task_manager")
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
|
|
||||||
LOCAL_STORE_FILE_PATH = "data/local_store.json"
|
LOCAL_STORE_FILE_PATH = "data/local_store.json"
|
||||||
|
|
||||||
@@ -50,20 +50,20 @@ class LocalStoreManager:
|
|||||||
try:
|
try:
|
||||||
with open(self.file_path, "r", encoding="utf-8") as f:
|
with open(self.file_path, "r", encoding="utf-8") as f:
|
||||||
self.store = json.load(f)
|
self.store = json.load(f)
|
||||||
logger.success("全都记起来了!")
|
logger.info("全都记起来了!")
|
||||||
except json.JSONDecodeError:
|
except json.JSONDecodeError:
|
||||||
logger.warning("啊咧?记事本被弄脏了,正在重建记事本......")
|
logger.warning("啊咧?记事本被弄脏了,正在重建记事本......")
|
||||||
self.store = {}
|
self.store = {}
|
||||||
with open(self.file_path, "w", encoding="utf-8") as f:
|
with open(self.file_path, "w", encoding="utf-8") as f:
|
||||||
json.dump({}, f, ensure_ascii=False, indent=4)
|
json.dump({}, f, ensure_ascii=False, indent=4)
|
||||||
logger.success("记事本重建成功!")
|
logger.info("记事本重建成功!")
|
||||||
else:
|
else:
|
||||||
# 不存在本地存储文件,创建新的目录和文件
|
# 不存在本地存储文件,创建新的目录和文件
|
||||||
logger.warning("啊咧?记事本不存在,正在创建新的记事本......")
|
logger.warning("啊咧?记事本不存在,正在创建新的记事本......")
|
||||||
os.makedirs(os.path.dirname(self.file_path), exist_ok=True)
|
os.makedirs(os.path.dirname(self.file_path), exist_ok=True)
|
||||||
with open(self.file_path, "w", encoding="utf-8") as f:
|
with open(self.file_path, "w", encoding="utf-8") as f:
|
||||||
json.dump({}, f, ensure_ascii=False, indent=4)
|
json.dump({}, f, ensure_ascii=False, indent=4)
|
||||||
logger.success("记事本创建成功!")
|
logger.info("记事本创建成功!")
|
||||||
|
|
||||||
def save_local_store(self):
|
def save_local_store(self):
|
||||||
"""保存本地存储数据"""
|
"""保存本地存储数据"""
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from dataclasses import dataclass
|
|||||||
from typing import Dict, Tuple
|
from typing import Dict, Tuple
|
||||||
|
|
||||||
from ..config.config import global_config
|
from ..config.config import global_config
|
||||||
from ..common.logger_manager import get_logger
|
from ..common.logger import get_logger
|
||||||
from ..manager.async_task_manager import AsyncTask
|
from ..manager.async_task_manager import AsyncTask
|
||||||
from ..individuality.individuality import individuality
|
from ..individuality.individuality import individuality
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from src.manager.async_task_manager import AsyncTask
|
from src.manager.async_task_manager import AsyncTask
|
||||||
from src.common.logger_manager import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.person_info.person_info import PersonInfoManager
|
from src.person_info.person_info import PersonInfoManager
|
||||||
from src.person_info.relationship_manager import relationship_manager
|
from src.person_info.relationship_manager import relationship_manager
|
||||||
from src.chat.utils.chat_message_builder import get_raw_msg_by_timestamp
|
from src.chat.utils.chat_message_builder import get_raw_msg_by_timestamp
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user