refactor(chat): 优化异步任务处理和参数传递机制
- 重构ExpressionSelector初始化,添加chat_id参数支持 - 优化StreamLoopManager中异步任务的创建和管理方式 - 简化MessageManager中的消息添加流程 - 调整Prompt中表情选择器的参数传递结构
This commit is contained in:
@@ -71,7 +71,8 @@ def weighted_sample(population: list[dict], weights: list[float], k: int) -> lis
|
||||
|
||||
|
||||
class ExpressionSelector:
|
||||
def __init__(self):
|
||||
def __init__(self, chat_id: str = ""):
|
||||
self.chat_id = chat_id
|
||||
self.llm_model = LLMRequest(
|
||||
model_set=model_config.model_task_config.utils_small, request_type="expression.selector"
|
||||
)
|
||||
|
||||
@@ -9,6 +9,7 @@ from typing import Any
|
||||
|
||||
from src.chat.chatter_manager import ChatterManager
|
||||
from src.chat.energy_system import energy_manager
|
||||
from src.common.data_models.message_manager_data_model import StreamContext
|
||||
from src.common.logger import get_logger
|
||||
from src.config.config import global_config
|
||||
from src.plugin_system.apis.chat_api import get_chat_manager
|
||||
@@ -369,7 +370,7 @@ class StreamLoopManager:
|
||||
logger.error(f"检查消息状态失败: {e}")
|
||||
return False
|
||||
|
||||
async def _process_stream_messages(self, stream_id: str, context: Any) -> bool:
|
||||
async def _process_stream_messages(self, stream_id: str, context: StreamContext) -> bool:
|
||||
"""处理流消息
|
||||
|
||||
Args:
|
||||
@@ -387,7 +388,8 @@ class StreamLoopManager:
|
||||
start_time = time.time()
|
||||
|
||||
# 直接调用chatter_manager处理流上下文
|
||||
results = await asyncio.create_task(self.chatter_manager.process_stream_context(stream_id, context))
|
||||
context.processing_task = asyncio.create_task(self.chatter_manager.process_stream_context(stream_id, context))
|
||||
results = await context.processing_task
|
||||
success = results.get("success", False)
|
||||
|
||||
if success:
|
||||
|
||||
@@ -89,9 +89,8 @@ class MessageManager:
|
||||
logger.warning(f"MessageManager.add_message: 聊天流 {stream_id} 不存在")
|
||||
return
|
||||
await self._check_and_handle_interruption(chat_stream)
|
||||
chat_stream.context_manager.context.processing_task = asyncio.create_task(
|
||||
chat_stream.context_manager.add_message(message)
|
||||
)
|
||||
await chat_stream.context_manager.add_message(message)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"添加消息到聊天流 {stream_id} 时发生错误: {e}")
|
||||
|
||||
|
||||
@@ -519,10 +519,9 @@ class Prompt:
|
||||
|
||||
# 选择合适的表情
|
||||
selected_expressions = await expression_selector.select_suitable_expressions_llm(
|
||||
chat_history=chat_history,
|
||||
current_message=self.parameters.target,
|
||||
emotional_tone="neutral",
|
||||
topic_type="general",
|
||||
chat_id=self.parameters.chat_id,
|
||||
chat_info=chat_history,
|
||||
target_message=self.parameters.target,
|
||||
)
|
||||
|
||||
# 构建表达习惯块
|
||||
|
||||
Reference in New Issue
Block a user