fix: 刚刚没修完
This commit is contained in:
@@ -163,9 +163,19 @@ class MessageManager:
|
|||||||
container.add_message(message)
|
container.add_message(message)
|
||||||
|
|
||||||
def check_if_sending_message_exist(self, chat_id, thinking_id):
|
def check_if_sending_message_exist(self, chat_id, thinking_id):
|
||||||
|
"""检查指定聊天流的容器中是否存在具有特定 thinking_id 的 MessageSending 消息"""
|
||||||
container = self.get_container(chat_id)
|
container = self.get_container(chat_id)
|
||||||
if container.has_messages():
|
if container.has_messages():
|
||||||
|
for message in container.get_all_messages():
|
||||||
|
# 首先确保是 MessageSending 类型
|
||||||
|
if isinstance(message, MessageSending):
|
||||||
|
# 然后再访问 message_info.message_id
|
||||||
|
# 检查 message_id 是否匹配 thinking_id 或以 "me" 开头
|
||||||
|
if message.message_info.message_id == thinking_id or message.message_info.message_id[:2] == "me":
|
||||||
|
print(f"检查到存在相同thinking_id的消息: {message.message_info.message_id}???{thinking_id}")
|
||||||
|
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
async def process_chat_messages(self, chat_id: str):
|
async def process_chat_messages(self, chat_id: str):
|
||||||
"""处理聊天流消息"""
|
"""处理聊天流消息"""
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ from src.plugins.chat.chat_stream import chat_manager
|
|||||||
from src.common.logger import get_module_logger, LogConfig, DEFAULT_CONFIG # 引入 DEFAULT_CONFIG
|
from src.common.logger import get_module_logger, LogConfig, DEFAULT_CONFIG # 引入 DEFAULT_CONFIG
|
||||||
from src.plugins.models.utils_model import LLMRequest
|
from src.plugins.models.utils_model import LLMRequest
|
||||||
from src.plugins.chat.utils import parse_text_timestamps
|
from src.plugins.chat.utils import parse_text_timestamps
|
||||||
|
from src.plugins.chat.utils_image import image_path_to_base64 # Local import needed after move
|
||||||
|
from src.plugins.chat.message import Seg # Local import needed after move
|
||||||
|
|
||||||
# 定义日志配置 (使用 loguru 格式)
|
# 定义日志配置 (使用 loguru 格式)
|
||||||
interest_log_config = LogConfig(
|
interest_log_config = LogConfig(
|
||||||
@@ -90,7 +92,7 @@ class PFChatting:
|
|||||||
self._loop_active: bool = False # Is the loop currently running?
|
self._loop_active: bool = False # Is the loop currently running?
|
||||||
self._loop_task: Optional[asyncio.Task] = None # Stores the main loop task
|
self._loop_task: Optional[asyncio.Task] = None # Stores the main loop task
|
||||||
self._trigger_count_this_activation: int = 0 # Counts triggers within an active period
|
self._trigger_count_this_activation: int = 0 # Counts triggers within an active period
|
||||||
self._initial_duration: float = 30.0 # 首次触发增加的时间
|
self._initial_duration: float = 60.0 # 首次触发增加的时间
|
||||||
self._last_added_duration: float = self._initial_duration # <--- 新增:存储上次增加的时间
|
self._last_added_duration: float = self._initial_duration # <--- 新增:存储上次增加的时间
|
||||||
|
|
||||||
def _get_log_prefix(self) -> str:
|
def _get_log_prefix(self) -> str:
|
||||||
@@ -209,7 +211,16 @@ class PFChatting:
|
|||||||
log_prefix = self._get_log_prefix()
|
log_prefix = self._get_log_prefix()
|
||||||
logger.info(f"{log_prefix} PFChatting: 麦麦打算好好聊聊 (定时器: {self._loop_timer:.1f}s)")
|
logger.info(f"{log_prefix} PFChatting: 麦麦打算好好聊聊 (定时器: {self._loop_timer:.1f}s)")
|
||||||
try:
|
try:
|
||||||
|
thinking_id = ""
|
||||||
while True:
|
while True:
|
||||||
|
if self.heartfc_controller.MessageManager().check_if_sending_message_exist(self.stream_id, thinking_id):
|
||||||
|
logger.info(f"{log_prefix} PFChatting: 11111111111111111111111111111111麦麦还在发消息,等会再规划")
|
||||||
|
await asyncio.sleep(1)
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
logger.info(f"{log_prefix} PFChatting: 11111111111111111111111111111111麦麦不发消息了,开始规划")
|
||||||
|
|
||||||
|
|
||||||
async with self._timer_lock:
|
async with self._timer_lock:
|
||||||
current_timer = self._loop_timer
|
current_timer = self._loop_timer
|
||||||
if current_timer <= 0:
|
if current_timer <= 0:
|
||||||
@@ -257,11 +268,8 @@ class PFChatting:
|
|||||||
try:
|
try:
|
||||||
# --- Replier Work --- #
|
# --- Replier Work --- #
|
||||||
replier_result = await self._replier_work(
|
replier_result = await self._replier_work(
|
||||||
observed_messages=observed_messages, # Pass observed messages
|
|
||||||
anchor_message=anchor_message,
|
anchor_message=anchor_message,
|
||||||
thinking_id=thinking_id,
|
thinking_id=thinking_id,
|
||||||
current_mind=current_mind,
|
|
||||||
# send_emoji=send_emoji_from_tools, # Pass tool emoji query
|
|
||||||
)
|
)
|
||||||
except Exception as e_replier:
|
except Exception as e_replier:
|
||||||
logger.error(f"{log_prefix} 循环: 回复器工作失败: {e_replier}")
|
logger.error(f"{log_prefix} 循环: 回复器工作失败: {e_replier}")
|
||||||
@@ -813,8 +821,6 @@ class PFChatting:
|
|||||||
|
|
||||||
async def _handle_emoji(self, anchor_message: Optional[MessageRecv], response_set: List[str], send_emoji: str = ""):
|
async def _handle_emoji(self, anchor_message: Optional[MessageRecv], response_set: List[str], send_emoji: str = ""):
|
||||||
"""处理表情包 (尝试锚定到 anchor_message)"""
|
"""处理表情包 (尝试锚定到 anchor_message)"""
|
||||||
from src.plugins.chat.utils_image import image_path_to_base64 # Local import needed after move
|
|
||||||
from src.plugins.chat.message import Seg # Local import needed after move
|
|
||||||
|
|
||||||
if not anchor_message or not anchor_message.chat_stream:
|
if not anchor_message or not anchor_message.chat_stream:
|
||||||
logger.error(f"{self._get_log_prefix()} 无法处理表情包,缺少有效的锚点消息或聊天流。")
|
logger.error(f"{self._get_log_prefix()} 无法处理表情包,缺少有效的锚点消息或聊天流。")
|
||||||
|
|||||||
Reference in New Issue
Block a user