feat: 支持同时运行多个平台适配器

This commit is contained in:
RockChinQ
2024-02-11 23:07:38 +08:00
parent f951625025
commit 9cad94e961
22 changed files with 148 additions and 74 deletions
+2 -1
View File
@@ -70,7 +70,8 @@ class Controller:
if result.user_notice:
await self.ap.im_mgr.send(
query.message_event,
result.user_notice
result.user_notice,
query.adapter
)
if result.debug_notice:
self.ap.logger.debug(result.debug_notice)
+7
View File
@@ -12,6 +12,7 @@ from ..provider import entities as llm_entities
from ..provider.requester import entities
from ..provider.sysprompt import entities as sysprompt_entities
from ..provider.tools import entities as tools_entities
from ..platform import adapter as msadapter
class LauncherTypes(enum.Enum):
@@ -44,6 +45,9 @@ class Query(pydantic.BaseModel):
message_chain: mirai.MessageChain
"""消息链,platform收到的消息链"""
adapter: msadapter.MessageSourceAdapter
"""适配器对象"""
session: typing.Optional[Session] = None
"""会话对象,由前置处理器设置"""
@@ -68,6 +72,9 @@ class Query(pydantic.BaseModel):
resp_message_chain: typing.Optional[mirai.MessageChain] = None
"""回复消息链,从resp_messages包装而得"""
class Config:
arbitrary_types_allowed = True
class Conversation(pydantic.BaseModel):
"""对话"""
+5 -2
View File
@@ -5,6 +5,7 @@ import asyncio
import mirai
from . import entities
from ..platform import adapter as msadapter
class QueryPool:
@@ -29,7 +30,8 @@ class QueryPool:
launcher_id: int,
sender_id: int,
message_event: mirai.MessageEvent,
message_chain: mirai.MessageChain
message_chain: mirai.MessageChain,
adapter: msadapter.MessageSourceAdapter
) -> entities.Query:
async with self.condition:
query = entities.Query(
@@ -40,7 +42,8 @@ class QueryPool:
message_event=message_event,
message_chain=message_chain,
resp_messages=[],
resp_message_chain=None
resp_message_chain=None,
adapter=adapter
)
self.queries.append(query)
self.query_id_counter += 1