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:
|
class ExpressionSelector:
|
||||||
def __init__(self):
|
def __init__(self, chat_id: str = ""):
|
||||||
|
self.chat_id = chat_id
|
||||||
self.llm_model = LLMRequest(
|
self.llm_model = LLMRequest(
|
||||||
model_set=model_config.model_task_config.utils_small, request_type="expression.selector"
|
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.chatter_manager import ChatterManager
|
||||||
from src.chat.energy_system import energy_manager
|
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.common.logger import get_logger
|
||||||
from src.config.config import global_config
|
from src.config.config import global_config
|
||||||
from src.plugin_system.apis.chat_api import get_chat_manager
|
from src.plugin_system.apis.chat_api import get_chat_manager
|
||||||
@@ -369,7 +370,7 @@ class StreamLoopManager:
|
|||||||
logger.error(f"检查消息状态失败: {e}")
|
logger.error(f"检查消息状态失败: {e}")
|
||||||
return False
|
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:
|
Args:
|
||||||
@@ -387,7 +388,8 @@ class StreamLoopManager:
|
|||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
|
|
||||||
# 直接调用chatter_manager处理流上下文
|
# 直接调用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)
|
success = results.get("success", False)
|
||||||
|
|
||||||
if success:
|
if success:
|
||||||
|
|||||||
@@ -89,9 +89,8 @@ class MessageManager:
|
|||||||
logger.warning(f"MessageManager.add_message: 聊天流 {stream_id} 不存在")
|
logger.warning(f"MessageManager.add_message: 聊天流 {stream_id} 不存在")
|
||||||
return
|
return
|
||||||
await self._check_and_handle_interruption(chat_stream)
|
await self._check_and_handle_interruption(chat_stream)
|
||||||
chat_stream.context_manager.context.processing_task = asyncio.create_task(
|
await chat_stream.context_manager.add_message(message)
|
||||||
chat_stream.context_manager.add_message(message)
|
|
||||||
)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"添加消息到聊天流 {stream_id} 时发生错误: {e}")
|
logger.error(f"添加消息到聊天流 {stream_id} 时发生错误: {e}")
|
||||||
|
|
||||||
|
|||||||
@@ -515,10 +515,9 @@ class Prompt:
|
|||||||
|
|
||||||
# 选择合适的表情
|
# 选择合适的表情
|
||||||
selected_expressions = await expression_selector.select_suitable_expressions_llm(
|
selected_expressions = await expression_selector.select_suitable_expressions_llm(
|
||||||
chat_history=chat_history,
|
chat_id=self.parameters.chat_id,
|
||||||
current_message=self.parameters.target,
|
chat_info=chat_history,
|
||||||
emotional_tone="neutral",
|
target_message=self.parameters.target,
|
||||||
topic_type="general",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# 构建表达习惯块
|
# 构建表达习惯块
|
||||||
|
|||||||
Reference in New Issue
Block a user