修复ChatStream循环导入问题

This commit is contained in:
Windpicker-owo
2025-11-25 20:29:48 +08:00
parent 6b3b2a8245
commit c268ea2fb2
12 changed files with 65 additions and 44 deletions

View File

@@ -8,10 +8,7 @@ from sqlalchemy.dialects.sqlite import insert as sqlite_insert
from src.common.data_models.database_data_model import DatabaseGroupInfo,DatabaseUserInfo
from src.common.data_models.database_data_model import DatabaseMessages
from src.common.data_models.message_manager_data_model import StreamContext
from src.plugin_system.base.component_types import ChatMode, ChatType
from src.common.database.api.crud import CRUDBase
from src.common.database.api.specialized import get_or_create_chat_stream
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import ChatStreams # 新增导入
from src.common.logger import get_logger
@@ -43,6 +40,8 @@ class ChatStream:
self.sleep_pressure = data.get("sleep_pressure", 0.0) if data else 0.0
self.saved = False
from src.common.data_models.message_manager_data_model import StreamContext
from src.plugin_system.base.component_types import ChatMode, ChatType
self.context: StreamContext = StreamContext(
stream_id=stream_id,
chat_type=ChatType.GROUP if group_info else ChatType.PRIVATE,
@@ -407,6 +406,7 @@ class ChatManager:
stream.group_info = group_info
else:
current_time = time.time()
from src.common.database.api.specialized import get_or_create_chat_stream
model_instance, _ = await get_or_create_chat_stream(
stream_id=stream_id,
platform=platform,

View File

@@ -38,7 +38,6 @@ from typing import TYPE_CHECKING, Any
from mofox_bus import MessageEnvelope, MessageRuntime
from src.chat.message_manager import message_manager
from src.chat.message_receive.chat_stream import get_chat_manager
from src.chat.message_receive.storage import MessageStorage
from src.chat.utils.prompt import global_prompt_manager
from src.chat.utils.utils import is_mentioned_bot_in_message
@@ -261,7 +260,8 @@ class MessageHandler:
# 获取或创建聊天流
platform = message_info.get("platform", "unknown")
from src.chat.message_receive.chat_stream import get_chat_manager
chat = await get_chat_manager().get_or_create_stream(
platform=platform,
user_info=user_info, # type: ignore
@@ -281,6 +281,7 @@ class MessageHandler:
message.chat_info.last_active_time = chat.last_active_time
# 注册消息到聊天管理器
from src.chat.message_receive.chat_stream import get_chat_manager
get_chat_manager().register_message(message)
# 检测是否提及机器人

View File

@@ -3,7 +3,7 @@ import re
import time
import traceback
from collections import deque
from typing import Optional
from typing import Optional, TYPE_CHECKING
import orjson
from sqlalchemy import desc, select, update
@@ -13,9 +13,11 @@ from src.common.database.core import get_db_session
from src.common.database.core.models import Images, Messages
from src.common.logger import get_logger
from .chat_stream import ChatStream
from .message import MessageSending
if TYPE_CHECKING:
from src.chat.message_receive.chat_stream import ChatStream
logger = get_logger("message_storage")
@@ -479,7 +481,7 @@ class MessageStorage:
return []
@staticmethod
async def store_message(message: DatabaseMessages | MessageSending, chat_stream: ChatStream, use_batch: bool = True) -> None:
async def store_message(message: DatabaseMessages | MessageSending, chat_stream: "ChatStream", use_batch: bool = True) -> None:
"""
存储消息到数据库