mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-09-02 07:37:14 +00:00
refactor: use emit_event from connector
This commit is contained in:
@@ -16,7 +16,6 @@ from ..utils import importutil
|
|||||||
|
|
||||||
import langbot_plugin.api.entities.builtin.provider.session as provider_session
|
import langbot_plugin.api.entities.builtin.provider.session as provider_session
|
||||||
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
||||||
import langbot_plugin.api.entities.context as event_context
|
|
||||||
|
|
||||||
from . import (
|
from . import (
|
||||||
resprule,
|
resprule,
|
||||||
@@ -191,15 +190,7 @@ class RuntimePipeline:
|
|||||||
message_chain=query.message_chain,
|
message_chain=query.message_chain,
|
||||||
)
|
)
|
||||||
|
|
||||||
event_ctx = event_context.EventContext(
|
event_ctx = await self.ap.plugin_connector.emit_event(event_obj)
|
||||||
event=event_obj,
|
|
||||||
)
|
|
||||||
|
|
||||||
event_ctx_data = event_ctx.model_dump(serialize_as_any=True)
|
|
||||||
|
|
||||||
event_ctx_result = await self.ap.plugin_connector.handler.emit_event(event_ctx_data)
|
|
||||||
|
|
||||||
event_ctx = event_context.EventContext.parse_from_dict(event_ctx_result['event_context'])
|
|
||||||
|
|
||||||
if event_ctx.is_prevented_default():
|
if event_ctx.is_prevented_default():
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from langbot_plugin.api.entities.builtin.provider import message as provider_mes
|
|||||||
import langbot_plugin.api.entities.events as events
|
import langbot_plugin.api.entities.events as events
|
||||||
import langbot_plugin.api.entities.builtin.platform.message as platform_message
|
import langbot_plugin.api.entities.builtin.platform.message as platform_message
|
||||||
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
||||||
import langbot_plugin.api.entities.context as event_context
|
|
||||||
|
|
||||||
|
|
||||||
@stage.stage_class('PreProcessor')
|
@stage.stage_class('PreProcessor')
|
||||||
@@ -109,20 +108,14 @@ class PreProcessor(stage.PipelineStage):
|
|||||||
query.user_message = provider_message.Message(role='user', content=content_list)
|
query.user_message = provider_message.Message(role='user', content=content_list)
|
||||||
# =========== 触发事件 PromptPreProcessing
|
# =========== 触发事件 PromptPreProcessing
|
||||||
|
|
||||||
event_ctx = event_context.EventContext(
|
event = events.PromptPreProcessing(
|
||||||
event=events.PromptPreProcessing(
|
|
||||||
session_name=f'{query.session.launcher_type.value}_{query.session.launcher_id}',
|
session_name=f'{query.session.launcher_type.value}_{query.session.launcher_id}',
|
||||||
default_prompt=query.prompt.messages,
|
default_prompt=query.prompt.messages,
|
||||||
prompt=query.messages,
|
prompt=query.messages,
|
||||||
query=query,
|
query=query,
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
event_ctx_result = await self.ap.plugin_connector.handler.emit_event(
|
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
||||||
event_ctx.model_dump(serialize_as_any=True)
|
|
||||||
)
|
|
||||||
|
|
||||||
event_ctx = event_context.EventContext.parse_from_dict(event_ctx_result['event_context'])
|
|
||||||
|
|
||||||
query.prompt.messages = event_ctx.event.default_prompt
|
query.prompt.messages = event_ctx.event.default_prompt
|
||||||
query.messages = event_ctx.event.prompt
|
query.messages = event_ctx.event.prompt
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ from ....utils import importutil
|
|||||||
from ....provider import runners
|
from ....provider import runners
|
||||||
import langbot_plugin.api.entities.builtin.provider.session as provider_session
|
import langbot_plugin.api.entities.builtin.provider.session as provider_session
|
||||||
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
||||||
import langbot_plugin.api.entities.context as event_context
|
|
||||||
|
|
||||||
|
|
||||||
importutil.import_modules_in_pkg(runners)
|
importutil.import_modules_in_pkg(runners)
|
||||||
@@ -36,21 +35,15 @@ class ChatMessageHandler(handler.MessageHandler):
|
|||||||
else events.GroupNormalMessageReceived
|
else events.GroupNormalMessageReceived
|
||||||
)
|
)
|
||||||
|
|
||||||
event_ctx = event_context.EventContext(
|
event = event_class(
|
||||||
event=event_class(
|
|
||||||
launcher_type=query.launcher_type.value,
|
launcher_type=query.launcher_type.value,
|
||||||
launcher_id=query.launcher_id,
|
launcher_id=query.launcher_id,
|
||||||
sender_id=query.sender_id,
|
sender_id=query.sender_id,
|
||||||
text_message=str(query.message_chain),
|
text_message=str(query.message_chain),
|
||||||
query=query,
|
query=query,
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
event_ctx_result = await self.ap.plugin_connector.handler.emit_event(
|
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
||||||
event_ctx.model_dump(serialize_as_any=True)
|
|
||||||
)
|
|
||||||
|
|
||||||
event_ctx = event_context.EventContext.parse_from_dict(event_ctx_result['event_context'])
|
|
||||||
|
|
||||||
if event_ctx.is_prevented_default():
|
if event_ctx.is_prevented_default():
|
||||||
if event_ctx.event.reply is not None:
|
if event_ctx.event.reply is not None:
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import langbot_plugin.api.entities.builtin.provider.message as provider_message
|
|||||||
import langbot_plugin.api.entities.builtin.platform.message as platform_message
|
import langbot_plugin.api.entities.builtin.platform.message as platform_message
|
||||||
import langbot_plugin.api.entities.builtin.provider.session as provider_session
|
import langbot_plugin.api.entities.builtin.provider.session as provider_session
|
||||||
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
||||||
import langbot_plugin.api.entities.context as event_context
|
|
||||||
import langbot_plugin.api.entities.events as events
|
import langbot_plugin.api.entities.events as events
|
||||||
|
|
||||||
|
|
||||||
@@ -34,8 +33,7 @@ class CommandHandler(handler.MessageHandler):
|
|||||||
else events.GroupCommandSent
|
else events.GroupCommandSent
|
||||||
)
|
)
|
||||||
|
|
||||||
event_ctx = event_context.EventContext(
|
event = event_class(
|
||||||
event=event_class(
|
|
||||||
launcher_type=query.launcher_type.value,
|
launcher_type=query.launcher_type.value,
|
||||||
launcher_id=query.launcher_id,
|
launcher_id=query.launcher_id,
|
||||||
sender_id=query.sender_id,
|
sender_id=query.sender_id,
|
||||||
@@ -45,13 +43,8 @@ class CommandHandler(handler.MessageHandler):
|
|||||||
is_admin=(privilege == 2),
|
is_admin=(privilege == 2),
|
||||||
query=query,
|
query=query,
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
event_ctx_result = await self.ap.plugin_connector.handler.emit_event(
|
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
||||||
event_ctx.model_dump(serialize_as_any=True)
|
|
||||||
)
|
|
||||||
|
|
||||||
event_ctx = event_context.EventContext.parse_from_dict(event_ctx_result['event_context'])
|
|
||||||
|
|
||||||
if event_ctx.is_prevented_default():
|
if event_ctx.is_prevented_default():
|
||||||
if event_ctx.event.reply is not None:
|
if event_ctx.event.reply is not None:
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from .. import stage
|
|||||||
|
|
||||||
import langbot_plugin.api.entities.builtin.platform.message as platform_message
|
import langbot_plugin.api.entities.builtin.platform.message as platform_message
|
||||||
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
||||||
import langbot_plugin.api.entities.context as event_context
|
|
||||||
import langbot_plugin.api.entities.events as events
|
import langbot_plugin.api.entities.events as events
|
||||||
|
|
||||||
|
|
||||||
@@ -59,8 +58,7 @@ class ResponseWrapper(stage.PipelineStage):
|
|||||||
reply_text = str(result.get_content_platform_message_chain())
|
reply_text = str(result.get_content_platform_message_chain())
|
||||||
|
|
||||||
# ============= 触发插件事件 ===============
|
# ============= 触发插件事件 ===============
|
||||||
event_ctx = event_context.EventContext(
|
event = events.NormalMessageResponded(
|
||||||
event=events.NormalMessageResponded(
|
|
||||||
launcher_type=query.launcher_type.value,
|
launcher_type=query.launcher_type.value,
|
||||||
launcher_id=query.launcher_id,
|
launcher_id=query.launcher_id,
|
||||||
sender_id=query.sender_id,
|
sender_id=query.sender_id,
|
||||||
@@ -73,13 +71,8 @@ class ResponseWrapper(stage.PipelineStage):
|
|||||||
else [],
|
else [],
|
||||||
query=query,
|
query=query,
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
serialized_event_ctx = event_ctx.model_dump(serialize_as_any=True)
|
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
||||||
|
|
||||||
event_ctx_result = await self.ap.plugin_connector.handler.emit_event(serialized_event_ctx)
|
|
||||||
|
|
||||||
event_ctx = event_context.EventContext.parse_from_dict(event_ctx_result['event_context'])
|
|
||||||
|
|
||||||
if event_ctx.is_prevented_default():
|
if event_ctx.is_prevented_default():
|
||||||
yield entities.StageProcessResult(
|
yield entities.StageProcessResult(
|
||||||
@@ -108,8 +101,7 @@ class ResponseWrapper(stage.PipelineStage):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if query.pipeline_config['output']['misc']['track-function-calls']:
|
if query.pipeline_config['output']['misc']['track-function-calls']:
|
||||||
event_ctx = event_context.EventContext(
|
event = events.NormalMessageResponded(
|
||||||
event=events.NormalMessageResponded(
|
|
||||||
launcher_type=query.launcher_type.value,
|
launcher_type=query.launcher_type.value,
|
||||||
launcher_id=query.launcher_id,
|
launcher_id=query.launcher_id,
|
||||||
sender_id=query.sender_id,
|
sender_id=query.sender_id,
|
||||||
@@ -122,11 +114,8 @@ class ResponseWrapper(stage.PipelineStage):
|
|||||||
else [],
|
else [],
|
||||||
query=query,
|
query=query,
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
event_ctx_result = await self.ap.plugin_connector.handler.emit_event(serialized_event_ctx)
|
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
||||||
|
|
||||||
event_ctx = event_context.EventContext.parse_from_dict(event_ctx_result['event_context'])
|
|
||||||
|
|
||||||
if event_ctx.is_prevented_default():
|
if event_ctx.is_prevented_default():
|
||||||
yield entities.StageProcessResult(
|
yield entities.StageProcessResult(
|
||||||
|
|||||||
@@ -66,4 +66,12 @@ class PluginRuntimeConnector:
|
|||||||
self,
|
self,
|
||||||
event: events.BaseEventModel,
|
event: events.BaseEventModel,
|
||||||
) -> context.EventContext:
|
) -> context.EventContext:
|
||||||
pass
|
event_ctx = context.EventContext(
|
||||||
|
event=event,
|
||||||
|
)
|
||||||
|
|
||||||
|
event_ctx_result = await self.handler.emit_event(event_ctx.model_dump(serialize_as_any=True))
|
||||||
|
|
||||||
|
event_ctx = context.EventContext.parse_from_dict(event_ctx_result['event_context'])
|
||||||
|
|
||||||
|
return event_ctx
|
||||||
|
|||||||
Reference in New Issue
Block a user