重构聊天系统中的消息发送与处理
- 更新了`uni_message_sender.py`,使用`MessageEnvelope`来发送消息,取代了之前的`MessageSending`结构。 - 引入了`send_envelope`函数,通过改进日志记录和错误处理来简化消息发送流程。 - 修改了`HeartFCSender`以直接处理`MessageEnvelope`,确保与新消息结构的兼容性。 - 重构了`default_generator.py`,以构建`MessageEnvelope`而不是`MessageSending`,从而增强了消息构建逻辑。 - 调整了`utils.py`中的效用函数,以使用`DatabaseUserInfo`来处理用户信息。 - 更新了`send_api.py`以构建和发送`MessageEnvelope`,从而改进了消息分发逻辑。 - 从插件系统中移除了已弃用的`MaiMessages`类,清理了未使用的代码。 - 增强了`napcat_adapter_plugin`以适应新的消息结构,确保消息的正确处理和发送。 - 对代码进行整体清理和整理,以提高可维护性和可读性。
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from src.plugin_system.base.plugin_metadata import PluginMetadata
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="napcat_plugin",
|
||||
name="napcat_adapter_plugin",
|
||||
description="基于OneBot 11协议的NapCat QQ协议插件,提供完整的QQ机器人API接口,使用现有adapter连接",
|
||||
usage="该插件提供 `napcat_tool` tool。",
|
||||
version="1.0.0",
|
||||
|
||||
@@ -129,8 +129,6 @@ class NapcatAdapter(BaseAdapter):
|
||||
future = self._response_pool[echo]
|
||||
if not future.done():
|
||||
future.set_result(raw)
|
||||
# API 响应不需要转换为 MessageEnvelope,返回空信封
|
||||
return self._create_empty_envelope()
|
||||
|
||||
# 消息事件
|
||||
if post_type == "message":
|
||||
@@ -147,7 +145,6 @@ class NapcatAdapter(BaseAdapter):
|
||||
# 未知事件类型
|
||||
else:
|
||||
logger.warning(f"未知的事件类型: {post_type}")
|
||||
return self._create_empty_envelope() # type: ignore[return-value]
|
||||
|
||||
async def _send_platform_message(self, envelope: MessageEnvelope) -> None: # type: ignore[override]
|
||||
"""
|
||||
|
||||
@@ -10,12 +10,12 @@ from collections.abc import Callable
|
||||
|
||||
import aiohttp
|
||||
import filetype
|
||||
from mofox_bus import UserInfo
|
||||
|
||||
from src.chat.message_receive.chat_stream import get_chat_manager
|
||||
from src.common.logger import get_logger
|
||||
from src.llm_models.utils_model import LLMRequest
|
||||
from src.plugin_system.apis import config_api, generator_api, llm_api
|
||||
from src.common.data_models.database_data_model import DatabaseUserInfo
|
||||
|
||||
# 导入旧的工具函数,我们稍后会考虑是否也需要重构它
|
||||
from ..utils.history_utils import get_send_history
|
||||
@@ -123,7 +123,7 @@ class ContentService:
|
||||
bot_qq = str(config_api.get_global_config("bot.qq_account"))
|
||||
bot_nickname = config_api.get_global_config("bot.nickname")
|
||||
|
||||
bot_user_info = UserInfo(platform=bot_platform, user_id=bot_qq, user_nickname=bot_nickname)
|
||||
bot_user_info = DatabaseUserInfo(platform=bot_platform, user_id=bot_qq, user_nickname=bot_nickname)
|
||||
|
||||
chat_stream = await chat_manager.get_or_create_stream(platform=bot_platform, user_info=bot_user_info)
|
||||
|
||||
@@ -184,7 +184,7 @@ class ContentService:
|
||||
bot_qq = str(config_api.get_global_config("bot.qq_account"))
|
||||
bot_nickname = config_api.get_global_config("bot.nickname")
|
||||
|
||||
bot_user_info = UserInfo(platform=bot_platform, user_id=bot_qq, user_nickname=bot_nickname)
|
||||
bot_user_info = DatabaseUserInfo(platform=bot_platform, user_id=bot_qq, user_nickname=bot_nickname)
|
||||
|
||||
chat_stream = await chat_manager.get_or_create_stream(platform=bot_platform, user_info=bot_user_info)
|
||||
|
||||
|
||||
@@ -231,7 +231,7 @@ class NapcatAdapterPlugin(BasePlugin):
|
||||
dependencies: ClassVar[List[str]] = [] # 插件依赖列表
|
||||
python_dependencies: ClassVar[List[str]] = [] # Python包依赖列表
|
||||
config_file_name: str = "config.toml" # 配置文件名
|
||||
|
||||
|
||||
@property
|
||||
def enable_plugin(self) -> bool:
|
||||
"""通过配置文件动态控制插件启用状态"""
|
||||
|
||||
@@ -6,7 +6,7 @@ from pathlib import Path
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
import websockets as Server
|
||||
from mofox_bus import (
|
||||
from maim_message import (
|
||||
BaseMessageInfo,
|
||||
FormatInfo,
|
||||
GroupInfo,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import asyncio
|
||||
|
||||
from mofox_bus import MessageBase, Router
|
||||
from maim_message import MessageBase, Router
|
||||
|
||||
from src.common.logger import get_logger
|
||||
from src.plugin_system.apis import config_api
|
||||
|
||||
@@ -4,7 +4,7 @@ import time
|
||||
from typing import ClassVar, Optional, Tuple
|
||||
|
||||
import websockets as Server
|
||||
from mofox_bus import BaseMessageInfo, FormatInfo, GroupInfo, MessageBase, Seg, UserInfo
|
||||
from maim_message import BaseMessageInfo, FormatInfo, GroupInfo, MessageBase, Seg, UserInfo
|
||||
|
||||
from src.common.logger import get_logger
|
||||
from src.plugin_system.apis import config_api
|
||||
|
||||
Reference in New Issue
Block a user